`

根据订单状态显示不同颜色表情

    博客分类:
  • RUBY
 
阅读更多
一:在help中根据状态定义对应css
module Admin::Order::DetailsHelper
  # 显示彩色问题状态
  PS_BG_COLOR = {"finish"=>"green","un_catch"=>"yellow","under_take"=>"red"}
  def color_problem_status(detail)
    %Q{<span class="ui circular label #{PS_BG_COLOR[detail.problem_status]} basic"> #{detail.i18n_attr_problem_status} </span>} 
  end
end


二:通过block来定义更灵活的显示。
<%= show_created_by_name(@company.created_by) do |name|%>  
        <div class="column column_new">创建人: <%= name%> </div>  
<% end %>  
  
def show_created_by_name(created_by, &block)  
    name = CreatedBy.display_name(created_by)  
    if block_given?  
      capture(name,&block) if name.present?  
    else  
      name  
    end  
end 


三:通过和i8n来定义状态css
module Website
  module Ext
    module ActiveRecord
      module I18n
        extend ActiveSupport::Concern
        I18N_ATTR_PREFIX = /^i18n_attr_/
        NAME_OF_PREFIX = /^name_of_/
        def method_missing(method,opt={}, *args, &block)
          c = method.to_s
          col = c.sub(I18N_ATTR_PREFIX,'')
          if c =~ I18N_ATTR_PREFIX 
            col = c.sub(I18N_ATTR_PREFIX,'')
            display_model_status(self.class, col, self.send(col.to_sym),opt) if self.class.column_names.include?(col)
          elsif c =~ NAME_OF_PREFIX 
            col = c.sub(NAME_OF_PREFIX,'')
            eval("#{self.class.name}::#{col.upcase}.invert[self.#{col}]") if eval("#{self.class.name}.constants.include?(:#{col.upcase})")
          else
            super
          end
        end

        def display_model_status(model,attribute,value,opt={})
          return if value.nil?
          if ['active'].include?(attribute.to_s.strip)
            s = ::I18n.t("activerecord.status.#{attribute}.#{value}", default: value) 
          else
            s = ::I18n.t("activerecord.status.#{model.name.underscore}.#{attribute}.#{value}", default: value)
          end
          
          if opt[:css]
            s = %Q{<span class="ui circular label #{model.name.underscore} #{attribute} #{value} basic"> #{s} </span>}  
          end
          s
        end
      end
    end
  end
end

调用:
<%=raw detail.i18n_attr_problem_status(css:true) %>
<%=raw detail.i18n_attr_problem_status %>

enum problem_status: {
    "normal" => 0 ,
    "finish" =>1,
    "un_catch" => 10,
    "under_take" =>11
  }


i8n:

problem_status:
          'normal': ''  
          'finish': '问题订单已处理'
          'un_catch': '问题订单未处理'
          'under_take': '问题订单处理中'  


css:

/*问题订单状态颜色*/
.order_detail.problem_status.finish{
    color:#21BA45 !important;
    background-color: #fff !important; 
    border: 1px solid #21BA45 !important; 
}

.order_detail.problem_status.un_catch{
    color:#FBBD08 !important;
    background-color: #fff !important; 
    border: 1px solid #FBBD08 !important; 
}

.order_detail.problem_status.under_take{
    color:#DB2828 !important;
    background-color: #fff !important; 
    border: 1px solid #DB2828 !important; 
}

1
0
分享到:
评论

相关推荐

    SAP销售订单中各种状态的说明

    在SAP系统中,销售订单是整个销售流程的起点,其中包含不同的状态,这些状态代表了销售订单在不同处理阶段的情况。理解这些状态对于正确管理订单流程,确保销售活动的顺利进行至关重要。本文将详细解释SAP销售订单中...

    管理订单状态,该上状态机吗?轻量级状态机COLA StateMachine保姆级入门教程.doc

    "状态机在订单状态管理中的应用及 COLA StateMachine 的介绍" 在订单状态管理中,状态机模式是一种常用的解决方案,但是在实际项目中,状态机的使用率并没有想象中那么高。笔者在电商领域进行后端开发时,发现了...

    ecshop数据库订单状态判断.doc

    订单状态判断是根据订单的不同状态来进行判断和处理的。 Ecshop系统中订单状态的定义 在ecshop系统中,订单状态是通过定义的常量来实现的。这些常量包括: * OS_UNCONFIRMED(0):未确认 * OS_CONFIRMED(1):已...

    ShopEx批量订单状态修改打印方法

    在这里,你可以看到所有未处理、待发货、已发货等不同状态的订单。 3. 选择订单:在订单列表中,你可以通过设置筛选条件,如订单状态、时间范围等,来查找需要批量修改的订单。也可以使用搜索框输入订单号进行精确...

    magento前台显示最新订单下的产品信息及订单信息插件

    而这个插件的引入,使得客户无需登录后台即可查看他们的最新订单,包括购买的产品清单、数量、单价、总价以及订单的状态(如待处理、已发货、已完成等),这对于那些频繁关注订单状态的消费者来说非常实用。...

    13-15订单状态未成功修改的原因 正确版

    在IT行业中,尤其是在开发微信小程序并集成微信支付的场景下,常常会遇到关于订单状态更新的问题。本主题“13-15订单状态未成功修改的原因 正确版”聚焦于解决一个具体的技术难点,即在ThinkPHP框架下,如何正确处理...

    订单状态跟踪表.xls

    订单状态跟踪表.xls

    订单状态跟踪表(表格模板、XLS格式).XLS

    订单状态跟踪表(表格模板、XLS格式).XLS

    redis倒计时商品订单状态

    在电商系统中,倒计时商品订单状态是一个常见的功能,用于处理未支付订单在规定时间内自动取消并释放库存的情况。本案例将通过Redis缓存数据库和Java编程语言来实现这一功能,以提高系统的效率和用户体验。 Redis是...

    ecshop订单状态说明(数据库详细说明)

    本文将详细介绍ecshop系统中的订单状态及其对应的数据库字段,帮助理解不同状态的含义及它们之间的转换逻辑。 #### 数据库字段与状态说明 ##### 订单状态(order_status) - **OS_UNCONFIRMED (0)**:表示订单未...

    销售订单状态查询报表query过程

    销售订单状态查询报表QUERY过程是SAP系统中用于监控和管理销售订单状态的关键流程之一,这一过程涉及到多个数据表和字段的复杂关联,旨在提供全面的销售订单信息,包括订单状态、交货情况等,以支持企业的销售管理和...

    SAP系统中生产订单中状态解释

    ### SAP系统中生产订单状态详解 #### CRTD (创建) - **定义**: 当生产订单刚刚被创建时,系统会自动标记其状态为“CRTD”(创建)。 - **功能与限制**: 在此状态下,系统禁止执行后续的操作,如发料、报工确认等。...

    销售订单状态查询报表QUERY过程

    在IT行业中,销售订单状态查询报表是企业运营中不可或缺的一部分,它帮助企业实时了解订单的状态,以便于决策者做出明智的业务决策。QUERY过程是实现这一功能的关键技术环节,下面将详细解析这一过程。 首先,我们...

    [SHOPEX]订单批量状态修改合并打印

    商家可以根据实际业务流程,选择批量将订单状态从一个阶段更新到另一个阶段。例如,当收到支付确认后,可以一键将所有待付款订单批量改为已付款状态;或者在商品打包完成后,将待发货订单批量改为已发货状态。这种...

    ECshop 手机微信端 微信支付成功后订单状态未改变的解决办法

    ecshop手机端 微信支付成功后,但订单未改变状态,这个完全修复此问题;

    UML网上购物活动图和状态图

    根据不同的营销策略或节日等外部因素,首页可能会显示不同的内容。 - **结束状态**:“用户离开”。 #### 三、活动图解析 **1. 登录活动图** 登录活动图展示了用户登录过程中的各个步骤,以及可能出现的不同情况...

    第八讲-微服务购物车&订单及支付(微信支付,支付宝支付)设计实践.docx

    当用户下单后,购物车中的商品状态需要更新,以确保不再显示在购物车中。 订单系统是电商交易的关键环节。订单表`order_info`用于存储订单的基本信息,如订单编号(可使用雪花算法`idworker`生成)、商品项数量、...

    xtp订单的状态机图1

    状态机是一种描述系统状态变化的模型,对于订单处理而言,它定义了订单从创建到结束可能经历的所有状态及其转换条件。XTP订单状态机如下: 1. 下单初始:当通过InsertOrder API发送订单后,如果返回值不为0,表明...

    Ecshop仿淘宝订单页面显示具体产品信息

    在这个主题中,我们探讨的是如何在EcShop中实现类似淘宝的订单管理页面,以展示详细的产品信息,并添加了不同状态订单的筛选功能。 首先,"仿淘宝订单"意味着我们需要在订单管理界面模仿淘宝网的用户界面和功能。这...

    37 采购设备订单状态报告.doc

    【标题解析】:“37 采购设备订单状态报告.doc”是一个文档标题,表明这是一个关于采购设备订单状态的详细报告,通常用于跟踪和管理企业的设备采购流程。报告的编号可能是内部管理系统的一部分,方便管理和查找。 ...

Global site tag (gtag.js) - Google Analytics