react使用ant design中的steps(步骤条),并自定义布局

想做一个审核流程步骤条,含有头像、审核事件、审批人等信息,按照特定布局排列。

效果如下:

react使用步骤条自定义布局示例代码如下:

    renderFlowData() {
        const stepList=[
            {header:['https://tse4-mm.cn.bing.net/th/id/OIP-C.vKJorGHusPWOMS0kXNLhYgAAAA?rs=1&pid=ImgDetMain','https://tse4-mm.cn.bing.net/th/id/OIP-C.vKJorGHusPWOMS0kXNLhYgAAAA?rs=1&pid=ImgDetMain'],userName:['wjj'],states:[{userName:'wjj',state:"已同意"}],stepName:'发起申请',onTime:'2024-09-01 08:23',clyj:'审核通过!'},
            {header:['https://tse4-mm.cn.bing.net/th/id/OIP-C.vKJorGHusPWOMS0kXNLhYgAAAA?rs=1&pid=ImgDetMain'],userName:['wjj1','wjj2'],states:[{userName:'wjj1',state:"已同意"}],stepName:'一级审批',onTime:'2024-09-01 08:26',clyj:'同意申请'},
            {header:['https://tse4-mm.cn.bing.net/th/id/OIP-C.vKJorGHusPWOMS0kXNLhYgAAAA?rs=1&pid=ImgDetMain'],userName:['wjj1','wjj2'],states:[{userName:'wjj2',state:"已同意"}],stepName:'二级审批',onTime:'2024-09-01 08:28',clyj:'同意申请1'},
        ]

        return (<div>
            <XTabs items={['流程','数据日志']} type={"line"} onTabChange={(v)=>{this.setState({activityKey:v})}}/>
            <XCard boxStyle={{marginTop:"30px"}} visible={this.state.activityKey==='流程'}>
                <div style={{marginLeft:"20px"}} className={"splc-step-style"}>
                    <Steps
                        direction={"vertical"}
                        current={1}
                        items={stepList.map(item=>({
                            title:<XFlex flexDirection={"row"} marginTRBL={"35px 0 0 0"} horizontalAlign={"spaceBetween"}>
                                <span className={"splc-step-title-content"}>{item.stepName}</span>
                                <span className={"splc-step-title-time"}>{item.onTime}</span>
                            </XFlex>,
                            subTitle:<div style={{marginTop:"-35px"}} className={"splc-step-subTitle"}>
                                <div>
                                    {item.userName?.filter(name => !item.states?.map(item => item.userName)?.includes(name))
                                        ?.map(userName=>{
                                        return <span style={{marginRight:"5px"}}>{userName}</span>
                                    })}
                                    {item.states?.map(state=>{
                                        return <span style={{marginRight:"5px"}}>
                                            {state.userName}
                                            <span style={state.state==='已同意'?{color:"rgb(89, 206, 185)"}:{color:"rgb(184, 67, 50)"}}>({state.state})</span>
                                        </span>
                                    })}
                                </div>
                                <div>
                                    处理意见:{item.clyj}
                                </div>
                            </div>,
                            icon:<Avatar.Group maxCount={2} maxStyle={{ color: '#f56a00', backgroundColor: '#fde3cf' }}>
                                {item.header?.map(head=>{
                                    return <Avatar src={head}/>
                                })}
                            </Avatar.Group>
                        }))}
                    />
                </div>
            </XCard>
            <XCard boxStyle={{marginTop:"20px"}} visible={this.state.activityKey==='数据日志'}>
                other
            </XCard>
        </div>)
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值