Commit 1ef1f431 by HoMeTown

feat: 消息的操作

parent 1fda93a3
......@@ -70,3 +70,47 @@ export function fetchStreamResponse(url: string, body: Record<string, any>, onMe
content: error,
}))
}
/**
* 提交收藏
* @param recordId
* @returns
*/
export function fetchSubmitCollection(recordId: string) {
return http.post('/conversation/api/collection/mobile/v1/submit_collection', { recordId })
}
/**
* 删除收藏
* @param collectionIdList
*/
export function fetchDelCollection(collectionIdList: string[]) {
return http.post('/conversation/api/collection/mobile/v1/delete_user_collection', { collectionIdList })
}
/**
* 取消收藏
* @param recordId
*/
export function fetchCancelCollection(recordId: string) {
return http.post('/conversation/api/collection/mobile/v1/cancel_user_collection', { recordId })
}
/**
* 提交反馈
*/
export function fetchSubmitFeedback(params: any) {
return http.post('/conversation/api/feedback/mobile/v1/submit_feedback', {
...params,
scene: '01',
})
}
/**
* 获取反馈配置
*/
export function fetchGetFeedbackConfig() {
return http.post('/conversation/api/feedback/mobile/v1/get_config', {
scene: '01',
})
}
<?xml version="1.0" encoding="UTF-8"?>
<svg width="22px" height="22px" viewBox="0 0 22 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>矩形备份 5</title>
<defs>
<rect id="path-1" x="0" y="0" width="22" height="22" rx="7.33333333"></rect>
</defs>
<g id="晓得---PC端页面-草稿" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="晓得-PC端---当前对话提问" transform="translate(-1283.000000, -730.000000)">
<g id="对话流" transform="translate(498.000000, 144.000000)">
<g id="编组-10" transform="translate(0.000000, 224.000000)">
<g id="编组-7备份" transform="translate(64.000000, 0.000000)">
<g id="操作按钮" transform="translate(682.000000, 362.000000)">
<g id="踩" transform="translate(50.000000, 11.000000) scale(1, -1) translate(-50.000000, -11.000000) translate(39.000000, 0.000000)">
<mask id="mask-2" fill="white">
<use xlink:href="#path-1"></use>
</mask>
<g id="矩形备份-5"></g>
<path d="M17.9861958,9.41122355 C17.4920104,8.81248083 16.6847281,8.81248083 16.4190189,8.81248083 L14.2899599,8.81248083 C14.4625863,7.88147807 14.6098265,6.79868139 14.2933448,5.65685373 C14.0767156,4.8708985 13.6789979,4.31263416 13.0748055,3.95170193 C12.7583237,3.76280282 12.4299951,3.66666667 12.0965892,3.66666667 C11.2199179,3.66666667 10.5632606,4.31432076 10.4651005,5.2807421 C10.4278673,5.64167433 10.394019,5.98405397 10.3077058,6.27752223 C9.98614684,7.35525912 9.20086596,8.17831953 8.47481963,8.83777982 C8.20403312,9.08065011 7.91463004,9.5157927 7.91124521,10.0049065 C7.90109072,11.3137075 7.8993983,12.6275682 7.8993983,13.9701012 L7.89768589,16.3549525 C7.89432105,17.1527139 8.32080981,17.7953082 9.0316244,18.0702239 C9.40734068,18.2220178 9.80505836,18.3063477 10.2180078,18.3181539 C10.8746651,18.3265869 11.5347072,18.3265869 12.1524389,18.3265869 L13.1154234,18.3265869 C13.7450021,18.3265869 14.3745807,18.3265869 15.0075442,18.3333333 L15.0278532,18.3333333 C15.764054,18.3333333 16.3428602,17.9673413 16.6170315,17.3298068 L16.6982675,17.1425943 C16.8895104,16.7040785 17.0858307,16.2503833 17.2076846,15.7460902 C17.580016,14.2129715 17.9675792,12.5719105 18.2806761,10.9595216 C18.4059149,10.3203005 18.3077548,9.79914137 17.9861958,9.41122355 Z M5.59263572,8.85970561 L5.39123825,8.85970561 C4.44010064,8.85970561 3.66666667,9.63048145 3.66666667,10.5783502 L3.66666667,16.4544618 C3.66666667,17.4023306 4.44010064,18.1731064 5.39123825,18.1731064 L5.59263572,18.1731064 C6.54377334,18.1731064 7.31721007,17.4023306 7.31721007,16.4544618 L7.31721007,10.5783502 C7.31889972,9.63048145 6.54377334,8.85970561 5.59263572,8.85970561 Z" id="形状" fill="#D1D5DA" fill-rule="nonzero" mask="url(#mask-2)"></path>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg width="22px" height="22px" viewBox="0 0 22 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>矩形备份 5</title>
<defs>
<rect id="path-1" x="0" y="0" width="22" height="22" rx="7.33333333"></rect>
</defs>
<g id="晓得---PC端页面-草稿" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="晓得-PC端---输入框最高限制" transform="translate(-1283.000000, -696.000000)">
<g id="对话流" transform="translate(498.000000, 110.000000)">
<g id="编组-10" transform="translate(0.000000, 224.000000)">
<g id="编组-7备份" transform="translate(64.000000, 0.000000)">
<g id="操作按钮" transform="translate(682.000000, 362.000000)">
<g id="踩" transform="translate(50.000000, 11.000000) scale(1, -1) translate(-50.000000, -11.000000) translate(39.000000, 0.000000)">
<mask id="mask-2" fill="white">
<use xlink:href="#path-1"></use>
</mask>
<g id="矩形备份-5"></g>
<path d="M17.9861958,9.41122355 C17.4920104,8.81248083 16.6847281,8.81248083 16.4190189,8.81248083 L14.2899599,8.81248083 C14.4625863,7.88147807 14.6098265,6.79868139 14.2933448,5.65685373 C14.0767156,4.8708985 13.6789979,4.31263416 13.0748055,3.95170193 C12.7583237,3.76280282 12.4299951,3.66666667 12.0965892,3.66666667 C11.2199179,3.66666667 10.5632606,4.31432076 10.4651005,5.2807421 C10.4278673,5.64167433 10.394019,5.98405397 10.3077058,6.27752223 C9.98614684,7.35525912 9.20086596,8.17831953 8.47481963,8.83777982 C8.20403312,9.08065011 7.91463004,9.5157927 7.91124521,10.0049065 C7.90109072,11.3137075 7.8993983,12.6275682 7.8993983,13.9701012 L7.89768589,16.3549525 C7.89432105,17.1527139 8.32080981,17.7953082 9.0316244,18.0702239 C9.40734068,18.2220178 9.80505836,18.3063477 10.2180078,18.3181539 C10.8746651,18.3265869 11.5347072,18.3265869 12.1524389,18.3265869 L13.1154234,18.3265869 C13.7450021,18.3265869 14.3745807,18.3265869 15.0075442,18.3333333 L15.0278532,18.3333333 C15.764054,18.3333333 16.3428602,17.9673413 16.6170315,17.3298068 L16.6982675,17.1425943 C16.8895104,16.7040785 17.0858307,16.2503833 17.2076846,15.7460902 C17.580016,14.2129715 17.9675792,12.5719105 18.2806761,10.9595216 C18.4059149,10.3203005 18.3077548,9.79914137 17.9861958,9.41122355 Z M5.59263572,8.85970561 L5.39123825,8.85970561 C4.44010064,8.85970561 3.66666667,9.63048145 3.66666667,10.5783502 L3.66666667,16.4544618 C3.66666667,17.4023306 4.44010064,18.1731064 5.39123825,18.1731064 L5.59263572,18.1731064 C6.54377334,18.1731064 7.31721007,17.4023306 7.31721007,16.4544618 L7.31721007,10.5783502 C7.31889972,9.63048145 6.54377334,8.85970561 5.59263572,8.85970561 Z" id="形状" fill="#B2E5FF" fill-rule="nonzero" mask="url(#mask-2)"></path>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg width="22px" height="22px" viewBox="0 0 22 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>矩形备份 8</title>
<defs>
<rect id="path-1" x="0" y="0" width="22" height="22" rx="7.33333333"></rect>
</defs>
<g id="晓得---PC端页面-草稿" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="晓得-PC端---当前对话提问" transform="translate(-1322.000000, -730.000000)">
<g id="对话流" transform="translate(498.000000, 144.000000)">
<g id="编组-10" transform="translate(0.000000, 224.000000)">
<g id="编组-7备份" transform="translate(64.000000, 0.000000)">
<g id="操作按钮" transform="translate(682.000000, 362.000000)">
<g id="复制" transform="translate(78.000000, 0.000000)">
<mask id="mask-2" fill="white">
<use xlink:href="#path-1"></use>
</mask>
<g id="矩形备份-8"></g>
<path d="M13,7 C14.1045695,7 15,7.8954305 15,9 L15,16 C15,17.1045695 14.1045695,18 13,18 L6,18 C4.8954305,18 4,17.1045695 4,16 L4,9 C4,7.8954305 4.8954305,7 6,7 L13,7 Z M12.3429719,13.5 L6.64435739,13.5 C6.46511258,13.499974 6.29396092,13.5868744 6.17203111,13.7398187 C6.05010129,13.8927629 5.98841661,14.0979238 6.00180022,14.306 C6.024057,14.6641818 6.26675176,14.9446777 6.56579034,14.9927168 L6.65702814,15 L12.3556426,15 C12.5348874,15.000026 12.7060391,14.9131256 12.8279689,14.7601813 C12.9498987,14.6072371 13.0115834,14.4020762 12.9981998,14.194 C12.9737173,13.8 12.6825049,13.5 12.3429719,13.5 Z M15,4 C16.6568542,4 18,5.34314575 18,7 L18,13.0007411 C18,14.0547122 17.1844245,14.9181954 16.1499482,14.9945163 L16.0007411,15 L16.0007411,9 C16.0007411,7.34314575 14.6575954,6 13.0007411,6 L7,6 C7,4.8954305 7.8954305,4 9,4 L15,4 Z M12.3429719,9.99999999 L6.64435739,9.99999999 C6.46511258,9.99997397 6.29396092,10.0868744 6.17203111,10.2398187 C6.05010129,10.3927629 5.98841661,10.5979238 6.00180022,10.806 C6.024057,11.1641818 6.26675176,11.4446777 6.56579034,11.4927167 L6.65702814,11.5 L12.3556426,11.5 C12.5348874,11.500026 12.7060391,11.4131256 12.8279689,11.2601813 C12.9498987,11.1072371 13.0115834,10.9020762 12.9981998,10.694 C12.9737173,10.3 12.6825049,9.99999999 12.3429719,9.99999999 Z" id="形状结合" fill="#D1D5DA" fill-rule="nonzero" mask="url(#mask-2)"></path>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg width="22px" height="22px" viewBox="0 0 22 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>矩形备份 8</title>
<defs>
<rect id="path-1" x="0" y="0" width="22" height="22" rx="7.33333333"></rect>
</defs>
<g id="晓得---PC端页面-草稿" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="晓得-PC端---输入框最高限制" transform="translate(-1322.000000, -696.000000)">
<g id="对话流" transform="translate(498.000000, 110.000000)">
<g id="编组-10" transform="translate(0.000000, 224.000000)">
<g id="编组-7备份" transform="translate(64.000000, 0.000000)">
<g id="操作按钮" transform="translate(682.000000, 362.000000)">
<g id="复制" transform="translate(78.000000, 0.000000)">
<mask id="mask-2" fill="white">
<use xlink:href="#path-1"></use>
</mask>
<g id="矩形备份-8"></g>
<path d="M13,7 C14.1045695,7 15,7.8954305 15,9 L15,16 C15,17.1045695 14.1045695,18 13,18 L6,18 C4.8954305,18 4,17.1045695 4,16 L4,9 C4,7.8954305 4.8954305,7 6,7 L13,7 Z M12.3429719,13.5 L6.64435739,13.5 C6.46511258,13.499974 6.29396092,13.5868744 6.17203111,13.7398187 C6.05010129,13.8927629 5.98841661,14.0979238 6.00180022,14.306 C6.024057,14.6641818 6.26675176,14.9446777 6.56579034,14.9927168 L6.65702814,15 L12.3556426,15 C12.5348874,15.000026 12.7060391,14.9131256 12.8279689,14.7601813 C12.9498987,14.6072371 13.0115834,14.4020762 12.9981998,14.194 C12.9737173,13.8 12.6825049,13.5 12.3429719,13.5 Z M15,4 C16.6568542,4 18,5.34314575 18,7 L18,13.0007411 C18,14.0547122 17.1844245,14.9181954 16.1499482,14.9945163 L16.0007411,15 L16.0007411,9 C16.0007411,7.34314575 14.6575954,6 13.0007411,6 L7,6 C7,4.8954305 7.8954305,4 9,4 L15,4 Z M12.3429719,9.99999999 L6.64435739,9.99999999 C6.46511258,9.99997397 6.29396092,10.0868744 6.17203111,10.2398187 C6.05010129,10.3927629 5.98841661,10.5979238 6.00180022,10.806 C6.024057,11.1641818 6.26675176,11.4446777 6.56579034,11.4927167 L6.65702814,11.5 L12.3556426,11.5 C12.5348874,11.500026 12.7060391,11.4131256 12.8279689,11.2601813 C12.9498987,11.1072371 13.0115834,10.9020762 12.9981998,10.694 C12.9737173,10.3 12.6825049,9.99999999 12.3429719,9.99999999 Z" id="形状结合" fill="#B2E5FF" fill-rule="nonzero" mask="url(#mask-2)"></path>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg width="22px" height="22px" viewBox="0 0 22 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>矩形备份 7</title>
<defs>
<rect id="path-1" x="0" y="0" width="22" height="22" rx="7.33333333"></rect>
</defs>
<g id="晓得---PC端页面-草稿" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="晓得-PC端---当前对话提问" transform="translate(-1357.000000, -730.000000)">
<g id="对话流" transform="translate(498.000000, 144.000000)">
<g id="编组-10" transform="translate(0.000000, 224.000000)">
<g id="编组-7备份" transform="translate(64.000000, 0.000000)">
<g id="操作按钮" transform="translate(682.000000, 362.000000)">
<g id="收藏" transform="translate(113.000000, 0.000000)">
<mask id="mask-2" fill="white">
<use xlink:href="#path-1"></use>
</mask>
<g id="矩形备份-7"></g>
<path d="M7,4 L15,4 C16.1045695,4 17,4.8954305 17,6 L17,16.017926 C17,17.1224955 16.1045695,18.017926 15,18.017926 C14.6458907,18.017926 14.2981301,17.9239092 13.9922579,17.7454838 L11,16 L11,16 L8.00774205,17.7454838 C7.05363822,18.3020444 5.82900276,17.9797719 5.2724422,17.0256681 C5.0940168,16.7197959 5,16.3720353 5,16.017926 L5,6 C5,4.8954305 5.8954305,4 7,4 Z" id="星形-2" fill="#D1D5DA" fill-rule="nonzero" mask="url(#mask-2)"></path>
<path d="M11,7.75 C11.4142136,7.75 11.75,8.08578644 11.75,8.5 L11.75,10 L13.25,10 C13.6642136,10 14,10.3357864 14,10.75 C14,11.1642136 13.6642136,11.5 13.25,11.5 L11.75,11.5 L11.75,13 C11.75,13.4142136 11.4142136,13.75 11,13.75 C10.5857864,13.75 10.25,13.4142136 10.25,13 L10.25,11.5 L8.75,11.5 C8.33578644,11.5 8,11.1642136 8,10.75 C8,10.3357864 8.33578644,10 8.75,10 L10.25,10 L10.25,8.5 C10.25,8.08578644 10.5857864,7.75 11,7.75 Z" id="形状结合" fill="#FFFFFF" mask="url(#mask-2)"></path>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg width="22px" height="22px" viewBox="0 0 22 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>矩形备份 7</title>
<defs>
<rect id="path-1" x="0" y="0" width="22" height="22" rx="7.33333333"></rect>
</defs>
<g id="晓得---PC端页面-草稿" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="晓得-PC端---输入框最高限制" transform="translate(-1357.000000, -696.000000)">
<g id="对话流" transform="translate(498.000000, 110.000000)">
<g id="编组-10" transform="translate(0.000000, 224.000000)">
<g id="编组-7备份" transform="translate(64.000000, 0.000000)">
<g id="操作按钮" transform="translate(682.000000, 362.000000)">
<g id="收藏" transform="translate(113.000000, 0.000000)">
<mask id="mask-2" fill="white">
<use xlink:href="#path-1"></use>
</mask>
<g id="矩形备份-7"></g>
<path d="M7,4 L15,4 C16.1045695,4 17,4.8954305 17,6 L17,16.017926 C17,17.1224955 16.1045695,18.017926 15,18.017926 C14.6458907,18.017926 14.2981301,17.9239092 13.9922579,17.7454838 L11,16 L11,16 L8.00774205,17.7454838 C7.05363822,18.3020444 5.82900276,17.9797719 5.2724422,17.0256681 C5.0940168,16.7197959 5,16.3720353 5,16.017926 L5,6 C5,4.8954305 5.8954305,4 7,4 Z" id="星形-2" fill="#B2E5FF" fill-rule="nonzero" mask="url(#mask-2)"></path>
<path d="M11,7.75 C11.4142136,7.75 11.75,8.08578644 11.75,8.5 L11.75,10 L13.25,10 C13.6642136,10 14,10.3357864 14,10.75 C14,11.1642136 13.6642136,11.5 13.25,11.5 L11.75,11.5 L11.75,13 C11.75,13.4142136 11.4142136,13.75 11,13.75 C10.5857864,13.75 10.25,13.4142136 10.25,13 L10.25,11.5 L8.75,11.5 C8.33578644,11.5 8,11.1642136 8,10.75 C8,10.3357864 8.33578644,10 8.75,10 L10.25,10 L10.25,8.5 C10.25,8.08578644 10.5857864,7.75 11,7.75 Z" id="形状结合" fill="#FFFFFF" mask="url(#mask-2)"></path>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg width="22px" height="22px" viewBox="0 0 22 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>矩形备份 7</title>
<defs>
<rect id="path-1" x="0" y="0" width="22" height="22" rx="7.33333333"></rect>
</defs>
<g id="晓得---PC端页面-草稿" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="晓得-PC端---当前对话提问" transform="translate(-1392.000000, -730.000000)">
<g id="对话流" transform="translate(498.000000, 144.000000)">
<g id="编组-10" transform="translate(0.000000, 224.000000)">
<g id="编组-7备份" transform="translate(64.000000, 0.000000)">
<g id="操作按钮" transform="translate(682.000000, 362.000000)">
<g id="重新生成" transform="translate(148.000000, 0.000000)">
<mask id="mask-2" fill="white">
<use xlink:href="#path-1"></use>
</mask>
<g id="矩形备份-7"></g>
<path d="M17.8228521,9.5 C18.9963941,15.2080307 14.0687747,17.198853 11.0061675,17.198853 L11.0061675,18.1870087 L11.0061675,18.1870087 C11.0061675,18.7392934 10.5584523,19.1870087 10.0061675,19.1870087 C9.81735588,19.1870087 9.63240197,19.1335546 9.47270106,19.0328299 L5.31700621,16.4117985 C4.84987205,16.1171731 4.71002608,15.499645 5.00465149,15.0325108 C5.08123263,14.91109 5.18305831,14.8075805 5.30320693,14.7290184 L9.45890178,12.0117171 C9.92114141,11.7094705 10.5408799,11.8391705 10.8431264,12.3014102 C10.9495101,12.4641077 11.0061675,12.6542846 11.0061675,12.8486759 L11.0061675,13.8374876 C14.7550171,14.0175008 17.0272453,12.5716716 17.8228521,9.5 Z M11.9938325,2.81299131 C12.1826441,2.81299131 12.367598,2.86644541 12.5272989,2.9671701 L16.6829938,5.58820151 C17.1501279,5.88282691 17.2899739,6.50035505 16.9953485,6.9674892 C16.9187674,7.08891004 16.8169417,7.19241953 16.6967931,7.2709816 L12.5410982,9.98828295 C12.0788586,10.2905295 11.4591201,10.1608295 11.1568736,9.69858982 C11.0504899,9.5358923 10.9938325,9.34571535 10.9938325,9.15132406 L10.9938325,8.16251237 C7.2449829,7.98249917 4.9727547,9.42832838 4.17714785,12.5 C3.00360594,6.79196935 7.93122535,4.80114698 10.9938325,4.80114698 L10.9938325,3.81299131 L10.9938325,3.81299131 C10.9938325,3.26070656 11.4415477,2.81299131 11.9938325,2.81299131 Z" id="形状结合" fill="#D1D5DA" mask="url(#mask-2)"></path>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg width="22px" height="22px" viewBox="0 0 22 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>矩形备份 7</title>
<defs>
<path d="M20,0 L852,0 C863.045695,-2.02906125e-15 872,8.954305 872,20 L872,384 C872,395.045695 863.045695,404 852,404 L20,404 C8.954305,404 1.3527075e-15,395.045695 0,384 L0,20 C-1.3527075e-15,8.954305 8.954305,2.02906125e-15 20,0 Z" id="path-1"></path>
<rect id="path-3" x="0" y="0" width="22" height="22" rx="7.33333333"></rect>
</defs>
<g id="晓得---PC端页面-草稿" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="晓得-PC端---输入框最高限制" transform="translate(-1392.000000, -696.000000)">
<rect fill="#E6F6FE" x="0" y="0" width="1920" height="1080"></rect>
<g id="对话流" transform="translate(498.000000, 110.000000)">
<g id="编组-10" transform="translate(0.000000, 224.000000)">
<g id="编组-7备份" transform="translate(64.000000, 0.000000)">
<mask id="mask-2" fill="white">
<use xlink:href="#path-1"></use>
</mask>
<use id="矩形" fill="#FFFFFF" xlink:href="#path-1"></use>
<g id="操作按钮" mask="url(#mask-2)">
<g transform="translate(682.000000, 362.000000)" id="重新生成">
<g transform="translate(148.000000, 0.000000)">
<mask id="mask-4" fill="white">
<use xlink:href="#path-3"></use>
</mask>
<g id="矩形备份-7"></g>
<path d="M17.8228521,9.5 C18.9963941,15.2080307 14.0687747,17.198853 11.0061675,17.198853 L11.0061675,18.1870087 L11.0061675,18.1870087 C11.0061675,18.7392934 10.5584523,19.1870087 10.0061675,19.1870087 C9.81735588,19.1870087 9.63240197,19.1335546 9.47270106,19.0328299 L5.31700621,16.4117985 C4.84987205,16.1171731 4.71002608,15.499645 5.00465149,15.0325108 C5.08123263,14.91109 5.18305831,14.8075805 5.30320693,14.7290184 L9.45890178,12.0117171 C9.92114141,11.7094705 10.5408799,11.8391705 10.8431264,12.3014102 C10.9495101,12.4641077 11.0061675,12.6542846 11.0061675,12.8486759 L11.0061675,13.8374876 C14.7550171,14.0175008 17.0272453,12.5716716 17.8228521,9.5 Z M11.9938325,2.81299131 C12.1826441,2.81299131 12.367598,2.86644541 12.5272989,2.9671701 L16.6829938,5.58820151 C17.1501279,5.88282691 17.2899739,6.50035505 16.9953485,6.9674892 C16.9187674,7.08891004 16.8169417,7.19241953 16.6967931,7.2709816 L12.5410982,9.98828295 C12.0788586,10.2905295 11.4591201,10.1608295 11.1568736,9.69858982 C11.0504899,9.5358923 10.9938325,9.34571535 10.9938325,9.15132406 L10.9938325,8.16251237 C7.2449829,7.98249917 4.9727547,9.42832838 4.17714785,12.5 C3.00360594,6.79196935 7.93122535,4.80114698 10.9938325,4.80114698 L10.9938325,3.81299131 L10.9938325,3.81299131 C10.9938325,3.26070656 11.4415477,2.81299131 11.9938325,2.81299131 Z" id="形状结合" fill="#B2E5FF" mask="url(#mask-4)"></path>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg width="22px" height="22px" viewBox="0 0 22 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>矩形备份</title>
<defs>
<rect id="path-1" x="0" y="0" width="22" height="22" rx="7.33333333"></rect>
</defs>
<g id="晓得---PC端页面-草稿" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="晓得-PC端---当前对话提问" transform="translate(-1244.000000, -730.000000)">
<g id="对话流" transform="translate(498.000000, 144.000000)">
<g id="编组-10" transform="translate(0.000000, 224.000000)">
<g id="编组-7备份" transform="translate(64.000000, 0.000000)">
<g id="点赞" transform="translate(682.000000, 362.000000)">
<mask id="mask-2" fill="white">
<use xlink:href="#path-1"></use>
</mask>
<g id="矩形备份"></g>
<path d="M17.9861958,9.41122355 C17.4920104,8.81248083 16.6847281,8.81248083 16.4190189,8.81248083 L14.2899599,8.81248083 C14.4625863,7.88147807 14.6098265,6.79868139 14.2933448,5.65685373 C14.0767156,4.8708985 13.6789979,4.31263416 13.0748055,3.95170193 C12.7583237,3.76280282 12.4299951,3.66666667 12.0965892,3.66666667 C11.2199179,3.66666667 10.5632606,4.31432076 10.4651005,5.2807421 C10.4278673,5.64167433 10.394019,5.98405397 10.3077058,6.27752223 C9.98614684,7.35525912 9.20086596,8.17831953 8.47481963,8.83777982 C8.20403312,9.08065011 7.91463004,9.5157927 7.91124521,10.0049065 C7.90109072,11.3137075 7.8993983,12.6275682 7.8993983,13.9701012 L7.89768589,16.3549525 C7.89432105,17.1527139 8.32080981,17.7953082 9.0316244,18.0702239 C9.40734068,18.2220178 9.80505836,18.3063477 10.2180078,18.3181539 C10.8746651,18.3265869 11.5347072,18.3265869 12.1524389,18.3265869 L13.1154234,18.3265869 C13.7450021,18.3265869 14.3745807,18.3265869 15.0075442,18.3333333 L15.0278532,18.3333333 C15.764054,18.3333333 16.3428602,17.9673413 16.6170315,17.3298068 L16.6982675,17.1425943 C16.8895104,16.7040785 17.0858307,16.2503833 17.2076846,15.7460902 C17.580016,14.2129715 17.9675792,12.5719105 18.2806761,10.9595216 C18.4059149,10.3203005 18.3077548,9.79914137 17.9861958,9.41122355 Z M5.59263572,8.85970561 L5.39123825,8.85970561 C4.44010064,8.85970561 3.66666667,9.63048145 3.66666667,10.5783502 L3.66666667,16.4544618 C3.66666667,17.4023306 4.44010064,18.1731064 5.39123825,18.1731064 L5.59263572,18.1731064 C6.54377334,18.1731064 7.31721007,17.4023306 7.31721007,16.4544618 L7.31721007,10.5783502 C7.31889972,9.63048145 6.54377334,8.85970561 5.59263572,8.85970561 Z" id="形状" fill="#D1D5DA" fill-rule="nonzero" mask="url(#mask-2)"></path>
</g>
</g>
</g>
</g>
</g>
</g>
</svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg width="22px" height="22px" viewBox="0 0 22 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>矩形备份</title>
<defs>
<rect id="path-1" x="0" y="0" width="22" height="22" rx="7.33333333"></rect>
</defs>
<g id="晓得---PC端页面-草稿" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="晓得-PC端---输入框最高限制" transform="translate(-1244.000000, -696.000000)">
<g id="对话流" transform="translate(498.000000, 110.000000)">
<g id="编组-10" transform="translate(0.000000, 224.000000)">
<g id="编组-7备份" transform="translate(64.000000, 0.000000)">
<g id="点赞" transform="translate(682.000000, 362.000000)">
<mask id="mask-2" fill="white">
<use xlink:href="#path-1"></use>
</mask>
<g id="矩形备份"></g>
<path d="M17.9861958,9.41122355 C17.4920104,8.81248083 16.6847281,8.81248083 16.4190189,8.81248083 L14.2899599,8.81248083 C14.4625863,7.88147807 14.6098265,6.79868139 14.2933448,5.65685373 C14.0767156,4.8708985 13.6789979,4.31263416 13.0748055,3.95170193 C12.7583237,3.76280282 12.4299951,3.66666667 12.0965892,3.66666667 C11.2199179,3.66666667 10.5632606,4.31432076 10.4651005,5.2807421 C10.4278673,5.64167433 10.394019,5.98405397 10.3077058,6.27752223 C9.98614684,7.35525912 9.20086596,8.17831953 8.47481963,8.83777982 C8.20403312,9.08065011 7.91463004,9.5157927 7.91124521,10.0049065 C7.90109072,11.3137075 7.8993983,12.6275682 7.8993983,13.9701012 L7.89768589,16.3549525 C7.89432105,17.1527139 8.32080981,17.7953082 9.0316244,18.0702239 C9.40734068,18.2220178 9.80505836,18.3063477 10.2180078,18.3181539 C10.8746651,18.3265869 11.5347072,18.3265869 12.1524389,18.3265869 L13.1154234,18.3265869 C13.7450021,18.3265869 14.3745807,18.3265869 15.0075442,18.3333333 L15.0278532,18.3333333 C15.764054,18.3333333 16.3428602,17.9673413 16.6170315,17.3298068 L16.6982675,17.1425943 C16.8895104,16.7040785 17.0858307,16.2503833 17.2076846,15.7460902 C17.580016,14.2129715 17.9675792,12.5719105 18.2806761,10.9595216 C18.4059149,10.3203005 18.3077548,9.79914137 17.9861958,9.41122355 Z M5.59263572,8.85970561 L5.39123825,8.85970561 C4.44010064,8.85970561 3.66666667,9.63048145 3.66666667,10.5783502 L3.66666667,16.4544618 C3.66666667,17.4023306 4.44010064,18.1731064 5.39123825,18.1731064 L5.59263572,18.1731064 C6.54377334,18.1731064 7.31721007,17.4023306 7.31721007,16.4544618 L7.31721007,10.5783502 C7.31889972,9.63048145 6.54377334,8.85970561 5.59263572,8.85970561 Z" id="形状" fill="#B2E5FF" fill-rule="nonzero" mask="url(#mask-2)"></path>
</g>
</g>
</g>
</g>
</g>
</g>
</svg>
\ No newline at end of file
import React from 'react'
import { Button, Checkbox, Link, Modal, ModalBody, ModalContent, ModalFooter, ModalHeader } from '@nextui-org/react'
import { useAuth } from '@/auth/AuthContext'
import type { Answer } from '@/types/chat'
interface LoginModalProps {
isOpen: boolean
answer: Answer
onClose: () => void
}
......
import { Button, Modal, ModalBody, ModalContent, ModalFooter, ModalHeader, Textarea } from '@nextui-org/react'
import { useEffect, useState } from 'react'
import { fetchGetFeedbackConfig, fetchSubmitFeedback } from '@/api/chat'
import type { Answer } from '@/types/chat'
interface UnLikeModalProps {
isOpen: boolean
onClose: (isSubmit?: boolean) => void
answer: Answer
}
export const UnLikeModal: React.FC<UnLikeModalProps> = ({ isOpen, onClose, answer }) => {
const [feedbackConfig, setFeedbackConfig] = useState<any>()
const [answerValue, setAnswerValue] = useState('')
const getConfig = async () => {
const res = await fetchGetFeedbackConfig()
if (res.ok) {
setFeedbackConfig(JSON.parse(res.data.content))
}
}
const handleClick = (item: any, index: number) => {
const _data = JSON.parse(JSON.stringify(feedbackConfig))
item.answerValue = item.answerValue === '1' ? '0' : '1'
_data.questionList[0].answerList[index] = item
setFeedbackConfig(_data)
}
const onSubmit = async () => {
const content = JSON.parse(JSON.stringify(feedbackConfig))
content.questionList[1].answerValue = answerValue
const params = {
recordId: answer.recordId,
feedbackStatus: '02',
content: JSON.stringify(content),
}
const res = await fetchSubmitFeedback(params)
if (res) {
onClose(true)
}
}
useEffect(() => {
if (isOpen) {
getConfig()
}
// getConfig()
}, [isOpen])
return (
<Modal backdrop="blur" size="2xl" isOpen={isOpen} onClose={onClose}>
<ModalContent>
{onClose => (
<>
<ModalHeader className="flex flex-col gap-1">你的反馈将帮助 晓得 优化进步</ModalHeader>
<ModalBody className="text-[#27353C]">
<div className="flex flex-wrap gap-[6px]">
{feedbackConfig && feedbackConfig.questionList[0].answerList.map((item: any, index: number) => (
// <div className="w-1/2" key={item.answerCode}>{item.answerName}</div>
<Button
key={item.answerCode}
color="primary"
variant="light"
className={`bg-[#F8F8F8] text-left text-[#333] rounded-[23px] data-[hover=true]:bg-[#E5F6FF] data-[hover=true]:text-primary ${item.answerValue === '1' ? 'bg-[#E5F6FF] text-primary' : ''}`}
onClick={() => handleClick(item, index)}
>
<div className="w-full text-nowrap text-ellipsis overflow-hidden">
<span>{item.answerName}</span>
</div>
</Button>
))}
<Textarea
value={answerValue}
onValueChange={setAnswerValue}
label="留下更多反馈"
placeholder=""
className="w-full mt-[10px]"
/>
</div>
</ModalBody>
<ModalFooter>
<Button onPress={onClose}>
取消
</Button>
<Button onClick={onSubmit} color="primary">
提交
</Button>
</ModalFooter>
</>
)}
</ModalContent>
</Modal>
)
}
......@@ -139,7 +139,7 @@ export const Chat: React.FC = () => {
duration: 0.3,
opacity: { duration: 0.1 },
}}
className={styles.scrollable}
className={`${styles.scrollable} scrollbar-hide`}
>
<div className={styles.inter}>
{allItems.map((record, index) => (
......
import { Button, Tooltip } from '@nextui-org/react'
import { useState } from 'react'
import { useDebounceFn } from 'ahooks'
import type { Answer } from '@/types/chat'
import LikeIcon from '@/assets/svg/zan.svg?react'
import UnLikeIcon from '@/assets/svg/cai.svg?react'
import CopyIcon from '@/assets/svg/copy.svg?react'
import CollectIcon from '@/assets/svg/shouc.svg?react'
import ReloadIcon from '@/assets/svg/sx.svg?react'
import LikeIconA from '@/assets/svg/zanA.svg?react'
import UnLikeIconA from '@/assets/svg/caiA.svg?react'
import CollectIconA from '@/assets/svg/shoucA.svg?react'
import useToast from '@/hooks/useToast'
import { fetchCancelCollection, fetchSubmitCollection, fetchSubmitFeedback } from '@/api/chat'
import { UnLikeModal } from '@/components/UnLikeModal'
interface ChatAnswerOperateProps {
answer: Answer
}
export const ChatAnswerOperate: React.FC<ChatAnswerOperateProps> = ({ answer }) => {
const showToast = useToast()
const [isCollect, setIsCollect] = useState(answer.collectionFlag)
const [isLike, setIsLike] = useState(answer.feedbackStatus === '01')
const [isUnLike, setIsUnLike] = useState(answer.feedbackStatus === '02')
const [isOpenUnLikeModal, setIsOpenUnLikeOpen] = useState(false)
const handleCopy = async () => {
if (!navigator.clipboard) {
showToast('您的浏览器不支持复制', 'error')
return
}
await navigator.clipboard.writeText(answer.answer)
showToast('复制成功!快去分享吧!', 'success')
}
const handleCollect = useDebounceFn(async () => {
if (!isCollect) {
setIsCollect(true)
const res = await fetchSubmitCollection(answer.recordId || '')
if (res.ok) {
showToast('收藏成功!', 'success')
}
}
else {
setIsCollect(false)
await fetchCancelCollection(answer.recordId || '')
}
}, { wait: 200 })
const handleLike = useDebounceFn(async () => {
if (!isLike) {
setIsLike(true)
setIsUnLike(false)
await fetchSubmitFeedback({
recordId: answer.recordId,
feedbackStatus: '01',
content: '',
})
showToast('感谢您的反馈', 'success', {
icon: '🙏🏻',
})
}
else {
setIsLike(false)
await fetchSubmitFeedback({
recordId: answer.recordId,
feedbackStatus: '00',
content: '',
})
}
})
const handleUnLike = async () => {
if (!isUnLike) {
setIsOpenUnLikeOpen(true)
}
else {
setIsUnLike(false)
await fetchSubmitFeedback({
recordId: answer.recordId,
feedbackStatus: '00',
content: '',
})
}
}
const handleClose = (isSubmit?: boolean) => {
setIsOpenUnLikeOpen(false)
if (isSubmit) {
setIsLike(false)
setIsUnLike(true)
showToast('感谢您的反馈', 'success', {
icon: '🙏🏻',
})
}
}
return (
<div className="mt-[12px] flex gap-[4px] justify-end">
{/* 点赞 */}
<Tooltip color="foreground" content={isLike ? '取消点赞' : '点赞'} className="capitalize">
<Button variant="light" isIconOnly aria-label="LikeIcon" onClick={handleLike.run}>
{isLike ? <LikeIconA /> : <LikeIcon />}
</Button>
</Tooltip>
{/* 点踩 */}
<Tooltip color="foreground" content={isUnLike ? '取消点踩' : '点踩'} className="capitalize">
<Button variant="light" isIconOnly aria-label="UnLikeIcon" onClick={handleUnLike}>
{isUnLike ? <UnLikeIconA /> : <UnLikeIcon />}
</Button>
</Tooltip>
{/* 复制 */}
<Tooltip color="foreground" content="复制" className="capitalize">
<Button variant="light" isIconOnly aria-label="CopyIcon" onClick={handleCopy}><CopyIcon /></Button>
</Tooltip>
{/* 收藏 */}
<Tooltip color="foreground" content={isCollect ? '取消收藏' : '收藏'} className="capitalize">
<Button variant="light" isIconOnly aria-label="CollectIcon" onClick={handleCollect.run}>
{isCollect ? <CollectIconA /> : <CollectIcon />}
</Button>
</Tooltip>
{/* 重新生成 */}
<Tooltip color="foreground" content="重新生成" className="capitalize">
<Button variant="light" isIconOnly aria-label="ReloadIcon"><ReloadIcon /></Button>
</Tooltip>
<UnLikeModal answer={answer} isOpen={isOpenUnLikeModal} onClose={handleClose} />
</div>
)
}
......@@ -4,6 +4,7 @@ import rehypeRaw from 'rehype-raw'
import rehypeSanitize from 'rehype-sanitize'
import remarkGfm from 'remark-gfm'
import { ChatAnswerAttachment } from './ChatAnswerAttchment'
import { ChatAnswerOperate } from './ChatAnswerOperate'
import type { Answer } from '@/types/chat'
interface ChatAnswerParserProps {
......@@ -21,7 +22,7 @@ export const ChatAnswerParser: React.FC<ChatAnswerParserProps> = ({ answer }) =>
const timer = setTimeout(() => {
setDisplayedText(answer.answer.slice(0, currentIndex + 1))
setCurrentIndex(prevIndex => prevIndex + 1)
}, 30) // 调整此值以改变打字速度
}, 10) // 调整此值以改变打字速度
return () => clearTimeout(timer)
}
......@@ -39,7 +40,8 @@ export const ChatAnswerParser: React.FC<ChatAnswerParserProps> = ({ answer }) =>
>
{displayedText}
</ReactMarkdown>
{!isTyping && <ChatAnswerAttachment answer={answer} />}
{!isTyping && answer.attachmentList?.length !== 0 && <ChatAnswerAttachment answer={answer} />}
{!isTyping && <ChatAnswerOperate answer={answer} />}
</div>
)
}
......@@ -4,6 +4,7 @@ import rehypeSanitize from 'rehype-sanitize'
import remarkGfm from 'remark-gfm'
import { formatMarkdown } from './markdownFormatter'
import { ChatAnswerAttachment } from './ChatAnswerAttchment'
import { ChatAnswerOperate } from './ChatAnswerOperate'
import type { Answer } from '@/types/chat'
interface ChatAnswerShowerProps {
......@@ -21,7 +22,8 @@ export const ChatAnswerShower: React.FC<ChatAnswerShowerProps> = ({ answer }) =>
{formatMarkdown(answer.answer || '')}
</ReactMarkdown>
<ChatAnswerAttachment answer={answer} />
{answer.attachmentList?.length !== 0 && <ChatAnswerAttachment answer={answer} />}
<ChatAnswerOperate answer={answer} />
</div>
)
}
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