php怎么控制不同状态的颜色,根据订单状态显示不同颜色表情

一:在help中根据状态定义对应css module Admin::Order::DetailsHelper

# 显示彩色问题状态

PS_BG_COLOR = {"finish"=>"green","un_catch"=>"yellow","under_take"=>"red"}

def color_problem_status(detail)

%Q{ #{detail.i18n_attr_problem_status} }

end

end

二:通过block来定义更灵活的显示。

创建人:

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来定义状态cssmodule 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{ #{s} }

end

s

end

end

end

end

end

调用:

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;

}

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值