You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Streamlit工单系统开发求助:创建待审批文本标签队列

Streamlit工单卡片式标签实现方案

1. 中文格式工单数据示例

先将你提供的英文数据转换为中文结构:

ticket_data = [
    {"标题": "工单A", "描述": "设备故障报修", "日期": "2024-05-20"},
    {"标题": "工单B", "描述": "系统权限申请", "日期": "2024-05-21"}
]

2. 自定义卡片样式实现

利用Streamlit的st.markdown结合内联CSS,实现类似附图的卡片式文本标签,无需依赖外部资源:

import streamlit as st

# 自定义卡片CSS样式
card_style = """
<style>
.ticket-card {
    background-color: #f0f2f6;
    border-radius: 8px;
    padding: 16px;
    margin-bottom: 12px;
    border-left: 4px solid #2196f3;
}
.ticket-title {
    font-size: 18px;
    font-weight: bold;
    color: #1e293b;
    margin-bottom: 8px;
}
.ticket-desc {
    font-size: 14px;
    color: #475569;
    margin-bottom: 4px;
}
.ticket-date {
    font-size: 12px;
    color: #64748b;
}
</style>
"""

# 加载样式
st.markdown(card_style, unsafe_allow_html=True)

# 遍历渲染所有工单卡片
for ticket in ticket_data:
    card_html = f"""
    <div class="ticket-card">
        <div class="ticket-title">{ticket["标题"]}</div>
        <div class="ticket-desc">{ticket["描述"]}</div>
        <div class="ticket-date">提交日期: {ticket["日期"]}</div>
    </div>
    """
    st.markdown(card_html, unsafe_allow_html=True)

3. 扩展管理员审批/驳回功能

如果需要给管理员添加操作按钮,可在卡片下方追加按钮组件:

# 遍历渲染卡片+操作按钮
for idx, ticket in enumerate(ticket_data):
    with st.container():
        # 渲染卡片内容
        card_html = f"""
        <div class="ticket-card">
            <div class="ticket-title">{ticket["标题"]}</div>
            <div class="ticket-desc">{ticket["描述"]}</div>
            <div class="ticket-date">提交日期: {ticket["日期"]}</div>
        </div>
        """
        st.markdown(card_html, unsafe_allow_html=True)
        
        # 添加审批/驳回按钮
        col1, col2 = st.columns(2)
        with col1:
            if st.button(f"审批工单 {idx+1}", key=f"approve_{idx}"):
                # 此处可添加审批状态更新逻辑
                st.success(f"已审批工单 {ticket['标题']}")
        with col2:
            if st.button(f"驳回工单 {idx+1}", key=f"reject_{idx}"):
                # 此处可添加驳回状态更新逻辑
                st.error(f"已驳回工单 {ticket['标题']}")

你可以根据附图的实际样式,调整CSS中的颜色、边框、内边距等参数,匹配需求效果。

内容的提问来源于stack exchange,提问作者Hayat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 22:50:40