Initial WhaleTown V2 frontend

This commit is contained in:
2026-07-19 22:42:20 +08:00
commit 435c578dde
1421 changed files with 54486 additions and 0 deletions

View File

@@ -0,0 +1,357 @@
[gd_scene load_steps=9 format=3]
[ext_resource type="Script" path="res://scenes/ui/CafeCompanionRecruitmentPanel.gd" id="1_script"]
[sub_resource type="StyleBoxFlat" id="Style_Panel"]
bg_color = Color(0.96, 0.975, 0.982, 0.98)
border_width_left = 1
border_width_top = 1
border_width_right = 1
border_width_bottom = 1
border_color = Color(0.46, 0.62, 0.70, 0.28)
corner_radius_top_left = 12
corner_radius_top_right = 12
corner_radius_bottom_right = 12
corner_radius_bottom_left = 12
shadow_color = Color(0.06, 0.09, 0.12, 0.22)
shadow_size = 12
shadow_offset = Vector2(0, 5)
[sub_resource type="StyleBoxFlat" id="Style_Input"]
bg_color = Color(1, 1, 1, 0.96)
border_width_left = 1
border_width_top = 1
border_width_right = 1
border_width_bottom = 1
border_color = Color(0.55, 0.68, 0.76, 0.36)
corner_radius_top_left = 8
corner_radius_top_right = 8
corner_radius_bottom_right = 8
corner_radius_bottom_left = 8
content_margin_left = 12
content_margin_top = 6
content_margin_right = 12
content_margin_bottom = 6
[sub_resource type="StyleBoxEmpty" id="Style_InputLine"]
[sub_resource type="StyleBoxFlat" id="Style_ButtonNormal"]
bg_color = Color(0.22, 0.56, 0.78, 1)
corner_radius_top_left = 8
corner_radius_top_right = 8
corner_radius_bottom_right = 8
corner_radius_bottom_left = 8
[sub_resource type="StyleBoxFlat" id="Style_ButtonHover"]
bg_color = Color(0.29, 0.64, 0.84, 1)
corner_radius_top_left = 8
corner_radius_top_right = 8
corner_radius_bottom_right = 8
corner_radius_bottom_left = 8
[sub_resource type="StyleBoxFlat" id="Style_ButtonPressed"]
bg_color = Color(0.16, 0.45, 0.66, 1)
corner_radius_top_left = 8
corner_radius_top_right = 8
corner_radius_bottom_right = 8
corner_radius_bottom_left = 8
[sub_resource type="StyleBoxFlat" id="Style_Close"]
bg_color = Color(0.86, 0.91, 0.94, 0.85)
corner_radius_top_left = 8
corner_radius_top_right = 8
corner_radius_bottom_right = 8
corner_radius_bottom_left = 8
[sub_resource type="StyleBoxEmpty" id="Style_Empty"]
[node name="CafeCompanionRecruitmentPanel" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
script = ExtResource("1_script")
[node name="CafeRecruitmentFrame" type="PanelContainer" parent="."]
unique_name_in_owner = true
visible = false
layout_mode = 1
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -320.0
offset_top = -360.0
offset_right = 320.0
offset_bottom = 360.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 0
theme_override_styles/panel = SubResource("Style_Panel")
[node name="PanelMargin" type="MarginContainer" parent="CafeRecruitmentFrame"]
layout_mode = 2
theme_override_constants/margin_left = 20
theme_override_constants/margin_top = 14
theme_override_constants/margin_right = 20
theme_override_constants/margin_bottom = 14
[node name="ContentVBox" type="VBoxContainer" parent="CafeRecruitmentFrame/PanelMargin"]
layout_mode = 2
theme_override_constants/separation = 6
[node name="HeaderRow" type="HBoxContainer" parent="CafeRecruitmentFrame/PanelMargin/ContentVBox"]
layout_mode = 2
theme_override_constants/separation = 10
[node name="TitleStack" type="VBoxContainer" parent="CafeRecruitmentFrame/PanelMargin/ContentVBox/HeaderRow"]
layout_mode = 2
size_flags_horizontal = 3
theme_override_constants/separation = 2
[node name="TitleLabel" type="Label" parent="CafeRecruitmentFrame/PanelMargin/ContentVBox/HeaderRow/TitleStack"]
unique_name_in_owner = true
layout_mode = 2
theme_override_colors/font_color = Color(0.13, 0.21, 0.27, 1)
theme_override_font_sizes/font_size = 20
text = "咖啡店陪伴招聘"
text_overrun_behavior = 3
[node name="SubtitleLabel" type="Label" parent="CafeRecruitmentFrame/PanelMargin/ContentVBox/HeaderRow/TitleStack"]
unique_name_in_owner = true
layout_mode = 2
theme_override_colors/font_color = Color(0.40, 0.50, 0.57, 1)
theme_override_font_sizes/font_size = 13
text = "鲸鱼咖啡馆 · 吧台招聘终端"
text_overrun_behavior = 3
[node name="CloseButton" type="Button" parent="CafeRecruitmentFrame/PanelMargin/ContentVBox/HeaderRow"]
unique_name_in_owner = true
custom_minimum_size = Vector2(34, 34)
layout_mode = 2
focus_mode = 0
mouse_default_cursor_shape = 2
theme_override_colors/font_color = Color(0.20, 0.30, 0.36, 1)
theme_override_font_sizes/font_size = 18
theme_override_styles/normal = SubResource("Style_Close")
theme_override_styles/hover = SubResource("Style_Close")
theme_override_styles/pressed = SubResource("Style_Close")
theme_override_styles/focus = SubResource("Style_Empty")
text = "x"
[node name="ServicePointLabel" type="Label" parent="CafeRecruitmentFrame/PanelMargin/ContentVBox"]
layout_mode = 2
theme_override_colors/font_color = Color(0.18, 0.26, 0.32, 1)
theme_override_font_sizes/font_size = 13
text = "陪伴位"
[node name="ServicePointOption" type="OptionButton" parent="CafeRecruitmentFrame/PanelMargin/ContentVBox"]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 34)
layout_mode = 2
focus_mode = 0
mouse_default_cursor_shape = 2
theme_override_font_sizes/font_size = 15
[node name="EmploymentDurationLabel" type="Label" parent="CafeRecruitmentFrame/PanelMargin/ContentVBox"]
layout_mode = 2
theme_override_colors/font_color = Color(0.18, 0.26, 0.32, 1)
theme_override_font_sizes/font_size = 13
text = "打工时间"
[node name="EmploymentDurationOption" type="OptionButton" parent="CafeRecruitmentFrame/PanelMargin/ContentVBox"]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 34)
layout_mode = 2
focus_mode = 0
mouse_default_cursor_shape = 2
theme_override_font_sizes/font_size = 15
[node name="PersonaNameLabel" type="Label" parent="CafeRecruitmentFrame/PanelMargin/ContentVBox"]
layout_mode = 2
theme_override_colors/font_color = Color(0.18, 0.26, 0.32, 1)
theme_override_font_sizes/font_size = 13
text = "人设名称"
[node name="PersonaNameInput" type="LineEdit" parent="CafeRecruitmentFrame/PanelMargin/ContentVBox"]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 34)
layout_mode = 2
placeholder_text = "例如:蓝莓摩卡"
caret_blink = true
theme_override_colors/font_color = Color(0.16, 0.21, 0.27, 1)
theme_override_colors/font_placeholder_color = Color(0.48, 0.56, 0.62, 0.78)
theme_override_font_sizes/font_size = 15
theme_override_styles/normal = SubResource("Style_Input")
theme_override_styles/focus = SubResource("Style_Input")
[node name="ProtocolLabel" type="Label" parent="CafeRecruitmentFrame/PanelMargin/ContentVBox"]
layout_mode = 2
theme_override_colors/font_color = Color(0.18, 0.26, 0.32, 1)
theme_override_font_sizes/font_size = 13
text = "协议"
[node name="ProtocolOption" type="OptionButton" parent="CafeRecruitmentFrame/PanelMargin/ContentVBox"]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 34)
layout_mode = 2
focus_mode = 0
mouse_default_cursor_shape = 2
theme_override_font_sizes/font_size = 15
[node name="BaseUrlLabel" type="Label" parent="CafeRecruitmentFrame/PanelMargin/ContentVBox"]
unique_name_in_owner = true
layout_mode = 2
theme_override_colors/font_color = Color(0.18, 0.26, 0.32, 1)
theme_override_font_sizes/font_size = 13
text = "OpenAI-compatible URL"
[node name="BaseUrlInput" type="LineEdit" parent="CafeRecruitmentFrame/PanelMargin/ContentVBox"]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 34)
layout_mode = 2
placeholder_text = "https://api.example.com/v1"
caret_blink = true
theme_override_colors/font_color = Color(0.16, 0.21, 0.27, 1)
theme_override_colors/font_placeholder_color = Color(0.48, 0.56, 0.62, 0.78)
theme_override_font_sizes/font_size = 15
theme_override_styles/normal = SubResource("Style_Input")
theme_override_styles/focus = SubResource("Style_Input")
[node name="TokenLabel" type="Label" parent="CafeRecruitmentFrame/PanelMargin/ContentVBox"]
layout_mode = 2
theme_override_colors/font_color = Color(0.18, 0.26, 0.32, 1)
theme_override_font_sizes/font_size = 13
text = "Token"
[node name="TokenInput" type="LineEdit" parent="CafeRecruitmentFrame/PanelMargin/ContentVBox"]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 34)
layout_mode = 2
placeholder_text = "只提交给后端保存"
secret = true
caret_blink = true
theme_override_colors/font_color = Color(0.16, 0.21, 0.27, 1)
theme_override_colors/font_placeholder_color = Color(0.48, 0.56, 0.62, 0.78)
theme_override_font_sizes/font_size = 15
theme_override_styles/normal = SubResource("Style_Input")
theme_override_styles/focus = SubResource("Style_Input")
[node name="ModelLabel" type="Label" parent="CafeRecruitmentFrame/PanelMargin/ContentVBox"]
layout_mode = 2
theme_override_colors/font_color = Color(0.18, 0.26, 0.32, 1)
theme_override_font_sizes/font_size = 13
text = "模型"
[node name="ModelRow" type="HBoxContainer" parent="CafeRecruitmentFrame/PanelMargin/ContentVBox"]
layout_mode = 2
theme_override_constants/separation = 8
[node name="ModelInput" type="LineEdit" parent="CafeRecruitmentFrame/PanelMargin/ContentVBox/ModelRow"]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 34)
layout_mode = 2
size_flags_horizontal = 3
text = "gpt-4o-mini"
placeholder_text = "gpt-4o-mini"
caret_blink = true
theme_override_colors/font_color = Color(0.16, 0.21, 0.27, 1)
theme_override_colors/font_placeholder_color = Color(0.48, 0.56, 0.62, 0.78)
theme_override_font_sizes/font_size = 15
theme_override_styles/normal = SubResource("Style_Input")
theme_override_styles/focus = SubResource("Style_Input")
[node name="FetchModelsButton" type="Button" parent="CafeRecruitmentFrame/PanelMargin/ContentVBox/ModelRow"]
unique_name_in_owner = true
custom_minimum_size = Vector2(104, 34)
layout_mode = 2
focus_mode = 0
mouse_default_cursor_shape = 2
theme_override_colors/font_color = Color(1, 1, 1, 1)
theme_override_font_sizes/font_size = 14
theme_override_styles/normal = SubResource("Style_ButtonNormal")
theme_override_styles/hover = SubResource("Style_ButtonHover")
theme_override_styles/pressed = SubResource("Style_ButtonPressed")
theme_override_styles/focus = SubResource("Style_Empty")
text = "获取模型"
[node name="ModelOption" type="OptionButton" parent="CafeRecruitmentFrame/PanelMargin/ContentVBox"]
unique_name_in_owner = true
visible = false
custom_minimum_size = Vector2(0, 34)
layout_mode = 2
focus_mode = 0
mouse_default_cursor_shape = 2
theme_override_font_sizes/font_size = 14
[node name="PersonaPromptLabel" type="Label" parent="CafeRecruitmentFrame/PanelMargin/ContentVBox"]
layout_mode = 2
theme_override_colors/font_color = Color(0.18, 0.26, 0.32, 1)
theme_override_font_sizes/font_size = 13
text = "人设指令"
[node name="PersonaPromptInput" type="TextEdit" parent="CafeRecruitmentFrame/PanelMargin/ContentVBox"]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 76)
layout_mode = 2
size_flags_vertical = 3
placeholder_text = "写清楚角色性格、语气、边界和陪伴方式"
wrap_mode = 1
caret_blink = true
theme_override_colors/font_color = Color(0.16, 0.21, 0.27, 1)
theme_override_colors/font_placeholder_color = Color(0.48, 0.56, 0.62, 0.78)
theme_override_font_sizes/font_size = 15
theme_override_styles/normal = SubResource("Style_Input")
theme_override_styles/focus = SubResource("Style_Input")
[node name="WelcomeMessageLabel" type="Label" parent="CafeRecruitmentFrame/PanelMargin/ContentVBox"]
layout_mode = 2
theme_override_colors/font_color = Color(0.18, 0.26, 0.32, 1)
theme_override_font_sizes/font_size = 13
text = "欢迎语"
[node name="WelcomeMessageInput" type="LineEdit" parent="CafeRecruitmentFrame/PanelMargin/ContentVBox"]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 34)
layout_mode = 2
placeholder_text = "可选"
caret_blink = true
theme_override_colors/font_color = Color(0.16, 0.21, 0.27, 1)
theme_override_colors/font_placeholder_color = Color(0.48, 0.56, 0.62, 0.78)
theme_override_font_sizes/font_size = 15
theme_override_styles/normal = SubResource("Style_Input")
theme_override_styles/focus = SubResource("Style_Input")
[node name="EnabledCheckBox" type="CheckBox" parent="CafeRecruitmentFrame/PanelMargin/ContentVBox"]
unique_name_in_owner = true
layout_mode = 2
button_pressed = true
theme_override_colors/font_color = Color(0.18, 0.26, 0.32, 1)
theme_override_font_sizes/font_size = 14
text = "立即开始接待"
[node name="SubmitButton" type="Button" parent="CafeRecruitmentFrame/PanelMargin/ContentVBox"]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 38)
layout_mode = 2
focus_mode = 0
mouse_default_cursor_shape = 2
theme_override_colors/font_color = Color(1, 1, 1, 1)
theme_override_font_sizes/font_size = 16
theme_override_styles/normal = SubResource("Style_ButtonNormal")
theme_override_styles/hover = SubResource("Style_ButtonHover")
theme_override_styles/pressed = SubResource("Style_ButtonPressed")
theme_override_styles/focus = SubResource("Style_Empty")
text = "提交雇佣登记"
[node name="StatusLabel" type="Label" parent="CafeRecruitmentFrame/PanelMargin/ContentVBox"]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 18)
layout_mode = 2
theme_override_colors/font_color = Color(0.32, 0.42, 0.48, 1)
theme_override_font_sizes/font_size = 13
text = ""
text_overrun_behavior = 3