|
|
@ -196,7 +196,17 @@ class _AgentViewState extends State<AgentView> with WidgetsBindingObserver { |
|
|
IntroStepBuilder( |
|
|
IntroStepBuilder( |
|
|
group: 'ai', |
|
|
group: 'ai', |
|
|
order: 3, |
|
|
order: 3, |
|
|
getOverlayPosition: IntroOverlayBuilder.overlayPosition, |
|
|
getOverlayPosition: ({ |
|
|
|
|
|
required Offset offset, |
|
|
|
|
|
required Size screenSize, |
|
|
|
|
|
required Size size, |
|
|
|
|
|
}) { |
|
|
|
|
|
return OverlayPosition( |
|
|
|
|
|
top: 200.h, |
|
|
|
|
|
width: screenSize.width, |
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.end, |
|
|
|
|
|
); |
|
|
|
|
|
}, |
|
|
overlayBuilder: (params) { |
|
|
overlayBuilder: (params) { |
|
|
return Obx( |
|
|
return Obx( |
|
|
() => IntroOverlayBuilder.homeBuilder( |
|
|
() => IntroOverlayBuilder.homeBuilder( |
|
|
@ -242,8 +252,6 @@ class _AgentViewState extends State<AgentView> with WidgetsBindingObserver { |
|
|
? IntroStepBuilder( |
|
|
? IntroStepBuilder( |
|
|
group: 'ai', |
|
|
group: 'ai', |
|
|
order: 4, |
|
|
order: 4, |
|
|
getOverlayPosition: |
|
|
|
|
|
IntroOverlayBuilder.overlayPosition, |
|
|
|
|
|
overlayBuilder: (params) { |
|
|
overlayBuilder: (params) { |
|
|
return IntroOverlayBuilder.aiBuilder( |
|
|
return IntroOverlayBuilder.aiBuilder( |
|
|
params, |
|
|
params, |
|
|
@ -506,8 +514,6 @@ class _AgentViewState extends State<AgentView> with WidgetsBindingObserver { |
|
|
return IntroStepBuilder( |
|
|
return IntroStepBuilder( |
|
|
group: 'ai', |
|
|
group: 'ai', |
|
|
order: 1, |
|
|
order: 1, |
|
|
getOverlayPosition: |
|
|
|
|
|
IntroOverlayBuilder.overlayPosition, |
|
|
|
|
|
overlayBuilder: (params) { |
|
|
overlayBuilder: (params) { |
|
|
return IntroOverlayBuilder.aiBuilder( |
|
|
return IntroOverlayBuilder.aiBuilder( |
|
|
params, |
|
|
params, |
|
|
@ -670,19 +676,30 @@ class _AgentViewState extends State<AgentView> with WidgetsBindingObserver { |
|
|
: Colors.blue[100]) |
|
|
: Colors.blue[100]) |
|
|
: (isDarkMode |
|
|
: (isDarkMode |
|
|
? Colors.grey[800] |
|
|
? Colors.grey[800] |
|
|
: Colors.grey[200]), |
|
|
: const Color.fromARGB( |
|
|
|
|
|
255, 255, 255, 255)), |
|
|
borderRadius: |
|
|
borderRadius: |
|
|
BorderRadius.circular(22.w), |
|
|
BorderRadius.circular(22.w), |
|
|
border: Border.all( |
|
|
boxShadow: [ |
|
|
color: isPushToTalkActive |
|
|
BoxShadow( |
|
|
? Colors.blue |
|
|
color: |
|
|
: (isDarkMode |
|
|
Colors.black.withOpacity(0.2), |
|
|
? Colors.grey[800]! |
|
|
spreadRadius: 1, |
|
|
: Colors.grey |
|
|
blurRadius: 2, |
|
|
.withOpacity(0.1)), |
|
|
offset: const Offset(0, 1), |
|
|
width: |
|
|
|
|
|
isPushToTalkActive ? 2.w : 1.w, |
|
|
|
|
|
), |
|
|
), |
|
|
|
|
|
], |
|
|
|
|
|
// border: Border.all( |
|
|
|
|
|
// color: isPushToTalkActive |
|
|
|
|
|
// ? Colors.blue |
|
|
|
|
|
// : (isDarkMode |
|
|
|
|
|
// ? Colors.grey[800]! |
|
|
|
|
|
// : const Color.fromARGB( |
|
|
|
|
|
// 255, 255, 255, 255) |
|
|
|
|
|
// .withOpacity(0.1)), |
|
|
|
|
|
// width: |
|
|
|
|
|
// isPushToTalkActive ? 2.w : 1.w, |
|
|
|
|
|
// ), |
|
|
), |
|
|
), |
|
|
child: Row( |
|
|
child: Row( |
|
|
children: [ |
|
|
children: [ |
|
|
@ -742,31 +759,34 @@ class _AgentViewState extends State<AgentView> with WidgetsBindingObserver { |
|
|
SizedBox(width: 8.w), |
|
|
SizedBox(width: 8.w), |
|
|
|
|
|
|
|
|
// 动态按钮区域:展开按钮 + 发送按钮 或 图片选择按钮 |
|
|
// 动态按钮区域:展开按钮 + 发送按钮 或 图片选择按钮 |
|
|
IntroStepBuilder( |
|
|
Builder(builder: (context) { |
|
|
|
|
|
StepWidgetParams? widgetParams; |
|
|
|
|
|
return IntroStepBuilder( |
|
|
group: 'ai', |
|
|
group: 'ai', |
|
|
order: 2, |
|
|
order: 2, |
|
|
getOverlayPosition: |
|
|
onHighlightWidgetTap: () async { |
|
|
IntroOverlayBuilder.overlayPosition, |
|
|
await controller |
|
|
|
|
|
.noviceGuideService.aiStepsList[ |
|
|
|
|
|
controller.noviceGuideService.aiStep] |
|
|
|
|
|
['method'](); |
|
|
|
|
|
widgetParams!.onNext!(); |
|
|
|
|
|
controller.sendMessage(); |
|
|
|
|
|
}, |
|
|
overlayBuilder: (params) { |
|
|
overlayBuilder: (params) { |
|
|
|
|
|
widgetParams = params; |
|
|
return IntroOverlayBuilder.aiBuilder( |
|
|
return IntroOverlayBuilder.aiBuilder( |
|
|
params, |
|
|
params, |
|
|
'点击发送,${controller.noviceGuideService.aiStepsList[controller.noviceGuideService.aiStep]['send']}', |
|
|
'点击发送,${controller.noviceGuideService.aiStepsList[controller.noviceGuideService.aiStep]['send']}', |
|
|
alignment: false, |
|
|
alignment: false, |
|
|
onTap: () async { |
|
|
|
|
|
await controller |
|
|
|
|
|
.noviceGuideService.aiStepsList[ |
|
|
|
|
|
controller.noviceGuideService |
|
|
|
|
|
.aiStep]['method'](); |
|
|
|
|
|
params.onNext!(); |
|
|
|
|
|
controller.sendMessage(); |
|
|
|
|
|
}, |
|
|
|
|
|
); |
|
|
); |
|
|
}, |
|
|
}, |
|
|
builder: (BuildContext context, GlobalKey key) => |
|
|
builder: |
|
|
|
|
|
(BuildContext context, GlobalKey key) => |
|
|
Obx( |
|
|
Obx( |
|
|
key: key, |
|
|
key: key, |
|
|
() { |
|
|
() { |
|
|
final hasText = controller.hasTextInput.value; |
|
|
final hasText = |
|
|
|
|
|
controller.hasTextInput.value; |
|
|
final hasImage = |
|
|
final hasImage = |
|
|
controller.isImageInputActive.value; |
|
|
controller.isImageInputActive.value; |
|
|
final shouldShowSend = hasText || hasImage; |
|
|
final shouldShowSend = hasText || hasImage; |
|
|
@ -785,7 +805,8 @@ class _AgentViewState extends State<AgentView> with WidgetsBindingObserver { |
|
|
child: GestureDetector( |
|
|
child: GestureDetector( |
|
|
onTap: () { |
|
|
onTap: () { |
|
|
// 打开底部弹出编辑模式 |
|
|
// 打开底部弹出编辑模式 |
|
|
controller.openFullScreenEdit(); |
|
|
controller |
|
|
|
|
|
.openFullScreenEdit(); |
|
|
showModalBottomSheet( |
|
|
showModalBottomSheet( |
|
|
context: context, |
|
|
context: context, |
|
|
isScrollControlled: true, |
|
|
isScrollControlled: true, |
|
|
@ -822,7 +843,8 @@ class _AgentViewState extends State<AgentView> with WidgetsBindingObserver { |
|
|
), |
|
|
), |
|
|
// 发送按钮 |
|
|
// 发送按钮 |
|
|
GestureDetector( |
|
|
GestureDetector( |
|
|
onTap: () => controller.sendMessage(), |
|
|
onTap: () => |
|
|
|
|
|
controller.sendMessage(), |
|
|
child: Container( |
|
|
child: Container( |
|
|
width: 44.w, |
|
|
width: 44.w, |
|
|
height: 44.w, |
|
|
height: 44.w, |
|
|
@ -878,7 +900,8 @@ class _AgentViewState extends State<AgentView> with WidgetsBindingObserver { |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
), |
|
|
), |
|
|
), |
|
|
); |
|
|
|
|
|
}), |
|
|
], |
|
|
], |
|
|
), |
|
|
), |
|
|
|
|
|
|
|
|
|