Commit 2735b222 authored by DavidHuang's avatar DavidHuang

Merge branch 'yinhe-live-1212' of...

Merge branch 'yinhe-live-1212' of http://gitlab.galaxy-immi.com/mobile-group/galaxy-iOS into yinhe-live-1212
parents cf2f8d18 3ffa22f6
......@@ -220,6 +220,10 @@ class YHAIMainChatViewController: YHBaseViewController {
}
}
}
func isNeedStopResonse() -> Bool {
return self.bottomInputView.status == .loading
}
}
extension YHAIMainChatViewController: UITableViewDelegate, UITableViewDataSource {
......@@ -243,11 +247,16 @@ extension YHAIMainChatViewController: UITableViewDelegate, UITableViewDataSource
cell.messageClick = {
[weak self] text in
guard let self = self else { return }
self.stopAutoResponse { success in
if success {
self.sendMessage(text)
if self.isNeedStopResonse() {
self.stopAutoResponse { success in
if success {
self.sendMessage(text)
}
}
} }
} else {
self.sendMessage(text)
}
}
return cell
} else if msgType == .thinking {
......
......@@ -78,6 +78,50 @@ class YHAIRobotChatViewController: YHBaseViewController {
return msg
}()
lazy var bannerView: YHAIChatBannerView = {
let view = YHAIChatBannerView(frame: CGRectMake(0, 0, KScreenWidth, 360))
view.titleLabel.text = getHeaderTitle()
view.descLabel.text = getHeaderDesc()
view.bannerArr = self.getBannerForRobotType(robotType)
view.messages = getFlowMessages()
view.selectFlowMsgBlock = {
[weak self] text in
guard let self = self else { return }
if self.isNeedStopResonse() {
self.stopAutoResponse { success in
if success {
self.sendMessage(text)
}
}
} else {
self.sendMessage(text)
}
}
view.selectBannerItemBlock = {
[weak self] model in
guard let self = self else { return }
var text = ""
if !model.msg.isEmpty {
text = model.msg
} else if !model.desc.isEmpty {
text = model.desc
}
if self.isNeedStopResonse() {
self.stopAutoResponse { success in
if success {
self.sendMessage(text)
}
}
} else {
self.sendMessage(text)
}
}
return view
}()
override func viewDidLoad() {
super.viewDidLoad()
......@@ -95,6 +139,12 @@ class YHAIRobotChatViewController: YHBaseViewController {
self.view.addSubview(self.bgImgView)
self.view.insertSubview(bgImgView, belowSubview: gk_navigationBar)
if self.isNeedShowBannerHeader {
self.tableView.tableHeaderView = self.bannerView
} else {
self.tableView.tableHeaderView = nil
}
cleanBtn.snp.makeConstraints { make in
make.width.height.equalTo(24)
make.centerY.equalToSuperview()
......@@ -123,26 +173,28 @@ class YHAIRobotChatViewController: YHBaseViewController {
}
@objc override func backItemClick(_ sender: Any) {
self.stopAutoResponse()
if self.isNeedStopResonse() {
self.stopAutoResponse { success in
}
}
self.navigationController?.popViewController(animated: true)
}
func scrollToBottom() {
self.tableView.reloadData {
if self.messages.count > 0 {
let indexPath = IndexPath(row: self.messages.count-1, section: 0)
self.tableView.scrollToRow(at: indexPath, at: .bottom, animated: true)
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5, execute: {
let indexPath = IndexPath(row: self.messages.count-1, section: 0)
self.tableView.scrollToRow(at: indexPath, at: .bottom, animated: true)
})
}
}
}
func sendMessage(_ text: String) {
if self.bottomInputView.status == .loading {
YHHUD.flash(message: "AI回复未结束")
return
}
self.chatConfig.removeThinkingMessageFromChatList(&messages)
let question = YHAIChatMessage.createQuestionMessage(text)
messages.append(question)
......@@ -283,6 +335,10 @@ class YHAIRobotChatViewController: YHBaseViewController {
return ""
}
func isNeedStopResonse() -> Bool {
return self.bottomInputView.status == .loading
}
}
extension YHAIRobotChatViewController: UITableViewDelegate, UITableViewDataSource {
......@@ -306,10 +362,15 @@ extension YHAIRobotChatViewController: UITableViewDelegate, UITableViewDataSourc
cell.messageClick = {
[weak self] text in
guard let self = self else { return }
self.stopAutoResponse { success in
if success {
self.sendMessage(text)
if self.isNeedStopResonse() {
self.stopAutoResponse { success in
if success {
self.sendMessage(text)
}
}
} else {
self.sendMessage(text)
}
}
return cell
......@@ -395,46 +456,6 @@ extension YHAIRobotChatViewController: UITableViewDelegate, UITableViewDataSourc
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableView.automaticDimension
}
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
if !isNeedShowBannerHeader {
return UIView()
}
let view = YHAIChatBannerView()
view.titleLabel.text = getHeaderTitle()
view.descLabel.text = getHeaderDesc()
view.bannerArr = self.getBannerForRobotType(robotType)
view.messages = getFlowMessages()
view.selectFlowMsgBlock = {
[weak self] text in
guard let self = self else { return }
self.stopAutoResponse { success in
if success {
self.sendMessage(text)
}
}
}
view.selectBannerItemBlock = {
[weak self] model in
guard let self = self else { return }
var text = ""
if !model.msg.isEmpty {
text = model.msg
} else if !model.desc.isEmpty {
text = model.desc
}
self.stopAutoResponse { success in
if success {
self.sendMessage(text)
}
}
}
return view
}
func getBannerForRobotType(_ robotType: String) -> [YHAIChatBannerItem] {
......@@ -452,16 +473,23 @@ extension YHAIRobotChatViewController: UITableViewDelegate, UITableViewDataSourc
return []
}
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let view = UIView()
return view
}
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
let view = UIView()
return view
}
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
if !isNeedShowBannerHeader {
return 1.0
}
return 360.0
return 1.0
}
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return 1.0
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment