Skip to content

Commit 2557ce8

Browse files
authored
Feat/2.3.0 (#1886)
2 parents 24620f6 + 041abe6 commit 2557ce8

File tree

6 files changed

+43
-22
lines changed

6 files changed

+43
-22
lines changed

src/backend/bisheng/llm/domain/utils.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,16 @@ def parse_token_usage(result: Any) -> tuple[int, int, int, int]:
5656
input_token, output_token, cache_token, total_token = 0, 0, 0, 0
5757
if isinstance(result, ChatResult):
5858
for generation in result.generations:
59-
token_usage = generation.generation_info.get('token_usage', {})
59+
token_usage = generation.generation_info.get('token_usage', {}) or generation.message.response_metadata.get(
60+
'token_usage', {}) or generation.message.usage_metadata
6061
tmp1, tmp2, tmp3, tmp4 = get_token_from_usage(token_usage)
6162
input_token += tmp1
6263
output_token += tmp2
6364
cache_token += tmp3
6465
total_token += tmp4
6566
elif isinstance(result, ChatGenerationChunk):
66-
token_usage = result.generation_info.get('token_usage', {})
67+
token_usage = result.message.response_metadata.get('token_usage', {}) or result.generation_info.get(
68+
'token_usage', {}) or result.message.usage_metadata
6769
input_token, output_token, cache_token, total_token = get_token_from_usage(token_usage)
6870
else:
6971
logger.warning(f'unknown result type: {type(result)}')

src/frontend/platform/src/pages/Dashboard/components/charts/BaseChart.tsx

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,14 +202,21 @@ const getPieChartOption = (
202202
name: s.name,
203203
left: styleConfig.legendPosition === 'left' && 100,
204204
right: styleConfig.legendPosition === 'right' && 100,
205-
bottom: styleConfig.legendPosition === 'bottom' && 40,
205+
bottom: styleConfig.legendPosition === 'bottom' && 20,
206+
top: styleConfig.legendPosition === 'top' && 20,
206207
type: 'pie',
207208
radius: isDonut ? ['40%', '70%'] : '70%',
208209
avoidLabelOverlap: true,
209210
itemStyle: { borderRadius: 0, borderColor: '#fff', borderWidth: 2 },
210211
label: {
211212
show: styleConfig.showDataLabel ?? true,
212213
formatter: '{b}: {d}%',
214+
fontSize: 10,
215+
color: "#666",
216+
textBorderWidth: 0,
217+
textBorderColor: 'none',
218+
textShadowBlur: 0,
219+
textShadowColor: 'none',
213220
},
214221
emphasis: {
215222
label: { show: true, fontSize: 16, fontWeight: 'bold' },

src/frontend/platform/src/pages/Dashboard/components/config/ComponentConfigDrawer.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -562,6 +562,8 @@ export function ComponentConfigDrawer() {
562562

563563
if (dataConfig?.metrics?.[0]?.fieldName && !isMetricCard) {
564564
finalStyleConfig.title = dataConfig.metrics[0].fieldName
565+
} else if (chartType !== ChartType.Metric) {
566+
finalStyleConfig.title = editingComponent.title
565567
} else {
566568
finalStyleConfig.title = ''
567569
}
@@ -677,7 +679,7 @@ export function ComponentConfigDrawer() {
677679
const CollapsibleBlock = useCallback(({ title: blockTitle, required, collapsed, onCollapse, children }: any) => (
678680
<div className="space-y-3">
679681
<div className="flex items-center justify-between">
680-
<label className="text-sm font-medium flex items-center gap-1 text-black">
682+
<label className="text-sm font-medium flex items-center gap-1 text-foreground">
681683
{required && <span className="text-red-500">*</span>}
682684
{blockTitle}
683685
</label>
@@ -896,15 +898,15 @@ export function ComponentConfigDrawer() {
896898
}
897899
}} maxHeight={400}>
898900
<div className="relative w-full group">
899-
<div className="flex h-[28px] w-full items-center justify-between rounded-md border border-gray-300 bg-white px-3 py-2 text-sm transition-colors hover:border-gray-400 cursor-pointer">
901+
<div className="flex h-[28px] w-full items-center justify-between rounded-md border hover:border-muted-foreground/40 px-3 py-2 text-sm transition-colors cursor-pointer">
900902
{/* 文本区域 */}
901903
<div className="flex items-center gap-2 flex-1 min-w-0">
902904
<img
903905
src={`${__APP_ENV__.BASE_URL}/assets/dashboard/${chartType}.png`}
904906
className="w-4 h-4 shrink-0"
905907
alt={chartType}
906908
/>
907-
<span className="truncate text-gray-700">
909+
<span className="truncate text-foreground">
908910
{t(
909911
`chart.${ChartGroupItems
910912
.flatMap(item => item.data)

src/frontend/platform/src/pages/Dashboard/components/config/DimensionBlock.tsx

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -130,18 +130,27 @@ export function DimensionBlock({
130130
}
131131
}, [editingMetric]);
132132
const getFieldTypeStyle = (dimension: DimensionItem) => {
133-
const isSelected = selectedDimensionId === dimension.id
134-
const bgColor = isSelected
135-
? dimension.fieldType === 'dimension'
136-
? 'bg-blue-100'
137-
: 'bg-[#E7F8FA]'
138-
: dimension.fieldType === 'dimension'
139-
? 'bg-blue-50'
140-
: 'bg-[#E7F8FA]'
141-
const borderColor = dimension.fieldType === 'dimension' ? 'border-blue-300' : 'border-[#88E1EB]'
142-
const invalidStyle = invalidIds?.has(dimension.id) ? 'border-red-500 bg-red-50' : ''
143-
return `${bgColor} border ${borderColor} ${invalidStyle} hover:bg-opacity-80 transition-colors`
144-
}
133+
const isSelected = selectedDimensionId === dimension.id
134+
135+
// (Blue)
136+
const dimensionStyle = isSelected
137+
? 'bg-blue-100 border-blue-300 dark:bg-blue-900/40 dark:border-blue-700'
138+
: 'bg-blue-50 border-blue-300 dark:bg-blue-900/20 dark:border-blue-800'
139+
140+
// (Cyan/Teal)
141+
const measureStyle = isSelected
142+
? 'bg-[#E7F8FA] border-[#88E1EB] dark:bg-cyan-950/50 dark:border-cyan-700'
143+
: 'bg-[#E7F8FA] border-[#88E1EB] dark:bg-cyan-950/30 dark:border-cyan-800'
144+
145+
// error
146+
const invalidStyle = invalidIds?.has(dimension.id)
147+
? 'border-red-500 bg-red-50 dark:border-red-700 dark:bg-red-900/30'
148+
: ''
149+
150+
const baseColor = dimension.fieldType === 'dimension' ? dimensionStyle : measureStyle
151+
152+
return `${baseColor} border ${invalidStyle} hover:bg-opacity-80 transition-colors`
153+
}
145154

146155
// 选项配置
147156
const isVirtualMetric = (dimension: DimensionItem) => {

src/frontend/platform/src/pages/Dashboard/components/config/StyleConfigPanel.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ function TextFormat({
8484
value={String(fontSize)}
8585
onValueChange={(v) => setFontSize(Number(v))}
8686
>
87-
<SelectTrigger className="w-[60px] h-7 px-2 text-xs border-0 bg-white">
87+
<SelectTrigger className="w-[60px] h-7 px-2 text-xs border-0 bg-background">
8888
<SelectValue />
8989
</SelectTrigger>
9090
<SelectContent>
@@ -100,7 +100,7 @@ function TextFormat({
100100
{setColor && (
101101
<Select
102102
>
103-
<SelectTrigger className="w-[60px] h-7 px-2 text-xs border-0 bg-white">
103+
<SelectTrigger className="w-[60px] h-7 px-2 text-xs border-0 bg-background">
104104
<div className="size-4 border-[#EBECF0]">
105105
<div
106106
className="h-full w-full rounded shadow-sm border"
@@ -140,7 +140,7 @@ function TextFormat({
140140
value={align}
141141
onValueChange={(v) => setAlign(v as "left" | "center" | "right")}
142142
>
143-
<SelectTrigger className="w-12 h-7 px-1 border-0 shadow-none bg-white">
143+
<SelectTrigger className="w-12 h-7 px-1 border-0 shadow-none bg-background">
144144
<SelectValue asChild>{alignIcon}</SelectValue>
145145
</SelectTrigger>
146146

@@ -226,7 +226,7 @@ function CollapsibleBlock({
226226
return (
227227
<div className="space-y-3">
228228
<div
229-
className="flex items-center justify-between bg-gray-50 rounded-md h-[28px] w-[228px] cursor-pointer"
229+
className="flex items-center justify-between bg-gray-50 dark:bg-gray-400 rounded-md h-[28px] w-[228px] cursor-pointer"
230230
onClick={onCollapse}
231231
>
232232
<div className="flex items-center">

src/frontend/platform/src/pages/Dashboard/components/editor/EditorHeader.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,7 @@ export function EditorHeader({
166166
configSave?.click()
167167

168168
setTimeout(async () => {
169+
// currentDashboard.components.map(el => el.style_config.titleColor = '')
169170
await saveMutation.mutate({
170171
id: currentDashboard?.id,
171172
dashboard: currentDashboard,

0 commit comments

Comments
 (0)