label

package
v0.0.18 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 12, 2025 License: MIT Imports: 7 Imported by: 0

README

资源标签管理

Documentation

Index

Constants

View Source
const (
	APP_NAME = "lable"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type CreateCreateLabelSpec

type CreateCreateLabelSpec struct {
	// 适用于那些资源
	Resources []string `` /* 136-byte string literal not displayed */

	// 标签的键
	Key string `json:"key" bson:"key" gorm:"column:key;type:varchar(255)" validate:"required"`
	// 标签的键的描述
	KeyDesc string `json:"key_desc" bson:"key_desc" gorm:"column:key_desc;type:varchar(255)" validate:"required"`
	// 标签的颜色
	Color string `json:"color" bson:"color" gorm:"column:color;type:varchar(100)"`

	// 值类型, 支持树状
	ValueType VALUE_TYPE `json:"value_type" gorm:"column:value_type;type:varchar(20)" bson:"value_type"`
	// 标签默认值
	DefaultValue string `json:"default_value" gorm:"column:default_value;type:text" bson:"default_value"`
	// 值描述
	ValueDesc string `json:"value_desc" gorm:"column:value_desc;type:text" bson:"value_desc"`
	// 是否是多选
	Multiple bool `json:"multiple" bson:"multiple" gorm:"column:multiple;tinyint(1)"`
	// 枚举值的选项
	EnumOptions []*EnumOption `json:"enum_options,omitempty" bson:"enum_options" gorm:"column:enum_options;type:json;serializer:json;"`
	// 基于Http枚举的配置
	HttpEnumConfig HttpEnumConfig `json:"http_enum_config" gorm:"embedded" bson:"http_enum_config"`
	// 值的样例
	Example string `json:"example" bson:"example" gorm:"column:example;type:text"`

	// 扩展属性
	Extras map[string]string `json:"extras" bson:"extras" gorm:"column:extras;type:json;serializer:json;"`
}

type CreateLabelRequest

type CreateLabelRequest struct {
	// 创建人
	CreateBy string `json:"create_by" bson:"create_by" gorm:"column:create_by;type:varchar(255)"`
	// 标签的键
	Domain string `json:"domain" bson:"domain" gorm:"column:domain;type:varchar(100)"`
	// 标签的键
	Namespace string `json:"namespace" bson:"namespace" gorm:"column:namespace;type:varchar(100)"`
	// 用户参数
	CreateCreateLabelSpec
}

func NewCreateLabelRequest

func NewCreateLabelRequest() *CreateLabelRequest

func (*CreateLabelRequest) AddEnumOption

func (r *CreateLabelRequest) AddEnumOption(enums ...*EnumOption) *CreateLabelRequest

func (*CreateLabelRequest) Validate

func (r *CreateLabelRequest) Validate() error

type DeleteLabelRequest

type DeleteLabelRequest struct {
	DescribeLabelRequest
}

type DescribeLabelRequest

type DescribeLabelRequest struct {
	// 标签Id
	Id string `json:"id"`
}

type EnumOption

type EnumOption struct {
	// 选项的说明
	Label string `json:"label" bson:"label"`
	// 用户输入
	Input string `json:"input" bson:"input" validate:"required"`
	// 选项的值, 根据parent.input + children.input 自动生成
	Value string `json:"value" bson:"value"`
	// 是否禁止选中, 和前端UI组件配合使用
	Disabled bool `json:"disabled" bson:"disabled"`
	// 标签的颜色
	Color string `json:"color" bson:"color"`
	// 是否废弃
	Deprecate bool `json:"deprecate" bson:"deprecate"`
	// 废弃说明
	DeprecateDesc string `json:"deprecate_desc" bson:"deprecate_desc"`
	// 枚举的子选项
	Children []*EnumOption `json:"children,omitempty" bson:"children"`
	// 扩展属性
	Extensions map[string]string `json:"extensions" bson:"extensions"`
}

type HttpEnumConfig

type HttpEnumConfig struct {
	// 基于枚举的URL, 注意只支持Get方法
	Url string `json:"url" bson:"url" gorm:"column:http_enum_config_url;type:text"`
	// Enum Label映射的字段名
	KeyFiled string `json:"enum_label_name" bson:"enum_label_name" gorm:"column:http_enum_config_key_filed;type:varchar(100)"`
	// Enum Value映射的字段名
	ValueFiled string `json:"enum_label_value" bson:"enum_label_value" gorm:"column:http_enum_config_value_filed;type:varchar(100)"`
}

type Label

type Label struct {
	// 基础数据
	apps.ResourceMeta
	// 空间定义
	CreateLabelRequest `bson:",inline" gorm:"embedded"`
}

func NewLabel

func NewLabel(spc *CreateLabelRequest) (*Label, error)

func (*Label) String

func (l *Label) String() string

func (*Label) TableName

func (l *Label) TableName() string

type QueryLabelRequest

type QueryLabelRequest struct {
	*request.PageRequest
}

func NewQueryLabelRequest

func NewQueryLabelRequest() *QueryLabelRequest

type Service

type Service interface {
	// 创建标签
	CreateLabel(context.Context, *CreateLabelRequest) (*Label, error)
	// 修改标签
	UpdateLabel(context.Context, *UpdateLabelRequest) (*Label, error)
	// 删除标签
	DeleteLabel(context.Context, *DeleteLabelRequest) (*Label, error)
	// 查询标签列表
	QueryLabel(context.Context, *QueryLabelRequest) (*types.Set[*Label], error)
	// 查询标签列表
	DescribeLabel(context.Context, *DescribeLabelRequest) (*Label, error)
}

func GetService

func GetService() Service

type UpdateLabelRequest

type UpdateLabelRequest struct {
	DescribeLabelRequest
	// 更新人
	UpdateBy string `json:"update_by"`
	// 标签信息
	Spec *CreateLabelRequest `json:"spec"`
}

type VALUE_TYPE

type VALUE_TYPE string

值类型

const (
	// 文本
	VALUE_TYPE_TEXT VALUE_TYPE = "text"
	// 布尔值, 只能是ture或者false
	VALUE_TYPE_BOOLEAN VALUE_TYPE = "bool"
	// 枚举
	VALUE_TYPE_ENUM VALUE_TYPE = "enum"
	// 基于url的远程选项拉去, 仅存储URL地址, 前端自己处理
	VALUE_TYPE_HTTP_ENUM VALUE_TYPE = "http_enum"
)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL