btn数据结构:

{
    name:'add',
    label:'新增'
    enable:true,'启用按钮',
    type: 'primary|success|info|warning|danger',//为空default,按钮颜色

    //暂时先不要;没有icon选择器
    //icon: 'Plus', //图标'el-icon-plus'

    //topBtn: true,
    //rowBtn: true,

    //top可能有的参数: row rows, id ,ids
    //row可能有的参数: row,id
    //detail可能有的参数: formData,id
    //all可能有的参数: row rows formData id ids
    show:['top|row|detail'],//顶部 行上,详情页上
    //show=detail|row
    enableTopBtnOnSelect:'one|more|empty|always',//针对topBtn
    operationConditions:[],//针对row和detail按钮,前端隐藏,topBtn也行后台用到过滤选中的数据

//openFormOperation和formDataOperation功能重叠,去掉?
    action:'openFormOperation|formDataOperation|startWorkflow|serviceFunction|customAction|clickEvent',
    //准备作废confirmOperation|directOperation|promptOperation
    actionSetting:{
        doAction: '$FN:(event)=>{}',
        //clickEvent
        onClick: '$FN:(event)=>{}',
    },//见actionSetting数据结构


    //考虑作废 doAction代码要用到
    btnParam: 'none', //ids[0] ids| row row.id [row.id]|  none|queryParam
    doAction:()=>{}, //method(string), function,object {url:'',method:'get',parsm}
}

actionSetting数据结构:

公共属性:

{
    //操作前


    //===formDataOperation|startWorkflow|serviceFunction====才有的参数=begin===
    needConfirm:true,//是否确认,当needOpenForm=true时候,在提交表单时确认
    confirm:{
      confirmTitle: '是否确认',
      confirmMessage: '是否确认xxx',
      confirmButtonText:'确认',
      cancelButtonText:'取消',
      //prompt
      showInput: true,//需要用户输入文本,比如作废原因,删除原因,可通过event.prompt拿到该值
      inputType:'',//输入框类型'text' | 'textarea' | 'number' | 'password' | 'email' | 'search' | 'tel' | 'url'
      inputPlaceholder:'',//输入框占位文本
      inputPattern:'',输入框校验表达式(正则)
      inputErrorMessage:'校验未通提示文本'
    }


    //打开ui表单搜集参数 ${formData} 同时还有选中的行参数 ${id} ${ids} ${row} ${rows}
    needOpenForm: true,
    openForm: {
            //dialog属性==
            dialog:{
                title:'xx新增',
                //width:300,
                //height:300,
                //showMaximize: true,//允许最大化
                //maskClosable: true,//是否允许点击遮罩层关闭窗口
                //escClosable: true, //ESC 按键关闭
                //resize: true,//调整宽高
            },

            //UI表单和数据表单
            formKey:'f1',//打开表单搜集参数,用来覆盖workFlowParam,serviceFunctionParam,formOperationParam
            //可以覆盖formMeta中的配置
            fieldRuleConfig: {
                field:{
                    required: true
                }
            },
            //submit:()=>{}

            //表单数据,字符串格式,方便设置表单数据,可以使用选中行的数据,可以使用
            formData:{
                remark:'xxx',
            },
            //formData中可用参数
            //    选中多行:  ids,rows
            //    选中一行,或者详情页 id,row

            //参数使用示例
            formData: {
                id:'${id}',
                name: '${row.name}',
                remark: 'abc${row.reamrk}',
                firstRowName : '${rows[0].name}',
                ids:'${ids}',
                selectedRows:'${rows}'
                //updateFields:[]
            }
        }
    //===formDataOperation|startWorkflow|serviceFunction====才有的参数=end===

    //操作完成后
    refreshListData: true,//操作完成后是否刷新列表数据
    refreshFormData: true,//操作完成后是否刷新detail表单数据
    showSuccessMsg: true,
    successMsg: '',//弹出消息 ${btn.label}成功; ${res.msg}
    //作废"actionType":"download",
    download: true, //下载 window.open(${res.data})

    //formOperation表单操作,startWorkflow启动工作流,serviceFunction服务端函数,都可以通过打开表单,覆盖相关参数
    //可以通过${formData}, ${formData.name} 提取参数值

}

openFormOperation 打开本表单操作:

(只能操作本表的,复杂操作比如操作其他表用serviceFunction做)

{
    //操作前
    needConfirm: false,//提交时确认

    //dialog设置设置
    dialog:{
        title:'xx新增',
        //width:300,
        //height:300,
        //showMaximize: true,//允许最大化
        //maskClosable: true,//是否允许点击遮罩层关闭窗口
        //escClosable: true, //ESC 按键关闭
        //resize: true,//调整宽高
    },

    //操作设置
    openFormOperation:'add|edit|batchEdit',
    //字段设置
    fieldRuleConfig: {f1:{required}},    
    //写入设置(可覆盖表单里的) add|edit|batchEdit
    fieldWriteConfig: {
        f1:{
            required:true
        }
    }


    //操作后
    triggerWorkflow: true,//是否触发工作流,
    refreshListData: true,//操作完成后是否刷新列表数据
    refreshFormData: true,//操作完成后是否刷新detail表单数据
    showSuccessMsg: true,//是否显示消息操作成功消息
    successMsg: '',//弹出消息 ${btn.label}成功; ${res.msg}
}

formDataOperation 表单数据操作:

{
    //操作前设置
    needConfirm:true,
    //open表单设置
    needOpenForm:false,
    openForm:{},

    //操作设置
    operation:'add|edit|batchEdit',//|del|batchDel
    //操作哪个表单
    tableCode:'',//选择表单
    //可用参数
    //    如果打开表单    formData
    //    如果直接操作没有打开表单
    //      如果选择了多行 rows
    //      如果选择了一行或者详情页 row 同时也提供数组类型rows ids方便使用

    //操作参数配置,字符串
    operationParams:{

        //add,edit
        formData:'${formData}',

        //batchEdit
        ids:'${formData.ids}',//选择了多条或者单条 ${ids}
        updateFields:['f1'],//为空则取决于formData
        formData: {
            status: 10
        }

        //del
        id:'${formData.id}',//选择了一条直接操作 ${row.id}

        //batchDel
        //ids:'${formData.ids}',//或者 选择了多条直接操作${ids}
    },

    //操作后
    triggerWorkflow: true,//是否触发工作流

    refreshListData: true,//操作完成后是否刷新列表数据
    refreshFormData: true,//操作完成后是否刷新detail表单数据
    showSuccessMsg: true,//是否显示消息操作成功消息
    successMsg: '',//弹出消息 ${btn.label}成功; ${res.msg}
}

startWorkflow 启动工作流:

{
    //操作前设置
    needConfirm:true,
    //open表单设置
    needOpenForm:false,
    openForm:{},


    //操作设置startWorkflow
    workFlowKey:'F001',//工作流key

    //针对 enableTopBtnOnSelect=more多选时有效
    //如果是批量一个流程实例处理批量处理 则可获取到 ${rows}
    // 如果不是批量 则workFlowParam中可以获取到 ${row},
    isBatch: false //是否批量

    //可用参数
    //    如果打开表单    formData
    //    如果直接操作没有打开表单
    //      如果选择了多行 rows
    //      如果选择了一行或者详情页 row
    workFlowParam:{},

    //操作后
    needWaitResult:false,//是否需要等待异步结果,工作流是异步启动可能需要等待异步返回
    download: true, //下载 window.open(${res.data})    
    refreshListData: true,//操作完成后是否刷新列表数据
    refreshFormData: true,//操作完成后是否刷新detail表单数据
    showSuccessMsg: true,//是否显示消息操作成功消息
    successMsg: '',//弹出消息 ${btn.label}成功; ${res.msg}

}

serviceFunction 服务端函数:

{
    //操作前设置
    needConfirm:true,
    //open表单设置
    needOpenForm:false,
    openForm:{},

    //serviceFunction
    serviceFunction:'xx/XxxService.function',
    serviceFunctionParam: ['${id}'], // [{id:'${id}'}] 如果是object类型则将此object作为为第一个参数

    //操作后
    download: true, //下载 window.open(${res.data})
    refreshListData: true,//操作完成后是否刷新列表数据
    refreshFormData: true,//操作完成后是否刷新detail表单数据
    successMsg: '',//弹出消息 ${btn.label}成功; ${res.msg}

}

customAction自定义操作:

{
    needConfirm:true,//



    needUrls:'',//需要的urls
    //字符串格式,event和clickEvent一致,只是多了操作前后设置
    doAction:'$FN:(event)=>{
        const {id,row,ids,rows} = event;
        console.log('click row',row)
        return event.api.request('xx/delete',id)
    }'

}

clickEvent执行点击事件:

{
    needUrls:'',//需要的urls
    //字符串格式
    onClick:'$FN:(event)=>{
        const {id,row,ids,rows} = event;
        console.log('click row',row)
    }'

}

event参数结构:

{
    clickType:'topBtn|rowBtn',//点击类型 topBtn 点击顶部按钮; rowBtn点击行按钮

    btn:{},//当前按钮信息
    pk:'id',//主键 一般是id
    titleField:'title',//标题字段

    row:{},//当前row数据,detail详情页或者select一条数据时候有值
    id:'11',//当前id //当前row数据,detail详情页或者select一条数据时候有值
    //查询参数
    queryParams:{
        _queryType: '1',
        queryParams: {}, //简单查询参数
        advQueryParams: [], //高级查询参数
        orderbyParams: [], //简单查询 高级查询共用排序参数
        pageNo: 1,
        pageSize: 10,
        _keywords: null,
        _queryplanId: null,
        _tabView: null, //当前视图
        _quickTagView: null, //快捷查询标签
    },
    ids:[],//复选框选中记录时有值
    rows:[],//复选框选中记录时有值

    api:{
        refreshListData,//刷新列表数据
        refreshFormData //刷新详情页数据
    }
}

旧btn:

    {
        type: 'primary|success|info|warning|danger',//为空default,按钮颜色
        label:'按钮',
        icon: 'Plus', //图标'el-icon-plus'
        value:'btn1',

        type:10,//
        fieldSetting: {}, //字段设置
        customActionSetting: {},自定义设置
        operationConditions:[],//操作条件

        onClick:(ctx) => {},
        enableOnSelect:'one|more|empty|always',//  one 选一条时启用按钮 more 多条时启用 ,always总是显示按钮
        //openForm dialog配置
        dialog:{
            title:'xx新增'
        }

        action: 'startWorkflow|openForm|serviceFunction',//|confirmOperation|directOperation|promptOperation
        //action=startWorkflow
        workFlowKey:"",
        workFlowParam:{},
        needWaitResult:false,
        actionType:"download",

        //action=openForm
        formKey:"caa",
        formData:{},

        //action=serviceFunction
        serviceFunction:"xx/XxxService.function",

        btnParam: 'none', //ids[0] ids| row row.id [row.id]|  none|queryParam
        doAction:()=>{}, // function,object {url:'',method:'get',parsm}
        refreshList: true,//操作完成后是否刷新列表
        //action=startWorkflow||serviceFunction
        needConfirm:true,//需要确认
    }

===作废:====
自定义行按钮 类型
1 修改数据(弹出表单)
3 直接修改数据
4 直接修改数据(需确认)
10 自定义动作

自定义顶部按钮 类型
1 新增
2 批量修改(弹出表单)
3 批量直接修改数据
4 批量直接修改数据(需确认)
10 自定义动作

文档更新时间: 2026-03-30 06:27   作者:admin