作者 Administrator

合并分支 'dev' 到 'master'

Dev



查看合并请求 !1
... ... @@ -24,6 +24,7 @@ _testmain.go
.log
.idea
.vscode
cmd/chart-server/api/go_build_bchart
app.log
#go.sum
... ...
... ... @@ -3,11 +3,13 @@ Host: 0.0.0.0
Port: 8080
Verbose: true
HostName: http://sumifcc-bchart-dev.sumifcc.com
Timeout: 30000
Log:
Mode: file
Encoding: plain
Level: debug # info
MaxContentLength: 5120 # 5KB
JwtAuth:
AccessSecret: digital-platform
... ...
... ... @@ -3,6 +3,7 @@ Host: 0.0.0.0
Port: 8081
Verbose: true
HostName: http://sumifcc-bchart-dev.sumifcc.com
Timeout: 30000
Log:
#Mode: file
... ... @@ -10,6 +11,7 @@ Log:
Level: debug # info
MaxSize: 1 # 2MB
TimeFormat: 2006-01-02 15:04:05.000
MaxContentLength: 5120 # 5KB
JwtAuth:
AccessSecret: digital-platform
... ...
... ... @@ -32,7 +32,7 @@ func (l *SearchTableByModuleLogic) SearchTableByModule(req *types.SearchTableByM
list, err := l.svcCtx.ByteMetadataService.ObjectTableSearch(l.ctx, bytelib.ObjectTableSearchRequest{
Token: req.Token,
TableTypes: []string{bytelib.MainTable, bytelib.SubTable, bytelib.SideTable},
Module: bytelib.ModuleDigitalCenter,
Module: bytelib.ModuleChartTemplate,
})
if err != nil {
batchError.Add(err)
... ... @@ -52,7 +52,7 @@ func (l *SearchTableByModuleLogic) SearchTableByModule(req *types.SearchTableByM
}, func() {
list, err := l.svcCtx.ByteMetadataService.ObjectTableSearch(l.ctx, bytelib.ObjectTableSearchRequest{
Token: req.Token,
TableTypes: []string{bytelib.CalculateItem, bytelib.CalculateSet},
TableTypes: []string{bytelib.CalculateItem},
Module: bytelib.ModuleCalculateCenter,
ReturnGroupItem: true,
ExcludeTables: []int{0},
... ... @@ -60,7 +60,19 @@ func (l *SearchTableByModuleLogic) SearchTableByModule(req *types.SearchTableByM
if err != nil {
batchError.Add(err)
}
result["计算模块"] = newList(list)
result["计算项"] = newList(list)
}, func() {
list, err := l.svcCtx.ByteMetadataService.ObjectTableSearch(l.ctx, bytelib.ObjectTableSearchRequest{
Token: req.Token,
TableTypes: []string{bytelib.CalculateSet},
Module: bytelib.ModuleCalculateCenter,
ReturnGroupItem: true,
ExcludeTables: []int{0},
})
if err != nil {
batchError.Add(err)
}
result["计算集"] = newList(list)
})
if err = batchError.Err(); err != nil {
logx.Error(err)
... ...
... ... @@ -42,6 +42,7 @@ func NewAppPageItem(appPage *domain.AppPage, charts []*domain.Chart) AppPageItem
Id: appPage.Id,
Name: appPage.Name,
Cover: appPage.Cover,
UpdatedAt: appPage.UpdatedAt,
}
for _, id := range appPage.Charts {
if v, ok := chartsMap[id]; ok {
... ...
... ... @@ -82,6 +82,7 @@ type ChartItem struct {
Name string `json:"name,optional"` // 名称
Cover string `json:"cover,optional"` // 封面
ChartType string `json:"chartType,optional"` // 图表类型
UpdatedAt int `json:"updatedAt,optional"` // 更新时间
ChartProperty *ChartProperty `json:"property,optional,omitempty"` //属性
}
... ... @@ -153,6 +154,13 @@ type Title struct {
type TableAbility struct {
FilterSwitch bool `json:"filterSwitch,optional"` // 表筛选功能开关
DimensionList []Dimension `json:"dimensionList,optional"` // 维度列表
CardSwitch bool `json:"cardSwitch,optional"` // 顺序标识开关
CardIdent string `json:"cardIdent,optional"` // 顺序标识
CardOrderList []CardOrderItem `json:"cardOrderList,optional"` // 卡片列表顺序
}
type CardOrderItem struct {
CardId string `json:"cardId,optional"`
}
type Series struct {
... ... @@ -291,6 +299,7 @@ type AppPageItem struct {
Name string `json:"name,optional"` // 名称
Cover string `json:"cover,optional"` // 封面
Charts []AppPageChartItem `json:"charts,optional"` // 图表
UpdatedAt int64 `json:"updatedAt,optional"` //更新时间
}
type AppPageChartItem struct {
... ...
... ... @@ -162,7 +162,7 @@ func (repository *AppPageRepository) Find(ctx context.Context, conn transaction.
total int64
)
queryFunc := func() (interface{}, error) {
tx = tx.Model(&ms).Order("id desc")
tx = tx.Model(&ms).Order("updated_at desc")
if v, ok := queryOptions["tenantId"]; ok {
tx.Where("tenant_id = ?", v)
}
... ...
... ... @@ -119,7 +119,7 @@ func (repository *ChartRepository) Find(ctx context.Context, conn transaction.Co
total int64
)
queryFunc := func() (interface{}, error) {
tx = tx.Model(&ms).Order("id desc") //.Order("pid asc").Order("sort asc")
tx = tx.Model(&ms).Order("updated_at desc") //.Order("pid asc").Order("sort asc")
if v, ok := queryOptions["ids"]; ok {
tx.Where("id in (?)", v)
}
... ...
... ... @@ -63,6 +63,13 @@ type Title struct {
type TableAbility struct {
FilterSwitch bool `json:"filterSwitch,optional"` // 表筛选功能开关
DimensionList []Dimension `json:"dimensionList,optional"` // 维度列表
CardSwitch bool `json:"cardSwitch,optional"` // 顺序标识开关
CardIdent string `json:"cardIdent,optional"` // 顺序标识
CardOrderList []CardOrderItem `json:"cardOrderList,optional"` // 卡片列表顺序
}
type CardOrderItem struct {
CardId string `json:"cardId,optional"`
}
type Series struct {
... ...
... ... @@ -75,7 +75,7 @@ type TableData struct {
//数据
Grid *TableDataGrid `json:"grid,optional"`
//字段
Fields []*Field `json:"fields"`
Fields []*Field `json:"fields,optional"`
}
type TableDataGrid struct {
... ...
... ... @@ -12,10 +12,11 @@ var (
)
const (
ModuleAll = ModuleDigitalCenter | ModuleQuerySetCenter | ModuleCalculateCenter
ModuleAll = ModuleDigitalCenter | ModuleQuerySetCenter | ModuleCalculateCenter | ModuleChartTemplate
ModuleDigitalCenter = 1
ModuleQuerySetCenter = 2
ModuleCalculateCenter = 4
ModuleChartTemplate = 8
)
const (
... ...
... ... @@ -94,6 +94,7 @@ type (
Name string `json:"name,optional"` // 名称
Cover string `json:"cover,optional"` // 封面
Charts []AppPageChartItem `json:"charts,optional"`// 图表
UpdatedAt int64 `json:"updatedAt,optional"` //更新时间
}
AppPageChartItem struct{
ChartId int64 `json:"chartId"` // 图表ID
... ...
syntax = "v1"
info(
... ... @@ -60,106 +59,106 @@ type (
ChartGetRequest {
Id int64 `path:"id"`
}
ChartGetResponse struct{
ChartGetResponse {
Chart ChartItem `json:"chart"`
}
ChartSaveRequest struct{
Pid int64 `json:"pid,optional"`// 父级ID
Type string `json:"type"`// 类型 report:报表 group:分组 chart:图表
Name string `json:"name,optional"`// 名称
ChartSaveRequest {
Pid int64 `json:"pid,optional"` // 父级ID
Type string `json:"type"` // 类型 report:报表 group:分组 chart:图表
Name string `json:"name,optional"` // 名称
ChartType string `json:"chartType"` // 图表类型
Cover string `json:"cover,optional"` // 封面
ChartProperty ChartProperty `json:"property"` // 图表属性
}
ChartSaveResponse struct{
ChartSaveResponse {
Chart ChartItem `json:"chart"`
}
ChartSaveAsRequest struct{
ChartSaveAsRequest {
ChartId int64 `json:"chartId"` // 图表Id
Name string `json:"name"`// 名称
Name string `json:"name"` // 名称
}
ChartSaveAsResponse struct{
ChartSaveAsResponse {
Chart ChartItem `json:"chart"`
}
ChartDeleteRequest struct{
ChartDeleteRequest {
Id int64 `path:"id"`
}
ChartDeleteResponse struct{}
ChartUpdateRequest struct{
ChartUpdateRequest {
Id int64 `path:"id"`
Cover string `json:"cover,optional"` // 封面
ChartProperty ChartProperty `json:"property"` // 图表属性
}
ChartUpdateResponse struct{}
ChartSearchRequest struct {
ChartSearchRequest {
IncludeTypes []string `json:"includeTypes,optional"` //包含的类型: 类型 report:报表 group:分组 chart:图表(未指定返回所有)
DataStyle string `json:"dataStyle,optional"` // 数据样式 tree:树形 flat:平铺
}
ChartSearchResponse{
ChartSearchResponse {
List []ChartItem `json:"list"`
Total int64 `json:"total"`
}
ChartUpdateSortRequest struct{
ChartUpdateSortRequest {
Id int64 `json:"id"`
Pid int64 `json:"pid"`
Index int `json:"index"` // 元素下标
}
ChartUpdateSortResponse struct{}
ChartRenameRequest struct{
ChartRenameRequest {
Id int64 `json:"id"`
Name string `json:"name"`// 名称
Name string `json:"name"` // 名称
}
ChartRenameResponse struct{}
ChartItem struct{
Id int64 `json:"id,optional"`// ID
Pid int64 `json:"pid,optional"`// 父级ID
Type string `json:"type,optional"`// 类型 report:报表 group:分组 chart:图表
Sort int64 `json:"sort,optional"`// 排序
Name string `json:"name,optional"`// 名称
ChartItem {
Id int64 `json:"id,optional"` // ID
Pid int64 `json:"pid,optional"` // 父级ID
Type string `json:"type,optional"` // 类型 report:报表 group:分组 chart:图表
Sort int64 `json:"sort,optional"` // 排序
Name string `json:"name,optional"` // 名称
Cover string `json:"cover,optional"` // 封面
ChartType string `json:"chartType,optional"` // 图表类型
UpdatedAt int `json:"updatedAt,optional"` // 更新时间
ChartProperty *ChartProperty `json:"property,optional,omitempty"` //属性
}
LoadChartDataRequest struct{
LoadChartDataRequest {
ChartId int64 `json:"chartId"`
}
LoadChartDataResponse struct{
LoadChartDataResponse {
}
)
type(
ChartComponentSearchRequest{
type (
ChartComponentSearchRequest {
Name string `json:"name,optional"`
}
ChartComponentSearchResponse{
ChartComponentSearchResponse {
List []ChartComponentItem `json:"list"`
Total int64 `json:"total"`
}
ChartComponentItem struct{
Name string `json:"name,optional"`// 名称
Code string `json:"code,optional"`// 编码
ChartComponentItem {
Name string `json:"name,optional"` // 名称
Code string `json:"code,optional"` // 编码
Cover string `json:"cover,optional"` // 封面
Desc string `json:"desc,optional"`// 描述
Desc string `json:"desc,optional"` // 描述
}
)
type(
ChartProperty struct {
type (
ChartProperty {
Title Title `json:"title,optional"` // 标题
TableAbility TableAbility `json:"table,optional"` // 表筛选功能
Series []Series `json:"series,optional"` // 系列(数据源)
Other Other `json:"other,optional"` // 其他额外配置
}
Other struct {
Other {
Quarter *Quarter `json:"quarter,optional,omitempty"` // 四分图
}
Quarter struct {
Quarter {
XAxisLabel string `json:"xAxisLabel"` // x轴标签名
XAxisFirstLabel string `json:"xAxisFirstLabel"` // 签名1
XAxisSecondLabel string `json:"xAxisSecondLabel"` // 签名2
... ... @@ -170,10 +169,10 @@ type(
AreaColor bool `json:"areaColor"` // 颜色
SeriesList []QuarterSeries `json:"seriesList"` // 图形系列
}
QuarterSeries struct {
QuarterSeries {
SeriesValue string `json:"seriesValue"`
}
Title struct {
Title {
TitleSwitch bool `json:"titleSwitch,optional"` // 组件标题开关
IntroduceSwitch bool `json:"introduceSwitch,optional"` // 组件说明开关
TitleType string `json:"titleType"` // 标题类型
... ... @@ -187,11 +186,17 @@ type(
HeadingAlign string `json:"headingAlign,optional"` // 主标题 文本对齐方式 left center right
SubAlign string `json:"subAlign,optional"` // 副标题 文本对齐方式 left center right
}
TableAbility struct {
TableAbility {
FilterSwitch bool `json:"filterSwitch,optional"` // 表筛选功能开关
DimensionList []Dimension `json:"dimensionList,optional"` // 维度列表
CardSwitch bool `json:"cardSwitch,optional"` // 顺序标识开关
CardIdent string `json:"cardIdent,optional"` // 顺序标识
CardOrderList []CardOrderItem `json:"cardOrderList,optional"` // 卡片列表顺序
}
CardOrderItem {
CardId string `json:"cardId,optional"`
}
Series struct {// 图表类型 (记录型表格:RecordTable-1 总体指标:MetricsCard-1 容器卡片:ContainerCard-1 四分图:QuarterChart-1)
Series { // 图表类型 (记录型表格:RecordTable-1 总体指标:MetricsCard-1 容器卡片:ContainerCard-1 四分图:QuarterChart-1)
Name string `json:"name"` // 名称 (例如 指标1、指标2)
SourceFrom string `json:"from,options=[ByteBank,User]"` // 数据源类型 ByteBank:字库 User:用户自定义
DataSourceId int64 `json:"dataSourceId,optional,omitempty"` // 数据源ID(from值为ByteBank时有值)
... ... @@ -201,12 +206,12 @@ type(
TargetNum string `json:"targetNum,optional,omitempty"` // 指标数值
TargetUnit string `json:"targetUnit,optional,omitempty"` // 指标单位
}
Expression struct {
Expression {
Operator string `json:"operator"` // 操作符号 <,>,==,<>,<=,>=
CompareValue string `json:"compareValue"` // 比较值
ToValue string `json:"toValue"` // 显示值(转为)
}
Dimension struct{
Dimension {
Name string `json:"name,optional,omitempty"`
Value string `json:"dimensionVal,optional"`
}
... ...