src/assets/images/add.svg | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/assets/images/addbg.svg | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/assets/images/agent.svg | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/assets/images/agentbg.svg | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/assets/images/history.svg | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/assets/images/history1.svg | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/assets/images/history2.svg | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/assets/images/historybg.svg | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/assets/images/talk.svg | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/assets/images/talkbg.svg | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/sessionManager/components/chatMenu.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/sessionManager/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/sessionManager/index2.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/sessionManager/style/layout.css | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/assets/images/add.svg
New file @@ -0,0 +1 @@ <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1723700302380" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5140" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M153.6 102.4a51.2 51.2 0 0 0-51.2 51.2v544a51.2 51.2 0 0 0 51.2 51.2h99.214222a51.2 51.2 0 0 1 51.2 51.2v89.969778l271.473778-135.736889c7.111111-3.555556 14.933333-5.404444 22.897778-5.432889H870.4a51.2 51.2 0 0 0 51.2-51.2V512a51.2 51.2 0 1 1 102.4 0v185.6a153.6 153.6 0 0 1-153.6 153.6h-259.896889L275.655111 1018.624a51.2 51.2 0 0 1-74.040889-45.795556v-121.628444H153.6a153.6 153.6 0 0 1-153.6-153.6V153.6A153.6 153.6 0 0 1 153.6 0h300.8a51.2 51.2 0 0 1 0 102.4H153.6zM771.214222 0a51.2 51.2 0 0 1 51.2 51.2v121.6h121.6a51.2 51.2 0 0 1 0 102.4h-121.6v121.6a51.2 51.2 0 1 1-102.4 0V275.2h-121.6a51.2 51.2 0 0 1 0-102.4h121.571556V51.2a51.2 51.2 0 0 1 51.2-51.2h0.028444z" fill="#000000" p-id="5141"></path></svg> src/assets/images/addbg.svg
New file @@ -0,0 +1 @@ <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1723701373447" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5573" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M153.599886 102.399924a51.199962 51.199962 0 0 0-51.199962 51.199962v543.999596a51.199962 51.199962 0 0 0 51.199962 51.199962h99.213926a51.199962 51.199962 0 0 1 51.199962 51.199962v89.969933l271.473799-135.736899a51.552962 51.552962 0 0 1 22.897983-5.432996H870.399354a51.199962 51.199962 0 0 0 51.199962-51.199962V511.99962a51.199962 51.199962 0 1 1 102.399924 0v185.599862a153.599886 153.599886 0 0 1-153.599886 153.599886H610.502547l-334.847752 167.423876a51.199962 51.199962 0 0 1-74.039945-45.795966V851.199368H153.599886A153.599886 153.599886 0 0 1 0 697.599482v-543.999596A153.599886 153.599886 0 0 1 153.599886 0h300.799777a51.199962 51.199962 0 0 1 0 102.399924H153.599886zM771.213428 0a51.199962 51.199962 0 0 1 51.199962 51.199962v121.59991h121.599909a51.199962 51.199962 0 0 1 0 102.399924h-121.599909v121.59991a51.199962 51.199962 0 1 1-102.399924 0V275.199796h-121.59991a51.199962 51.199962 0 0 1 0-102.399924h121.57191V51.199962a51.199962 51.199962 0 0 1 51.199962-51.199962h0.028z" p-id="5574" fill="#707070"></path></svg> src/assets/images/agent.svg
New file @@ -0,0 +1 @@ <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1723702163522" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="13119" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24"><path d="M897.1264 510.5152c3.9936-5.12 7.7824-10.3936 11.4688-15.5648 65.28-91.9552 81.408-176.896 45.5168-239.36-35.9424-62.464-117.6064-91.0336-229.888-80.7424-6.5024 0.5632-13.056 1.3824-19.6608 2.2016-2.56-6.144-5.2736-12.288-7.8848-18.176C649.6768 56.32 584.0384 0 511.9488 0 439.9104 0 374.3744 56.6272 327.3728 158.976c-2.7136 5.8368-5.2224 11.8784-7.8848 17.92-6.5024-0.768-13.0048-1.536-19.456-2.1504-112.128-10.496-193.9456 18.0736-229.888 80.5376-35.9936 62.464-19.8656 147.4048 45.312 239.36 3.6864 5.12 7.5776 10.3936 11.4688 15.5136-3.9936 5.12-7.7824 10.4448-11.4688 15.5648-65.28 91.9552-81.5104 176.9472-45.5168 239.36C101.0688 819.2 166.5024 847.872 256.256 847.872c13.9264 0 28.4672-0.6656 43.4688-2.048 6.5024-0.5632 13.0048-1.3824 19.6608-2.1504 2.56 6.144 5.2736 12.2368 7.8848 18.176 47.0016 102.4512 112.64 158.8224 184.6784 158.8224 72.0896 0 137.5744-56.32 184.7296-158.8224 2.7136-5.8368 5.2224-11.9296 7.8848-17.92a490.3936 490.3936 0 0 0 63.3344 4.352c89.6512-0.0512 154.88-28.7744 186.0608-82.6368 36.0448-62.464 19.968-147.4048-45.2608-239.36a505.7536 505.7536 0 0 0-11.5712-15.7696z m-603.3408 270.336c-84.1728 7.7824-145.2544-9.8304-167.424-48.3328-22.2208-38.5536-6.8608-100.1984 42.1888-169.0624l1.6896-2.4064a850.176 850.176 0 0 0 99.1744 89.344c6.144 45.9776 15.5648 89.6 27.648 130.1504l-3.2768 0.3072z m-32.512-221.8496a738.816 738.816 0 0 1-49.408-48.6912c15.104-16.4864 31.5904-32.768 49.408-48.7424-0.6656 16.128-1.1264 32.3584-1.1264 48.8448 0 16.2304 0.4608 32.4608 1.1264 48.64z m8.2432-188.8256c-36.864 28.3648-70.144 58.4704-99.1744 89.2416-0.512-0.8192-1.2288-1.6384-1.6896-2.4064-48.9472-69.12-64.256-130.7136-42.0864-169.1648 18.7392-32.4608 65.024-50.0736 129.536-50.0736a398.5408 398.5408 0 0 1 41.1136 2.1504 850.432 850.432 0 0 0-27.6992 130.2528z m409.7536-52.8384a1029.888 1029.888 0 0 0-83.8144-48.384c22.528-7.2704 44.6976-13.312 66.304-18.176 6.656 20.8384 12.4928 43.008 17.5104 66.56z m-167.168-252.0576c44.1344 0 90.7776 45.6704 126.464 124.1088-41.0624 9.728-83.456 23.4496-126.2592 40.96a850.9952 850.9952 0 0 0-126.464-41.216c35.4304-78.336 82.0736-123.8528 126.2592-123.8528zM362.2912 250.5728c21.7088 4.8128 43.8784 10.8544 66.56 18.2784a1114.2656 1114.2656 0 0 0-84.0704 48.384c5.0176-23.552 10.8544-45.8752 17.5104-66.6624z m-17.5104 452.7616a1029.888 1029.888 0 0 0 83.8144 48.384c-22.528 7.3216-44.6976 13.3632-66.304 18.176-6.656-20.6848-12.4928-43.008-17.5104-66.56z m167.3216 252.16c-44.1856 0-90.8288-45.6192-126.464-124.0576 41.0112-9.728 83.456-23.4496 126.208-40.96 42.9056 17.6128 85.4528 31.4368 126.464 41.1648-35.5328 78.2336-82.176 123.904-126.208 123.904z m149.6576-185.344a692.6848 692.6848 0 0 1-66.56-18.3296 1114.2656 1114.2656 0 0 0 84.0704-48.384c-5.0176 23.552-10.8544 45.8752-17.5104 66.6624z m31.488-154.9824c-27.5968 19.968-57.088 39.1168-88.064 56.9344-30.8736 17.8688-62.208 33.6384-93.3376 47.4624a995.4304 995.4304 0 0 1-181.0432-104.6528 985.6 985.6 0 0 1-5.4784-104.6016c0-36.608 1.9456-71.6288 5.4784-104.7552 27.5968-20.0192 57.088-39.1168 88.064-56.9856a995.7376 995.7376 0 0 1 93.3376-47.4624 995.4304 995.4304 0 0 1 181.0432 104.6528c3.5328 33.1776 5.4784 68.1472 5.4784 104.6528 0 36.608-1.9456 71.4752-5.4784 104.7552z m37.0176-375.3472c13.056-1.28 25.6-1.8432 37.5296-1.8432 64.7168 0 111.1552 17.6128 129.8944 50.176 22.2208 38.6048 6.8608 100.1984-42.1888 169.0624l-1.6896 2.4064a850.176 850.176 0 0 0-99.1744-89.2928 848.896 848.896 0 0 0-27.648-130.1504l3.2768-0.3584z m32.512 221.952c17.7152 16.0256 34.304 32.256 49.408 48.7424-15.104 16.4864-31.5904 32.7168-49.408 48.7424 0.6656-16.128 1.1264-32.4096 1.1264-48.8448 0-16.384-0.3584-32.6144-1.1264-48.64z m134.7072 271.1552c-22.1696 38.5536-83.2512 56.064-167.424 48.128l-3.2256-0.3072c12.1344-40.448 21.504-84.1728 27.648-130.1504 36.864-28.3648 70.144-58.4192 99.2256-89.1904 0.512 0.8192 1.2288 1.5872 1.6896 2.4064 49.0496 68.9664 64.256 130.56 42.0864 169.1136z" fill="#707070" p-id="13120"></path></svg> src/assets/images/agentbg.svg
New file @@ -0,0 +1 @@ <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1723702163522" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="13119" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24"><path d="M897.1264 510.5152c3.9936-5.12 7.7824-10.3936 11.4688-15.5648 65.28-91.9552 81.408-176.896 45.5168-239.36-35.9424-62.464-117.6064-91.0336-229.888-80.7424-6.5024 0.5632-13.056 1.3824-19.6608 2.2016-2.56-6.144-5.2736-12.288-7.8848-18.176C649.6768 56.32 584.0384 0 511.9488 0 439.9104 0 374.3744 56.6272 327.3728 158.976c-2.7136 5.8368-5.2224 11.8784-7.8848 17.92-6.5024-0.768-13.0048-1.536-19.456-2.1504-112.128-10.496-193.9456 18.0736-229.888 80.5376-35.9936 62.464-19.8656 147.4048 45.312 239.36 3.6864 5.12 7.5776 10.3936 11.4688 15.5136-3.9936 5.12-7.7824 10.4448-11.4688 15.5648-65.28 91.9552-81.5104 176.9472-45.5168 239.36C101.0688 819.2 166.5024 847.872 256.256 847.872c13.9264 0 28.4672-0.6656 43.4688-2.048 6.5024-0.5632 13.0048-1.3824 19.6608-2.1504 2.56 6.144 5.2736 12.2368 7.8848 18.176 47.0016 102.4512 112.64 158.8224 184.6784 158.8224 72.0896 0 137.5744-56.32 184.7296-158.8224 2.7136-5.8368 5.2224-11.9296 7.8848-17.92a490.3936 490.3936 0 0 0 63.3344 4.352c89.6512-0.0512 154.88-28.7744 186.0608-82.6368 36.0448-62.464 19.968-147.4048-45.2608-239.36a505.7536 505.7536 0 0 0-11.5712-15.7696z m-603.3408 270.336c-84.1728 7.7824-145.2544-9.8304-167.424-48.3328-22.2208-38.5536-6.8608-100.1984 42.1888-169.0624l1.6896-2.4064a850.176 850.176 0 0 0 99.1744 89.344c6.144 45.9776 15.5648 89.6 27.648 130.1504l-3.2768 0.3072z m-32.512-221.8496a738.816 738.816 0 0 1-49.408-48.6912c15.104-16.4864 31.5904-32.768 49.408-48.7424-0.6656 16.128-1.1264 32.3584-1.1264 48.8448 0 16.2304 0.4608 32.4608 1.1264 48.64z m8.2432-188.8256c-36.864 28.3648-70.144 58.4704-99.1744 89.2416-0.512-0.8192-1.2288-1.6384-1.6896-2.4064-48.9472-69.12-64.256-130.7136-42.0864-169.1648 18.7392-32.4608 65.024-50.0736 129.536-50.0736a398.5408 398.5408 0 0 1 41.1136 2.1504 850.432 850.432 0 0 0-27.6992 130.2528z m409.7536-52.8384a1029.888 1029.888 0 0 0-83.8144-48.384c22.528-7.2704 44.6976-13.312 66.304-18.176 6.656 20.8384 12.4928 43.008 17.5104 66.56z m-167.168-252.0576c44.1344 0 90.7776 45.6704 126.464 124.1088-41.0624 9.728-83.456 23.4496-126.2592 40.96a850.9952 850.9952 0 0 0-126.464-41.216c35.4304-78.336 82.0736-123.8528 126.2592-123.8528zM362.2912 250.5728c21.7088 4.8128 43.8784 10.8544 66.56 18.2784a1114.2656 1114.2656 0 0 0-84.0704 48.384c5.0176-23.552 10.8544-45.8752 17.5104-66.6624z m-17.5104 452.7616a1029.888 1029.888 0 0 0 83.8144 48.384c-22.528 7.3216-44.6976 13.3632-66.304 18.176-6.656-20.6848-12.4928-43.008-17.5104-66.56z m167.3216 252.16c-44.1856 0-90.8288-45.6192-126.464-124.0576 41.0112-9.728 83.456-23.4496 126.208-40.96 42.9056 17.6128 85.4528 31.4368 126.464 41.1648-35.5328 78.2336-82.176 123.904-126.208 123.904z m149.6576-185.344a692.6848 692.6848 0 0 1-66.56-18.3296 1114.2656 1114.2656 0 0 0 84.0704-48.384c-5.0176 23.552-10.8544 45.8752-17.5104 66.6624z m31.488-154.9824c-27.5968 19.968-57.088 39.1168-88.064 56.9344-30.8736 17.8688-62.208 33.6384-93.3376 47.4624a995.4304 995.4304 0 0 1-181.0432-104.6528 985.6 985.6 0 0 1-5.4784-104.6016c0-36.608 1.9456-71.6288 5.4784-104.7552 27.5968-20.0192 57.088-39.1168 88.064-56.9856a995.7376 995.7376 0 0 1 93.3376-47.4624 995.4304 995.4304 0 0 1 181.0432 104.6528c3.5328 33.1776 5.4784 68.1472 5.4784 104.6528 0 36.608-1.9456 71.4752-5.4784 104.7552z m37.0176-375.3472c13.056-1.28 25.6-1.8432 37.5296-1.8432 64.7168 0 111.1552 17.6128 129.8944 50.176 22.2208 38.6048 6.8608 100.1984-42.1888 169.0624l-1.6896 2.4064a850.176 850.176 0 0 0-99.1744-89.2928 848.896 848.896 0 0 0-27.648-130.1504l3.2768-0.3584z m32.512 221.952c17.7152 16.0256 34.304 32.256 49.408 48.7424-15.104 16.4864-31.5904 32.7168-49.408 48.7424 0.6656-16.128 1.1264-32.4096 1.1264-48.8448 0-16.384-0.3584-32.6144-1.1264-48.64z m134.7072 271.1552c-22.1696 38.5536-83.2512 56.064-167.424 48.128l-3.2256-0.3072c12.1344-40.448 21.504-84.1728 27.648-130.1504 36.864-28.3648 70.144-58.4192 99.2256-89.1904 0.512 0.8192 1.2288 1.5872 1.6896 2.4064 49.0496 68.9664 64.256 130.56 42.0864 169.1136z" fill="#2c2c2c" p-id="13120"></path></svg> src/assets/images/history.svg
New file @@ -0,0 +1 @@ <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1723701570374" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7581" width="24" height="24" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M798.5152 707.9936v-77.0048c0-12.288-9.8304-22.7328-22.1184-22.7328-13.9264 0-24.1664 11.4688-24.1664 25.3952V739.328c0 8.192 6.7584 14.9504 14.9504 14.9504h83.5584c13.1072 0 24.1664-10.6496 23.7568-23.7568-0.4096-13.7216-11.6736-22.528-25.3952-22.528h-50.5856z m-502.3744-119.1936c-16.384 0-29.2864 13.9264-27.8528 30.5152 1.2288 14.5408 13.9264 25.3952 28.672 25.3952h142.9504c14.5408 0 27.2384-10.8544 28.672-25.3952 1.4336-16.5888-11.4688-30.5152-27.8528-30.5152h-144.5888z m0-231.6288h309.4528c15.7696 0 28.4672-12.9024 28.0576-28.8768-0.4096-14.9504-13.7216-27.2384-28.672-27.2384H296.7552c-14.7456 0-27.8528 11.8784-28.672 26.624-0.4096 7.9872 2.6624 15.5648 8.192 21.2992 5.3248 5.12 12.288 8.192 19.8656 8.192z m241.4592 113.0496c0-15.36-12.4928-28.0576-28.0576-28.0576H296.7552c-14.5408 0-27.2384 10.8544-28.4672 25.3952-1.4336 16.5888 11.6736 30.5152 28.0576 30.5152h213.4016c15.36 0.4096 27.8528-12.288 27.8528-27.8528z m0 0" p-id="7582" fill="#2c2c2c"></path><path d="M568.5248 846.4384H248.0128c-24.1664 0-44.032-19.8656-44.032-44.032V212.1728c0-24.1664 19.8656-44.032 44.032-44.032h461.0048c24.1664 0 44.032 19.8656 44.032 44.032v223.0272c0 15.5648 11.6736 28.8768 27.0336 30.3104 17.6128 1.6384 32.3584-12.288 32.3584-29.696V212.1728c0-57.1392-46.4896-103.6288-103.424-103.6288H248.0128c-55.296 0-100.5568 43.008-103.424 98.0992v601.4976c2.8672 54.8864 48.3328 97.8944 103.424 97.8944h319.8976c14.9504 0 28.0576-10.6496 30.1056-25.3952 2.6624-18.432-11.6736-34.2016-29.4912-34.2016z m0 0" p-id="7583" fill="#2c2c2c"></path><path d="M782.7456 502.1696c-111.8208 0-202.752 91.3408-201.9328 203.5712 0.8192 109.7728 90.5216 199.4752 200.4992 200.4992 112.0256 0.8192 203.5712-90.112 203.5712-201.9328-0.2048-111.616-90.7264-202.1376-202.1376-202.1376z m146.432 201.9328c0 81.5104-66.7648 147.456-148.48 146.432-78.848-1.024-143.1552-65.3312-144.384-143.9744-1.2288-81.92 64.9216-148.8896 146.432-148.8896 80.6912 0 146.432 65.536 146.432 146.432z m0 0" p-id="7584" fill="#2c2c2c"></path></svg> src/assets/images/history1.svg
New file @@ -0,0 +1 @@ <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1723702451417" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="15353" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24"><path d="M798.5152 707.9936v-77.0048c0-12.288-9.8304-22.7328-22.1184-22.7328-13.9264 0-24.1664 11.4688-24.1664 25.3952V739.328c0 8.192 6.7584 14.9504 14.9504 14.9504h83.5584c13.1072 0 24.1664-10.6496 23.7568-23.7568-0.4096-13.7216-11.6736-22.528-25.3952-22.528h-50.5856z m-502.3744-119.1936c-16.384 0-29.2864 13.9264-27.8528 30.5152 1.2288 14.5408 13.9264 25.3952 28.672 25.3952h142.9504c14.5408 0 27.2384-10.8544 28.672-25.3952 1.4336-16.5888-11.4688-30.5152-27.8528-30.5152h-144.5888z m0-231.6288h309.4528c15.7696 0 28.4672-12.9024 28.0576-28.8768-0.4096-14.9504-13.7216-27.2384-28.672-27.2384H296.7552c-14.7456 0-27.8528 11.8784-28.672 26.624-0.4096 7.9872 2.6624 15.5648 8.192 21.2992 5.3248 5.12 12.288 8.192 19.8656 8.192z m241.4592 113.0496c0-15.36-12.4928-28.0576-28.0576-28.0576H296.7552c-14.5408 0-27.2384 10.8544-28.4672 25.3952-1.4336 16.5888 11.6736 30.5152 28.0576 30.5152h213.4016c15.36 0.4096 27.8528-12.288 27.8528-27.8528z m0 0" p-id="15354" fill="#2c2c2c"></path><path d="M568.5248 846.4384H248.0128c-24.1664 0-44.032-19.8656-44.032-44.032V212.1728c0-24.1664 19.8656-44.032 44.032-44.032h461.0048c24.1664 0 44.032 19.8656 44.032 44.032v223.0272c0 15.5648 11.6736 28.8768 27.0336 30.3104 17.6128 1.6384 32.3584-12.288 32.3584-29.696V212.1728c0-57.1392-46.4896-103.6288-103.424-103.6288H248.0128c-55.296 0-100.5568 43.008-103.424 98.0992v601.4976c2.8672 54.8864 48.3328 97.8944 103.424 97.8944h319.8976c14.9504 0 28.0576-10.6496 30.1056-25.3952 2.6624-18.432-11.6736-34.2016-29.4912-34.2016z m0 0" p-id="15355" fill="#2c2c2c"></path><path d="M782.7456 502.1696c-111.8208 0-202.752 91.3408-201.9328 203.5712 0.8192 109.7728 90.5216 199.4752 200.4992 200.4992 112.0256 0.8192 203.5712-90.112 203.5712-201.9328-0.2048-111.616-90.7264-202.1376-202.1376-202.1376z m146.432 201.9328c0 81.5104-66.7648 147.456-148.48 146.432-78.848-1.024-143.1552-65.3312-144.384-143.9744-1.2288-81.92 64.9216-148.8896 146.432-148.8896 80.6912 0 146.432 65.536 146.432 146.432z m0 0" p-id="15356" fill="#2c2c2c"></path></svg> src/assets/images/history2.svg
New file @@ -0,0 +1 @@ <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1723702451417" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="15353" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24"><path d="M798.5152 707.9936v-77.0048c0-12.288-9.8304-22.7328-22.1184-22.7328-13.9264 0-24.1664 11.4688-24.1664 25.3952V739.328c0 8.192 6.7584 14.9504 14.9504 14.9504h83.5584c13.1072 0 24.1664-10.6496 23.7568-23.7568-0.4096-13.7216-11.6736-22.528-25.3952-22.528h-50.5856z m-502.3744-119.1936c-16.384 0-29.2864 13.9264-27.8528 30.5152 1.2288 14.5408 13.9264 25.3952 28.672 25.3952h142.9504c14.5408 0 27.2384-10.8544 28.672-25.3952 1.4336-16.5888-11.4688-30.5152-27.8528-30.5152h-144.5888z m0-231.6288h309.4528c15.7696 0 28.4672-12.9024 28.0576-28.8768-0.4096-14.9504-13.7216-27.2384-28.672-27.2384H296.7552c-14.7456 0-27.8528 11.8784-28.672 26.624-0.4096 7.9872 2.6624 15.5648 8.192 21.2992 5.3248 5.12 12.288 8.192 19.8656 8.192z m241.4592 113.0496c0-15.36-12.4928-28.0576-28.0576-28.0576H296.7552c-14.5408 0-27.2384 10.8544-28.4672 25.3952-1.4336 16.5888 11.6736 30.5152 28.0576 30.5152h213.4016c15.36 0.4096 27.8528-12.288 27.8528-27.8528z m0 0" p-id="15354" fill="#707070"></path><path d="M568.5248 846.4384H248.0128c-24.1664 0-44.032-19.8656-44.032-44.032V212.1728c0-24.1664 19.8656-44.032 44.032-44.032h461.0048c24.1664 0 44.032 19.8656 44.032 44.032v223.0272c0 15.5648 11.6736 28.8768 27.0336 30.3104 17.6128 1.6384 32.3584-12.288 32.3584-29.696V212.1728c0-57.1392-46.4896-103.6288-103.424-103.6288H248.0128c-55.296 0-100.5568 43.008-103.424 98.0992v601.4976c2.8672 54.8864 48.3328 97.8944 103.424 97.8944h319.8976c14.9504 0 28.0576-10.6496 30.1056-25.3952 2.6624-18.432-11.6736-34.2016-29.4912-34.2016z m0 0" p-id="15355" fill="#707070"></path><path d="M782.7456 502.1696c-111.8208 0-202.752 91.3408-201.9328 203.5712 0.8192 109.7728 90.5216 199.4752 200.4992 200.4992 112.0256 0.8192 203.5712-90.112 203.5712-201.9328-0.2048-111.616-90.7264-202.1376-202.1376-202.1376z m146.432 201.9328c0 81.5104-66.7648 147.456-148.48 146.432-78.848-1.024-143.1552-65.3312-144.384-143.9744-1.2288-81.92 64.9216-148.8896 146.432-148.8896 80.6912 0 146.432 65.536 146.432 146.432z m0 0" p-id="15356" fill="#707070"></path></svg> src/assets/images/historybg.svg
New file @@ -0,0 +1 @@ <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1723701570374" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7581" width="24" height="24" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M798.5152 707.9936v-77.0048c0-12.288-9.8304-22.7328-22.1184-22.7328-13.9264 0-24.1664 11.4688-24.1664 25.3952V739.328c0 8.192 6.7584 14.9504 14.9504 14.9504h83.5584c13.1072 0 24.1664-10.6496 23.7568-23.7568-0.4096-13.7216-11.6736-22.528-25.3952-22.528h-50.5856z m-502.3744-119.1936c-16.384 0-29.2864 13.9264-27.8528 30.5152 1.2288 14.5408 13.9264 25.3952 28.672 25.3952h142.9504c14.5408 0 27.2384-10.8544 28.672-25.3952 1.4336-16.5888-11.4688-30.5152-27.8528-30.5152h-144.5888z m0-231.6288h309.4528c15.7696 0 28.4672-12.9024 28.0576-28.8768-0.4096-14.9504-13.7216-27.2384-28.672-27.2384H296.7552c-14.7456 0-27.8528 11.8784-28.672 26.624-0.4096 7.9872 2.6624 15.5648 8.192 21.2992 5.3248 5.12 12.288 8.192 19.8656 8.192z m241.4592 113.0496c0-15.36-12.4928-28.0576-28.0576-28.0576H296.7552c-14.5408 0-27.2384 10.8544-28.4672 25.3952-1.4336 16.5888 11.6736 30.5152 28.0576 30.5152h213.4016c15.36 0.4096 27.8528-12.288 27.8528-27.8528z m0 0" p-id="7582" fill="#707070"></path><path d="M568.5248 846.4384H248.0128c-24.1664 0-44.032-19.8656-44.032-44.032V212.1728c0-24.1664 19.8656-44.032 44.032-44.032h461.0048c24.1664 0 44.032 19.8656 44.032 44.032v223.0272c0 15.5648 11.6736 28.8768 27.0336 30.3104 17.6128 1.6384 32.3584-12.288 32.3584-29.696V212.1728c0-57.1392-46.4896-103.6288-103.424-103.6288H248.0128c-55.296 0-100.5568 43.008-103.424 98.0992v601.4976c2.8672 54.8864 48.3328 97.8944 103.424 97.8944h319.8976c14.9504 0 28.0576-10.6496 30.1056-25.3952 2.6624-18.432-11.6736-34.2016-29.4912-34.2016z m0 0" p-id="7583" fill="#707070"></path><path d="M782.7456 502.1696c-111.8208 0-202.752 91.3408-201.9328 203.5712 0.8192 109.7728 90.5216 199.4752 200.4992 200.4992 112.0256 0.8192 203.5712-90.112 203.5712-201.9328-0.2048-111.616-90.7264-202.1376-202.1376-202.1376z m146.432 201.9328c0 81.5104-66.7648 147.456-148.48 146.432-78.848-1.024-143.1552-65.3312-144.384-143.9744-1.2288-81.92 64.9216-148.8896 146.432-148.8896 80.6912 0 146.432 65.536 146.432 146.432z m0 0" p-id="7584" fill="#707070"></path></svg> src/assets/images/talk.svg
New file @@ -0,0 +1 @@ <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1723703182973" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="30378" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24"><path d="M512 9.309091c273.128727 0 495.429818 217.832727 502.504727 489.285818l0.186182 14.149818c0 83.642182-17.314909 152.436364-52.782545 205.637818a37.236364 37.236364 0 0 1-61.998546-41.332363c24.669091-36.957091 38.260364-86.621091 40.075637-149.550546L940.218182 512a428.218182 428.218182 0 0 0-856.250182-12.427636L83.781818 512v232.727273a195.490909 195.490909 0 0 0 185.716364 195.258182L279.272727 940.218182h231.610182c59.019636 0 118.085818-7.912727 177.338182-23.738182a37.236364 37.236364 0 0 1 19.223273 71.912727 761.949091 761.949091 0 0 1-171.985455 25.879273l-24.576 0.418909H279.272727a269.963636 269.963636 0 0 1-269.777454-259.630545L9.309091 744.727273v-232.727273C9.309091 234.356364 234.356364 9.309091 512 9.309091z m50.269091 515.258182a37.236364 37.236364 0 0 1 4.654545 74.193454l-4.654545 0.279273H286.301091a37.236364 37.236364 0 0 1-4.654546-74.146909l4.654546-0.279273h275.874909z m139.636364-186.181818a37.236364 37.236364 0 0 1 4.654545 74.193454l-4.654545 0.279273H286.301091a37.236364 37.236364 0 0 1-4.654546-74.146909l4.654546-0.279273h415.511273z" fill="#707070" p-id="30379"></path><path d="M847.872 734.487273c21.410909 0 38.772364 17.361455 38.772364 38.772363v38.772364h38.772363a38.772364 38.772364 0 1 1 0 77.591273h-38.772363v38.818909a38.772364 38.772364 0 0 1-77.591273 0v-38.818909h-38.772364a38.772364 38.772364 0 1 1 0-77.544728l38.772364-0.046545v-38.772364c0-21.410909 17.361455-38.772364 38.818909-38.772363z" fill="#707070" p-id="30380"></path></svg> src/assets/images/talkbg.svg
New file @@ -0,0 +1 @@ <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1723703182973" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="30378" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24"><path d="M512 9.309091c273.128727 0 495.429818 217.832727 502.504727 489.285818l0.186182 14.149818c0 83.642182-17.314909 152.436364-52.782545 205.637818a37.236364 37.236364 0 0 1-61.998546-41.332363c24.669091-36.957091 38.260364-86.621091 40.075637-149.550546L940.218182 512a428.218182 428.218182 0 0 0-856.250182-12.427636L83.781818 512v232.727273a195.490909 195.490909 0 0 0 185.716364 195.258182L279.272727 940.218182h231.610182c59.019636 0 118.085818-7.912727 177.338182-23.738182a37.236364 37.236364 0 0 1 19.223273 71.912727 761.949091 761.949091 0 0 1-171.985455 25.879273l-24.576 0.418909H279.272727a269.963636 269.963636 0 0 1-269.777454-259.630545L9.309091 744.727273v-232.727273C9.309091 234.356364 234.356364 9.309091 512 9.309091z m50.269091 515.258182a37.236364 37.236364 0 0 1 4.654545 74.193454l-4.654545 0.279273H286.301091a37.236364 37.236364 0 0 1-4.654546-74.146909l4.654546-0.279273h275.874909z m139.636364-186.181818a37.236364 37.236364 0 0 1 4.654545 74.193454l-4.654545 0.279273H286.301091a37.236364 37.236364 0 0 1-4.654546-74.146909l4.654546-0.279273h415.511273z" fill="#2c2c2c" p-id="30379"></path><path d="M847.872 734.487273c21.410909 0 38.772364 17.361455 38.772364 38.772363v38.772364h38.772363a38.772364 38.772364 0 1 1 0 77.591273h-38.772363v38.818909a38.772364 38.772364 0 0 1-77.591273 0v-38.818909h-38.772364a38.772364 38.772364 0 1 1 0-77.544728l38.772364-0.046545v-38.772364c0-21.410909 17.361455-38.772364 38.818909-38.772363z" fill="#2c2c2c" p-id="30380"></path></svg> src/views/sessionManager/components/chatMenu.vue
New file @@ -0,0 +1,129 @@ <template> <div class="layoutNavMoveCenter"> <div class="layoutNavMove___j5ets"> <div class="myAgent___djnd_ myAgentAnim myAgentlight___yK7Gk"> <!-- <div data-testid="msh-sidebar-main" class="myAgentHome___PG6IZ"></div>--> <div class="myAgentLine___Isl6E"></div> <div class="myAgentTool___Y1_mC" data-testid="msh-sidebar-new"> <div class="myAgentToolIcon___gaAKI myAgentToolIconNew___DBZrW"> <img src="../../../assets/images/talkbg.svg" style="width: 24px" alt=""></div> </div> <div data-testid="msh-sidebar-history" class="myAgentTool___Y1_mC"> <div class="myAgentToolIcon___gaAKI myAgentToolIconHistory___GTLWk"> <img src="../../../assets/images/history.svg" style="width: 24px" alt=""> </div> </div> <div data-testid="msh-sidebar-square" class="myAgentTool___Y1_mC myAgentToolSquare___dbLm1"> <div class="myAgentToolIcon___gaAKI myAgentToolIconSquare___Rj1o_"><img src="../../../assets/images/agentbg.svg" style="width: 24px" alt=""></div> </div> <div class="myAgentLine___Isl6E" style="margin-top: 4px;"></div> <div class="myAgentBox___zrCit myAgentBoxhistoryconph28t7lagf3d1bhq0"> <div class="myAgentBoxImg___Mgu9e"> <div class="myAgentBoxImgLayout___u69B_"> <div class="MuiBox-root css-5nczy5"><img src="https://kimi-img.moonshot.cn/prod-chat-kimi/avatar/kimiplus/academic.png" alt="" style="border-radius: 50%; width: 100%; height: 100%;"></div> <span class="myAgentBoxImgLayoutTip___xHV4m">学术搜索</span></div> <div data-testid="msh-sidebar-bot-delete" class="myAgentBoxImgDelete___qXZuq"> <div class="myAgentBoxImgDeleteInner____Hawc">从侧边栏移除</div> </div> </div> </div> <div class="myAgentBox___zrCit myAgentBoxhistoryconpgu0t7lagecg63730"> <div class="myAgentBoxImg___Mgu9e"> <div class="myAgentBoxImgLayout___u69B_"> <div class="MuiBox-root css-5nczy5"><img src="https://kimi-img.moonshot.cn/prod-chat-kimi/avatar/kimiplus/paper_rewrite.png" alt="" style="border-radius: 50%; width: 100%; height: 100%;"></div> <span class="myAgentBoxImgLayoutTip___xHV4m">论文改写</span></div> <div data-testid="msh-sidebar-bot-delete" class="myAgentBoxImgDelete___qXZuq"> <div class="myAgentBoxImgDeleteInner____Hawc">从侧边栏移除</div> </div> </div> </div> <div class="myAgentBox___zrCit myAgentBoxhistoryconpg00t7lagbbsfqkq0"> <div class="myAgentBoxImg___Mgu9e"> <div class="myAgentBoxImgLayout___u69B_"> <div class="MuiBox-root css-5nczy5"><img src="https://kimi-img.moonshot.cn/prod-chat-kimi/avatar/kimiplus/prompt.png" alt="" style="border-radius: 50%; width: 100%; height: 100%;"></div> <span class="myAgentBoxImgLayoutTip___xHV4m">提示词专家</span></div> <div data-testid="msh-sidebar-bot-delete" class="myAgentBoxImgDelete___qXZuq"> <div class="myAgentBoxImgDeleteInner____Hawc">从侧边栏移除</div> </div> </div> </div> <div class="myAgentBox___zrCit myAgentBoxhistoryconpgbgt7lagcavlq340"> <div class="myAgentBoxImg___Mgu9e"> <div class="myAgentBoxImgLayout___u69B_"> <div class="MuiBox-root css-5nczy5"><img src="https://kimi-img.moonshot.cn/prod-chat-kimi/avatar/kimiplus/taro.png" alt="" style="border-radius: 50%; width: 100%; height: 100%;"></div> <span class="myAgentBoxImgLayoutTip___xHV4m">塔罗师</span></div> <div data-testid="msh-sidebar-bot-delete" class="myAgentBoxImgDelete___qXZuq"> <div class="myAgentBoxImgDeleteInner____Hawc">从侧边栏移除</div> </div> </div> </div> <div class="myAgentBox___zrCit myAgentBoxhistoryconpgbot7lagcavlq34g"> <div class="myAgentBoxImg___Mgu9e"> <div class="myAgentBoxImgLayout___u69B_"> <div class="MuiBox-root css-5nczy5"><img src="https://kimi-img.moonshot.cn/prod-chat-kimi/avatar/kimiplus/guess.png" alt="" style="border-radius: 50%; width: 100%; height: 100%;"></div> <span class="myAgentBoxImgLayoutTip___xHV4m">猜猜我在想谁</span></div> <div data-testid="msh-sidebar-bot-delete" class="myAgentBoxImgDelete___qXZuq"> <div class="myAgentBoxImgDeleteInner____Hawc">从侧边栏移除</div> </div> </div> </div> <div class="myAgentLine___Isl6E" style="margin-top: 4px;"></div> </div> </div> </div> </template> <script setup lang="ts"> import { IconClose, IconSearch, IconTiktokColor } from "@arco-design/web-vue/es/icon"; import { useAppStore, useUserStore } from "@/store"; import { computed, nextTick, onMounted, watch, reactive, ref } from "vue"; import { Message } from "@arco-design/web-vue"; import { EventSourceParserStream } from "eventsource-parser/stream"; import { chatApi, getDialogListApi, getSessionDetailsApi, sessionListApi } from "@/api/session"; </script> <style scoped lang="less"> @import "@/views/sessionManager/style/layout.css"; .layoutNavMoveCenter { display: flex; justify-content: center; align-items: center; height: calc(100vh - 160px); /* 或者指定高度 */ position: relative; } .layoutNavMove___j5ets{ } </style> src/views/sessionManager/index.vue
@@ -5,143 +5,146 @@ @addSession="addSession" :dialogId="dialogId" ></AddSession> <a-card class="top-title">AI会话记录</a-card> <a-row :gutter="[5, 5]" style="margin-top: 3px"> <a-col :span="6"> <a-card class="left-select"> <a-select v-model="selectValue" :options="dialogs" :field-names="fieldNames" @change="dialogChange" > </a-select> </a-card> <a-card style="height: 50px"> <template #cover> <div style="display: flex; justify-content: space-between"> <a-button type="primary" shape="round" class="card-btn-1" @click="modalObj.add = true" > +新建会话 </a-button> <!-- <a-button type="text" shape="circle" class="card-btn-2"> <icon-search /> </a-button> --> </div> </template> </a-card> <a-card class="left"> <a-scrollbar class="left-list" style=" height: calc(100vh - 350px); overflow-y: auto; overflow-x: hidden; " > <div class="item left-list-item" v-for="session in sessionList" @click="querySessionDetail(session)" :class="{ isLeftActive: activeSessionId === session.id }" > <div class="text" :class="{ time: theme === 'dark' }" >{{ session.name }} </div> <div class="time" >{{ moment(new Date(session.create_time)).format( 'YYYY-MM-DD HH:mm:ss' ) }} </div> </div> </a-scrollbar> </a-card> <!-- <a-card class="top-title">AI会话记录</a-card>--> <a-row :gutter="[5, 5]" style="margin-top: 3px;"> <!-- <a-col :span="6">--> <!-- <a-card class="left-select">--> <!-- <a-select--> <!-- v-model="selectValue"--> <!-- :options="dialogs"--> <!-- :field-names="fieldNames"--> <!-- @change="dialogChange"--> <!-- >--> <!-- </a-select>--> <!-- </a-card>--> <!-- <a-card style="height: 50px">--> <!-- <template #cover>--> <!-- <div style="display: flex; justify-content: space-between">--> <!-- <a-button--> <!-- type="primary"--> <!-- shape="round"--> <!-- class="card-btn-1"--> <!-- @click="modalObj.add = true"--> <!-- >--> <!-- +新建会话--> <!-- </a-button>--> <!-- <!– <a-button type="text" shape="circle" class="card-btn-2">--> <!-- <icon-search />--> <!-- </a-button> –>--> <!-- </div>--> <!-- </template>--> <!-- </a-card>--> <!-- <a-card class="left">--> <!-- <a-scrollbar--> <!-- class="left-list"--> <!-- style="--> <!-- height: calc(100vh - 350px);--> <!-- overflow-y: auto;--> <!-- overflow-x: hidden;--> <!-- "--> <!-- >--> <!-- <div--> <!-- class="item left-list-item"--> <!-- v-for="session in sessionList"--> <!-- @click="querySessionDetail(session)"--> <!-- :class="{ isLeftActive: activeSessionId === session.id }"--> <!-- >--> <!-- <div class="text" :class="{ time: theme === 'dark' }"--> <!-- >{{ session.name }}--> <!-- </div>--> <!-- <div class="time"--> <!-- >{{--> <!-- moment(new Date(session.create_time)).format(--> <!-- 'YYYY-MM-DD HH:mm:ss'--> <!-- )--> <!-- }}--> <!-- </div>--> <!-- </div>--> <!-- </a-scrollbar>--> <!-- </a-card>--> <!-- </a-col>--> <a-col :span="1"> <chatMenu></chatMenu> </a-col> <!-- 智能体会话--> <a-col :span="18" v-show="agentType == '1'"> <a-card class="center"> <!-- <div v-if="sessionDetailList.length === 0" style=" width: 90%; overflow: auto; height: 65vh; margin: 0px auto 20px; " > <div class="center-title">智能问答</div> <div class="center-content"> 我可以理解和学习人类的语言,具备多轮对话的能力,现在和我开始交流吧~ <a-col :span="23" v-show="agentType == '1'"> <!-- <div v-if="sessionDetailList.length === 0" style=" width: 90%; overflow: auto; height: 65vh; margin: 0px auto 20px; " > <div class="center-title">智能问答</div> <div class="center-content"> 我可以理解和学习人类的语言,具备多轮对话的能力,现在和我开始交流吧~ </div> <div class="center-question"> <div class="center-question-left">试一试这样问我</div> <div class="center-question-right"> <a-button type="primary">换一换</a-button> </div> <div class="center-question"> <div class="center-question-left">试一试这样问我</div> <div class="center-question-right"> <a-button type="primary">换一换</a-button> </div> <a-row justify="space-around" class="center-list"> <a-col :span="7" class="item"> <div class="item-title"> <IconTiktokColor></IconTiktokColor> 抖音带货脚本 </div> </div> <a-row justify="space-around" class="center-list"> <a-col :span="7" class="item"> <div class="item-title"> <IconTiktokColor></IconTiktokColor> 抖音带货脚本 </div> <div class="item-content" :class="{ dark: theme === 'dark' }"> 编写引人注目且具有说服力的、适用于产品的... </div> </a-col> <a-col :span="7" class="item"> <div class="item-title"> <IconTiktokColor></IconTiktokColor> 抖音带货脚本 </div> <div class="item-content" :class="{ dark: theme === 'dark' }"> 编写引人注目且具有说服力的、适用于产品的... </div> </a-col> <a-col :span="7" class="item"> <div class="item-title"> <IconTiktokColor></IconTiktokColor> 抖音带货脚本 </div> <div class="item-content" :class="{ dark: theme === 'dark' }"> 编写引人注目且具有说服力的、适用于产品的... </div> </a-col> <a-col :span="7" class="item"> <div class="item-title"> <IconTiktokColor></IconTiktokColor> 抖音带货脚本 </div> <div class="item-content" :class="{ dark: theme === 'dark' }"> 编写引人注目且具有说服力的、适用于产品的... </div> </a-col> <a-col :span="7" class="item"> <div class="item-title"> <IconTiktokColor></IconTiktokColor> 抖音带货脚本 </div> <div class="item-content" :class="{ dark: theme === 'dark' }"> 编写引人注目且具有说服力的、适用于产品的... </div> </a-col> <a-col :span="7" class="item"> <div class="item-title"> <IconTiktokColor></IconTiktokColor> 抖音带货脚本 </div> <div class="item-content" :class="{ dark: theme === 'dark' }"> 编写引人注目且具有说服力的、适用于产品的... </div> </a-col> </a-row> </div> --> <div class="item-content" :class="{ dark: theme === 'dark' }"> 编写引人注目且具有说服力的、适用于产品的... </div> </a-col> <a-col :span="7" class="item"> <div class="item-title"> <IconTiktokColor></IconTiktokColor> 抖音带货脚本 </div> <div class="item-content" :class="{ dark: theme === 'dark' }"> 编写引人注目且具有说服力的、适用于产品的... </div> </a-col> <a-col :span="7" class="item"> <div class="item-title"> <IconTiktokColor></IconTiktokColor> 抖音带货脚本 </div> <div class="item-content" :class="{ dark: theme === 'dark' }"> 编写引人注目且具有说服力的、适用于产品的... </div> </a-col> <a-col :span="7" class="item"> <div class="item-title"> <IconTiktokColor></IconTiktokColor> 抖音带货脚本 </div> <div class="item-content" :class="{ dark: theme === 'dark' }"> 编写引人注目且具有说服力的、适用于产品的... </div> </a-col> <a-col :span="7" class="item"> <div class="item-title"> <IconTiktokColor></IconTiktokColor> 抖音带货脚本 </div> <div class="item-content" :class="{ dark: theme === 'dark' }"> 编写引人注目且具有说服力的、适用于产品的... </div> </a-col> <a-col :span="7" class="item"> <div class="item-title"> <IconTiktokColor></IconTiktokColor> 抖音带货脚本 </div> <div class="item-content" :class="{ dark: theme === 'dark' }"> 编写引人注目且具有说服力的、适用于产品的... </div> </a-col> </a-row> </div> --> <div class="center"> <a-scrollbar ref="scrollbar" id="home" @@ -149,7 +152,7 @@ style=" width: 90%; overflow: auto; height: calc(100vh - 380px); height: calc(100vh - 300px); margin: 0px auto 20px; " > @@ -164,7 +167,7 @@ </template> <template #content> <div :class="{ chartUserText: theme === 'light' }" >{{ sessionDetail.content }} >{{ sessionDetail.content }} </div> </template> </a-comment> @@ -179,7 +182,7 @@ <template #content> <a-card :class="{ chatItemAnswer: theme === 'light' }"> <div :class="{ light: theme === 'light' }" >{{ sessionDetail.content }} >{{ sessionDetail.content }} </div> </a-card> </template> @@ -243,17 +246,18 @@ style="border-radius: 24px" :loading="loading" size="large" >发送</a-button >发送 </a-button > </div> </div> </div> </a-card> </div> </a-col> <a-col :span="18" v-show="agentType == '2'"> <a-card class="center"> <a-col :span="23" v-show="agentType == '2'"> <div class="center"> <agentSession :modalObj="agentObj"></agentSession> </a-card> </div> </a-col> <!-- <a-col :span="5"> @@ -320,519 +324,542 @@ </div> </template> <script setup lang="ts"> import { IconClose, IconSearch, IconTiktokColor, } from '@arco-design/web-vue/es/icon'; import { useAppStore, useUserStore } from '@/store'; import { computed, nextTick, onMounted, watch, reactive, ref } from 'vue'; import { IconClose, IconSearch, IconTiktokColor } from "@arco-design/web-vue/es/icon"; import { useAppStore, useUserStore } from "@/store"; import { computed, nextTick, onMounted, watch, reactive, ref } from "vue"; import { Message } from '@arco-design/web-vue'; import { EventSourceParserStream } from 'eventsource-parser/stream'; import moment from 'moment'; import AddSession from '@/views/sessionManager/components/addSession.vue'; import agentSession from '@/views/sessionManager/components/agentSession.vue'; import { chatApi, getDialogListApi, getSessionDetailsApi, sessionListApi, } from '@/api/session'; import { getAuthorization } from '@/utils/auth'; import { queryCanvasList } from '@/api/Agent'; import { getAgentSessionDetailsApi } from '@/api/agentSession'; import { Message } from "@arco-design/web-vue"; import { EventSourceParserStream } from "eventsource-parser/stream"; import moment from "moment"; import chatMenu from "@/views/sessionManager/components/chatMenu.vue"; import AddSession from "@/views/sessionManager/components/addSession.vue"; import agentSession from "@/views/sessionManager/components/agentSession.vue"; import { chatApi, getDialogListApi, getSessionDetailsApi, sessionListApi } from "@/api/session"; import { getAuthorization } from "@/utils/auth"; import { queryCanvasList } from "@/api/Agent"; import { getAgentSessionDetailsApi } from "@/api/agentSession"; const sessionDetailList = ref([]); //根据会话id出来的会话详情 const sessionList = ref([]); //会话列表 const modalObj = reactive({ add: false }); const dialogId = ref(''); const chatDis = ref(false); const loading = ref(false); const agentType = ref('1'); const sessionDetailList = ref([]); //根据会话id出来的会话详情 const sessionList = ref([]); //会话列表 const modalObj = reactive({ add: false }); const dialogId = ref(""); const chatDis = ref(false); const loading = ref(false); const agentType = ref("1"); const currIndex = ref(0); const displayedText = ref(''); // 正在显示的文字 let timer: number | null = null; const streamStr = ref(''); const inputMsg = ref(''); const activeSessionId = ref(''); const fieldNames = { value: 'id', label: 'name' }; const dialogs = ref([]); const dialogObj = reactive({}); const agentObj = reactive({}); const agentList = ref([]); const selectValue = ref(''); const sectionList = ref({}); const DialogList = async () => { const { code, data } = await getDialogListApi(); if (code === 200) { if (data) { selectValue.value = data[0].id; dialogs.value = data.map((item) => { return { ...item, type: 1, //智能体 }; }); console.log(data, 'dialogs'); queryCanvas(); // querySessionList(); } } }; const queryCanvas = async (params = {}) => { try { const { data } = await queryCanvasList(params); console.log(data, 'agent'); agentList.value = data.map((item) => { const currIndex = ref(0); const displayedText = ref(""); // 正在显示的文字 let timer: number | null = null; const streamStr = ref(""); const inputMsg = ref(""); const activeSessionId = ref(""); const fieldNames = { value: "id", label: "name" }; const dialogs = ref([]); const dialogObj = reactive({}); const agentObj = reactive({}); const agentList = ref([]); const selectValue = ref(""); const sectionList = ref({}); const DialogList = async () => { const { code, data } = await getDialogListApi(); if (code === 200) { if (data) { selectValue.value = data[0].id; dialogs.value = data.map((item) => { return { ...item, name: item.title, type: 2, //agent type: 1 //智能体 }; }); // 合并数组 dialogs.value = dialogs.value.concat(agentList.value); // 判断当前是智能体或agent // console.log(val, 'val'); if (dialogs.value.length > 0) { dialogChange(dialogs.value[0].id); } } catch (err) { // you can report use errorHandler or other } finally { console.log(data, "dialogs"); queryCanvas(); // querySessionList(); } }; } }; const handleShiftEnter = (event) => { event.preventDefault(); inputMsg.value += '\n'; }; const dialogChange = (val) => { const queryCanvas = async (params = {}) => { try { const { data } = await queryCanvasList(params); console.log(data, "agent"); agentList.value = data.map((item) => { return { ...item, name: item.title, type: 2 //agent }; }); // 合并数组 dialogs.value = dialogs.value.concat(agentList.value); // 判断当前是智能体或agent // console.log(val, 'val'); dialogId.value = val; dialogs.value.forEach((item) => { if (item.id === val) { Object.assign(dialogObj, item); } }); console.log(dialogObj.type, 'dialogObj'); if (dialogObj.type == 1) { agentType.value = 1; querySessionList(); } else { agentType.value = 2; queryAgentSessionList(); if (dialogs.value.length > 0) { dialogChange(dialogs.value[0].id); } } catch (err) { // you can report use errorHandler or other } finally { } }; // querySessionList(); }; const sentClick = () => { sendMessage('click'); }; const sendMessage = async (event) => { if (event.keyCode == 13 || event === 'click') { if (!event.shiftKey) { //只有enter没有shift,或进行你的其他逻辑 if (event !== 'click') { event.preventDefault(); // 阻止默认行为,即不换行 } const handleShiftEnter = (event) => { event.preventDefault(); inputMsg.value += "\n"; }; const dialogChange = (val) => { // 判断当前是智能体或agent // console.log(val, 'val'); dialogId.value = val; dialogs.value.forEach((item) => { if (item.id === val) { Object.assign(dialogObj, item); } }); console.log(dialogObj.type, "dialogObj"); if (dialogObj.type == 1) { agentType.value = 1; querySessionList(); } else { agentType.value = 2; queryAgentSessionList(); } chatDis.value = true; loading.value = true; if (!activeSessionId.value) { Message.warning('请选择会话'); chatDis.value = false; loading.value = false; return; } // querySessionList(); }; const sentClick = () => { sendMessage("click"); }; const sendMessage = async (event) => { if (event.keyCode == 13 || event === "click") { if (!event.shiftKey) { //只有enter没有shift,或进行你的其他逻辑 if (event !== "click") { event.preventDefault(); // 阻止默认行为,即不换行 } // if (displayedText.value) { // querySessionList(); // } chatDis.value = true; loading.value = true; if (!activeSessionId.value) { Message.warning("请选择会话"); chatDis.value = false; loading.value = false; return; } if (inputMsg.value) { sessionDetailList.value.push({ content: inputMsg.value, role: 'user', }); sessionDetailList.value.push({ role: 'last' }); refreshScroll(); const response = await fetch( '/api/tech/cloudminds/query?modeltype=localragflow', { method: 'POST', headers: { 'Authorization': getAuthorization(), 'Content-Type': 'application/json', }, body: JSON.stringify({ conversation_id: activeSessionId.value, messages: inputMsg.value, }), // if (displayedText.value) { // querySessionList(); // } if (inputMsg.value) { sessionDetailList.value.push({ content: inputMsg.value, role: "user" }); sessionDetailList.value.push({ role: "last" }); refreshScroll(); const response = await fetch( "/api/tech/cloudminds/query?modeltype=localragflow", { method: "POST", headers: { "Authorization": getAuthorization(), "Content-Type": "application/json" }, body: JSON.stringify({ conversation_id: activeSessionId.value, messages: inputMsg.value }) } ); const reader = response?.body ?.pipeThrough(new TextDecoderStream()) .pipeThrough(new EventSourceParserStream()) .getReader(); currIndex.value = 0; while (true) { const x = await reader?.read(); if (x) { const { done, value } = x; console.log(x, 999); try { const val = JSON.parse(value?.data || ""); const d = val?.data; if (typeof d !== "boolean") { console.info("data:", d); streamStr.value = d.content; startDisplayStr(); } } catch (e) { console.warn(e); } ); const reader = response?.body ?.pipeThrough(new TextDecoderStream()) .pipeThrough(new EventSourceParserStream()) .getReader(); currIndex.value = 0; while (true) { const x = await reader?.read(); if (x) { const { done, value } = x; console.log(x, 999); try { const val = JSON.parse(value?.data || ''); const d = val?.data; if (typeof d !== 'boolean') { console.info('data:', d); streamStr.value = d.content; startDisplayStr(); } } catch (e) { console.warn(e); } if (done) { console.info('done'); displayedText.value = ''; querySessionDetail(sectionList.value); break; } if (done) { console.info("done"); displayedText.value = ""; querySessionDetail(sectionList.value); break; } } querySessionList(); chatDis.value = false; loading.value = false; inputMsg.value = ''; } else { Message.warning('消息不能为空'); chatDis.value = false; loading.value = false; } querySessionList(); chatDis.value = false; loading.value = false; inputMsg.value = ""; } else { Message.warning("消息不能为空"); chatDis.value = false; loading.value = false; } } }; const querySessionDetail = async (session) => { sectionList.value = session; activeSessionId.value = session.id; const { code, data } = await getSessionDetailsApi(session.id); if (code === 200) { sessionDetailList.value = data.message; refreshScroll(); //刷新滚动条位置 } }; const queryAgentSessionDetail = async (id) => { const { code, data } = await getAgentSessionDetailsApi(id); if (code == 0) { Object.assign(agentObj, data); // sessionDetailList.value = data.message; // refreshScroll(); //刷新滚动条位置 } }; const scrollbar = ref(null); const refreshScroll = () => { nextTick(() => { const container = document.getElementById('home'); scrollbar.value.scrollTop(container.scrollHeight); }); }; // 查询会话列表 const querySessionList = async () => { const { code, data } = await sessionListApi(selectValue.value); if (code === 200) { sessionList.value = data; activeSessionId.value = data[0].id; //默认选择第一个 querySessionDetail(data[0]); } else { Message.warning('查询失败'); } }; // 查询会话列表 const queryAgentSessionList = async () => { // const { code, data } = await sessionListApi(selectValue.value); // if (code === 200) { // // } else { // Message.warning('查询失败'); // } queryAgentSessionDetail(selectValue.value); }; //新增会话之后刷新会话列表 const addSession = () => { querySessionList(); }; onMounted(() => { DialogList(); } }; const querySessionDetail = async (session) => { sectionList.value = session; activeSessionId.value = session.id; const { code, data } = await getSessionDetailsApi(session.id); if (code === 200) { sessionDetailList.value = data.message; refreshScroll(); //刷新滚动条位置 } }; const queryAgentSessionDetail = async (id) => { const { code, data } = await getAgentSessionDetailsApi(id); if (code == 0) { Object.assign(agentObj, data); // sessionDetailList.value = data.message; // refreshScroll(); //刷新滚动条位置 } }; const scrollbar = ref(null); const refreshScroll = () => { nextTick(() => { const container = document.getElementById("home"); scrollbar.value.scrollTop(container.scrollHeight); }); }; // 查询会话列表 const querySessionList = async () => { const { code, data } = await sessionListApi(selectValue.value); if (code === 200) { sessionList.value = data; activeSessionId.value = data[0].id; //默认选择第一个 querySessionDetail(data[0]); } else { Message.warning("查询失败"); } }; const appStore = useAppStore(); const theme = computed(() => { return appStore.theme; }); // 查询会话列表 const queryAgentSessionList = async () => { // const { code, data } = await sessionListApi(selectValue.value); // if (code === 200) { // // } else { // Message.warning('查询失败'); // } queryAgentSessionDetail(selectValue.value); }; //文字动态输出 const startDisplayStr = () => { if (timer) { clearTimeout(timer!); } const res = streamStr.value; // 将数组中的字符串拼接起来 if (currIndex.value < res.length) { displayedText.value += res[currIndex.value]; currIndex.value++; setTimeout(startDisplayStr, 100); refreshScroll(); } else { clearTimeout(timer!); timer = null; } }; //新增会话之后刷新会话列表 const addSession = () => { querySessionList(); }; onMounted(() => { DialogList(); }); const appStore = useAppStore(); const theme = computed(() => { return appStore.theme; }); //文字动态输出 const startDisplayStr = () => { if (timer) { clearTimeout(timer!); } const res = streamStr.value; // 将数组中的字符串拼接起来 if (currIndex.value < res.length) { displayedText.value += res[currIndex.value]; currIndex.value++; setTimeout(startDisplayStr, 100); refreshScroll(); } else { clearTimeout(timer!); timer = null; } }; </script> <style scoped lang="scss"> .isLeftActive { background-color: #ededf5; } .left-list-item { margin-bottom: 2px; } .left-list-item:hover { background-color: #ededf5; .isLeftActive { background-color: #ededf5; } .left-list-item { margin-bottom: 2px; } .left-list-item:hover { background-color: #ededf5; } .dark { color: gray !important; } .container { .top-title { line-height: 32px; font-size: 16px; color: #333; } .dark { color: gray !important; } .container { .top-title { line-height: 32px; font-size: 16px; color: #333; .left-select { :deep(.arco-select-view-single) { border-radius: 5px; } .left-select { :deep(.arco-select-view-single) { border-radius: 5px; } } } .center, .right { box-sizing: border-box; height: calc(100vh - 200px); } .center, .right { box-sizing: border-box; height: calc(100vh - 200px); } .left { /* height: calc(100vh - 160px); overflow-y: auto; overflow-x: hidden;*/ border: 0px; .left { /* height: calc(100vh - 160px); overflow-y: auto; overflow-x: hidden;*/ border: 0px; .left-list { .item { cursor: pointer; .left-list { .item { cursor: pointer; .text, .time { line-height: 30px; } .text, .time { line-height: 30px; } .text { color: black; padding-left: 10px; } .text { color: black; padding-left: 10px; } .time { color: gray; font-size: 12px; padding-left: 10px; } .time { color: gray; font-size: 12px; padding-left: 10px; } } } .card-btn-1 { margin: 8px 15px; width: 100%; border-radius: 5px; } } .card-btn-2 { margin: 10px 10px; } .chatItemAnswer { .card-btn-1 { margin: 8px 15px; width: 100%; border-radius: 5px; } .card-btn-2 { margin: 10px 10px; } .chatItemAnswer { box-sizing: border-box; background: #f1f1f1; border-radius: 14px; .light { box-sizing: border-box; background: #f1f1f1; border-radius: 14px; .light { box-sizing: border-box; background: #f1f1f1; border-radius: 14px; } } .textItemAnswer { background-color: #373739; } .textItemAnswer { background-color: #373739; } .center { position: relative; .center-title { line-height: 60px; font-size: 25px; font-family: 黑体; color: deepskyblue; } .center { position: relative; .center-content { font-size: 14px; color: gray; } .center-title { line-height: 60px; font-size: 25px; font-family: 黑体; color: deepskyblue; .center-question { margin-top: 20px; display: flex; justify-content: space-between; .center-question-left { margin-top: 5px; margin-left: 20px; } .center-content { font-size: 14px; color: gray; .center-question-right { margin-right: 20px; } } .center-question { margin-top: 20px; display: flex; justify-content: space-between; .center-list { margin-top: 10px; .center-question-left { margin-top: 5px; margin-left: 20px; } .center-question-right { margin-right: 20px; } } .center-list { .item { border-radius: 10px; margin-top: 10px; padding: 10px; min-height: 120px; background-color: #e9f3ff; .item { border-radius: 10px; margin-top: 10px; padding: 10px; min-height: 120px; background-color: #e9f3ff; .item-content { color: #666; } .item-title { text-align: center; line-height: 40px; font-size: 20px; font-family: 黑体; color: #333; } .item-content { color: #666; } .item-title { text-align: center; line-height: 40px; font-size: 20px; font-family: 黑体; color: #333; } } .chartStart { color: #4955f5; cursor: pointer; font-family: PingFangSC-Medium; font-size: 12px; font-weight: 500; } .chat_bottom { } .chartStart { color: #4955f5; cursor: pointer; font-family: PingFangSC-Medium; font-size: 12px; font-weight: 500; } .chat_bottom { display: flex; align-items: center; .center-bottom { // position: absolute; // width: 90%; // bottom: 20px; // left: 5%; background: #fff; border: 1px solid #00000014; border-radius: 24px; display: flex; align-items: center; .center-bottom { // position: absolute; // width: 90%; // bottom: 20px; // left: 5%; background: #fff; border: 1px solid #00000014; border-radius: 24px; display: flex; flex: 1 1; flex-direction: column; overflow: hidden; position: relative; // padding-top:10px; :deep(.arco-textarea-wrapper) { border-radius: 24px; } .btn-send { position: absolute !important; right: 10px; bottom: 10px; z-index: 10; } :deep(.arco-btn-size-large) { height: 28px; width: 60px; } } flex: 1 1; flex-direction: column; overflow: hidden; position: relative; // padding-top:10px; :deep(.arco-textarea-wrapper) { padding-top: 5px; border-radius: 24px; } .btn-send { position: absolute !important; right: 10px; bottom: 10px; z-index: 10; } :deep(.arco-btn-size-large) { height: 28px; width: 60px; } } :deep(.arco-textarea-wrapper) { padding-top: 5px; } } .chat-item { padding: 10px 0; .chartUserText { font-weight: 600; font-size: 14px; color: #333; margin-top: 4px; } .chat-item { padding: 10px 0; .chartUserText { font-weight: 600; font-size: 14px; color: #333; margin-top: 4px; } .icon-user-jpg { border: 1px solid #d9d9d9; } } .right { .right-top { display: flex; justify-content: space-between; .right-title { font-size: 25px; color: black; } .icon-user-jpg { border: 1px solid #d9d9d9; .right-btn { position: relative; left: 20px; top: 0px; } } .right { .right-top { display: flex; justify-content: space-between; .right-title { font-size: 25px; color: black; } .right-tag { margin-top: 20px; display: flex; justify-content: space-between; flex-wrap: wrap; .right-btn { position: relative; left: 20px; top: 0px; } } .right-tag { margin-top: 20px; display: flex; justify-content: space-between; flex-wrap: wrap; :deep(.arco-btn-primary) { margin-bottom: 10px !important; &:hover { background-color: #e9f3ff; color: rgb(22, 93, 255); } } } :deep(.arco-btn-primary) { margin-bottom: 10px !important; .right-list { .right-item { border-radius: 10px; margin-top: 10px; padding: 10px; min-height: 120px; &:hover { background-color: #e9f3ff; color: rgb(22, 93, 255); } } } .item-title { text-align: center; line-height: 40px; font-size: 20px; font-family: 黑体; color: #333; } .right-list { .right-item { border-radius: 10px; margin-top: 10px; padding: 10px; min-height: 120px; background-color: #e9f3ff; .item-title { text-align: center; line-height: 40px; font-size: 20px; font-family: 黑体; color: #333; } } } } } </style> src/views/sessionManager/index2.vue
New file @@ -0,0 +1,838 @@ <template> <div class="container"> <AddSession :modalObj="modalObj" @addSession="addSession" :dialogId="dialogId" ></AddSession> <a-card class="top-title">AI会话记录</a-card> <a-row :gutter="[5, 5]" style="margin-top: 3px"> <a-col :span="6"> <a-card class="left-select"> <a-select v-model="selectValue" :options="dialogs" :field-names="fieldNames" @change="dialogChange" > </a-select> </a-card> <a-card style="height: 50px"> <template #cover> <div style="display: flex; justify-content: space-between"> <a-button type="primary" shape="round" class="card-btn-1" @click="modalObj.add = true" > +新建会话 </a-button> <!-- <a-button type="text" shape="circle" class="card-btn-2"> <icon-search /> </a-button> --> </div> </template> </a-card> <a-card class="left"> <a-scrollbar class="left-list" style=" height: calc(100vh - 350px); overflow-y: auto; overflow-x: hidden; " > <div class="item left-list-item" v-for="session in sessionList" @click="querySessionDetail(session)" :class="{ isLeftActive: activeSessionId === session.id }" > <div class="text" :class="{ time: theme === 'dark' }" >{{ session.name }} </div> <div class="time" >{{ moment(new Date(session.create_time)).format( 'YYYY-MM-DD HH:mm:ss' ) }} </div> </div> </a-scrollbar> </a-card> </a-col> <!-- 智能体会话--> <a-col :span="18" v-show="agentType == '1'"> <a-card class="center"> <!-- <div v-if="sessionDetailList.length === 0" style=" width: 90%; overflow: auto; height: 65vh; margin: 0px auto 20px; " > <div class="center-title">智能问答</div> <div class="center-content"> 我可以理解和学习人类的语言,具备多轮对话的能力,现在和我开始交流吧~ </div> <div class="center-question"> <div class="center-question-left">试一试这样问我</div> <div class="center-question-right"> <a-button type="primary">换一换</a-button> </div> </div> <a-row justify="space-around" class="center-list"> <a-col :span="7" class="item"> <div class="item-title"> <IconTiktokColor></IconTiktokColor> 抖音带货脚本 </div> <div class="item-content" :class="{ dark: theme === 'dark' }"> 编写引人注目且具有说服力的、适用于产品的... </div> </a-col> <a-col :span="7" class="item"> <div class="item-title"> <IconTiktokColor></IconTiktokColor> 抖音带货脚本 </div> <div class="item-content" :class="{ dark: theme === 'dark' }"> 编写引人注目且具有说服力的、适用于产品的... </div> </a-col> <a-col :span="7" class="item"> <div class="item-title"> <IconTiktokColor></IconTiktokColor> 抖音带货脚本 </div> <div class="item-content" :class="{ dark: theme === 'dark' }"> 编写引人注目且具有说服力的、适用于产品的... </div> </a-col> <a-col :span="7" class="item"> <div class="item-title"> <IconTiktokColor></IconTiktokColor> 抖音带货脚本 </div> <div class="item-content" :class="{ dark: theme === 'dark' }"> 编写引人注目且具有说服力的、适用于产品的... </div> </a-col> <a-col :span="7" class="item"> <div class="item-title"> <IconTiktokColor></IconTiktokColor> 抖音带货脚本 </div> <div class="item-content" :class="{ dark: theme === 'dark' }"> 编写引人注目且具有说服力的、适用于产品的... </div> </a-col> <a-col :span="7" class="item"> <div class="item-title"> <IconTiktokColor></IconTiktokColor> 抖音带货脚本 </div> <div class="item-content" :class="{ dark: theme === 'dark' }"> 编写引人注目且具有说服力的、适用于产品的... </div> </a-col> </a-row> </div> --> <a-scrollbar ref="scrollbar" id="home" class="chat-list" style=" width: 90%; overflow: auto; height: calc(100vh - 380px); margin: 0px auto 20px; " > <div class="chat-item" v-for="sessionDetail in sessionDetailList"> <a-comment v-if="sessionDetail.role === 'user'"> <template #avatar> <img class="icon-user-jpg" src="../../assets/images/icon-user.jpg" alt="本地图片" /> </template> <template #content> <div :class="{ chartUserText: theme === 'light' }" >{{ sessionDetail.content }} </div> </template> </a-comment> <a-comment v-else-if="sessionDetail.role === 'assistant'"> <template #avatar> <img class="icon-user-jpg" src="../../assets/images/icon-chart.png" alt="本地图片" /> </template> <template #content> <a-card :class="{ chatItemAnswer: theme === 'light' }"> <div :class="{ light: theme === 'light' }" >{{ sessionDetail.content }} </div> </a-card> </template> </a-comment> <a-comment v-else-if="sessionDetail.role === 'last'"> <template #avatar> <img class="icon-user-jpg" src="../../assets/images/icon-chart.png" alt="本地图片" /> </template> <template #content> <a-textarea readonly auto-size v-model="displayedText" :class="{ chatItemAnswer: theme === 'light' }" > </a-textarea> </template> </a-comment> </div> <!-- <div class="chartStart" v-if="isStart" @click="startChat" >停止生成</div > <div class="chartStart v-else" @click="stopChat">重新生成</div> --> </a-scrollbar> <div class="chat_bottom"> <div class="center-bottom"> <!-- <a-textarea v-model="inputMsg" @keydown.shift.enter="sendMessage" style="height: 180px" placeholder="输入您想了解的内容,Shift+Enter发送" :max-length="500" allow-clear show-word-limit > </a-textarea> --> <a-textarea v-model="inputMsg" @keydown.shift.enter="handleShiftEnter" @keydown.enter="sendMessage" placeholder="输入您想了解的内容,Shift+Enter换行,Enter发送" allow-clear show-word-limit :disabled="chatDis" :class="{ textItemAnswer: theme === 'dark' }" :auto-size="{ minRows: 12, maxRows: 5, }" /> <div class="btn-send"> <!-- <icon-send size="32" /> --> <a-button :disabled="chatDis" @click="sentClick" type="primary" style="border-radius: 24px" :loading="loading" size="large" >发送</a-button > </div> </div> </div> </a-card> </a-col> <a-col :span="18" v-show="agentType == '2'"> <a-card class="center"> <agentSession :modalObj="agentObj"></agentSession> </a-card> </a-col> <!-- <a-col :span="5"> <a-card class="right"> <div class="right-top"> <div class="right-title">数智库</div> <div class="right-btn"> <a-button type="outline" shape="circle" style="border: none"> <icon-search /> </a-button> <a-button type="outline" shape="circle" style="border: none; margin-left: -10px" > <icon-close /> </a-button> </div> </div> <div class="right-tag"> <a-button type="primary" size="mini" class="btn">全部 </a-button> <a-button type="outline" size="mini" class="btn" >文档创作 </a-button> <a-button type="outline" size="mini" class="btn" >知识学习 </a-button> <a-button type="outline" size="mini" class="btn" >效率提升 </a-button> </div> <div class="right-list"> <div class="right-item"> <div class="item-title"> <IconTiktokColor></IconTiktokColor> 抖音带货脚本 </div> <div class="item-content" :class="{ dark: theme === 'dark' }"> 编写引人注目且具有说服力的、适用于产品的... </div> </div> <div class="right-item"> <div class="item-title"> <IconTiktokColor></IconTiktokColor> 抖音带货脚本 </div> <div class="item-content" :class="{ dark: theme === 'dark' }"> 编写引人注目且具有说服力的、适用于产品的... </div> </div> <div class="right-item"> <div class="item-title"> <IconTiktokColor></IconTiktokColor> 抖音带货脚本 </div> <div class="item-content" :class="{ dark: theme === 'dark' }"> 编写引人注目且具有说服力的、适用于产品的... </div> </div> </div> </a-card> </a-col> --> </a-row> </div> </template> <script setup lang="ts"> import { IconClose, IconSearch, IconTiktokColor, } from '@arco-design/web-vue/es/icon'; import { useAppStore, useUserStore } from '@/store'; import { computed, nextTick, onMounted, watch, reactive, ref } from 'vue'; import { Message } from '@arco-design/web-vue'; import { EventSourceParserStream } from 'eventsource-parser/stream'; import moment from 'moment'; import AddSession from '@/views/sessionManager/components/addSession.vue'; import agentSession from '@/views/sessionManager/components/agentSession.vue'; import { chatApi, getDialogListApi, getSessionDetailsApi, sessionListApi, } from '@/api/session'; import { getAuthorization } from '@/utils/auth'; import { queryCanvasList } from '@/api/Agent'; import { getAgentSessionDetailsApi } from '@/api/agentSession'; const sessionDetailList = ref([]); //根据会话id出来的会话详情 const sessionList = ref([]); //会话列表 const modalObj = reactive({ add: false }); const dialogId = ref(''); const chatDis = ref(false); const loading = ref(false); const agentType = ref('1'); const currIndex = ref(0); const displayedText = ref(''); // 正在显示的文字 let timer: number | null = null; const streamStr = ref(''); const inputMsg = ref(''); const activeSessionId = ref(''); const fieldNames = { value: 'id', label: 'name' }; const dialogs = ref([]); const dialogObj = reactive({}); const agentObj = reactive({}); const agentList = ref([]); const selectValue = ref(''); const sectionList = ref({}); const DialogList = async () => { const { code, data } = await getDialogListApi(); if (code === 200) { if (data) { selectValue.value = data[0].id; dialogs.value = data.map((item) => { return { ...item, type: 1, //智能体 }; }); console.log(data, 'dialogs'); queryCanvas(); // querySessionList(); } } }; const queryCanvas = async (params = {}) => { try { const { data } = await queryCanvasList(params); console.log(data, 'agent'); agentList.value = data.map((item) => { return { ...item, name: item.title, type: 2, //agent }; }); // 合并数组 dialogs.value = dialogs.value.concat(agentList.value); // 判断当前是智能体或agent // console.log(val, 'val'); if (dialogs.value.length > 0) { dialogChange(dialogs.value[0].id); } } catch (err) { // you can report use errorHandler or other } finally { } }; const handleShiftEnter = (event) => { event.preventDefault(); inputMsg.value += '\n'; }; const dialogChange = (val) => { // 判断当前是智能体或agent // console.log(val, 'val'); dialogId.value = val; dialogs.value.forEach((item) => { if (item.id === val) { Object.assign(dialogObj, item); } }); console.log(dialogObj.type, 'dialogObj'); if (dialogObj.type == 1) { agentType.value = 1; querySessionList(); } else { agentType.value = 2; queryAgentSessionList(); } // querySessionList(); }; const sentClick = () => { sendMessage('click'); }; const sendMessage = async (event) => { if (event.keyCode == 13 || event === 'click') { if (!event.shiftKey) { //只有enter没有shift,或进行你的其他逻辑 if (event !== 'click') { event.preventDefault(); // 阻止默认行为,即不换行 } chatDis.value = true; loading.value = true; if (!activeSessionId.value) { Message.warning('请选择会话'); chatDis.value = false; loading.value = false; return; } // if (displayedText.value) { // querySessionList(); // } if (inputMsg.value) { sessionDetailList.value.push({ content: inputMsg.value, role: 'user', }); sessionDetailList.value.push({ role: 'last' }); refreshScroll(); const response = await fetch( '/api/tech/cloudminds/query?modeltype=localragflow', { method: 'POST', headers: { 'Authorization': getAuthorization(), 'Content-Type': 'application/json', }, body: JSON.stringify({ conversation_id: activeSessionId.value, messages: inputMsg.value, }), } ); const reader = response?.body ?.pipeThrough(new TextDecoderStream()) .pipeThrough(new EventSourceParserStream()) .getReader(); currIndex.value = 0; while (true) { const x = await reader?.read(); if (x) { const { done, value } = x; console.log(x, 999); try { const val = JSON.parse(value?.data || ''); const d = val?.data; if (typeof d !== 'boolean') { console.info('data:', d); streamStr.value = d.content; startDisplayStr(); } } catch (e) { console.warn(e); } if (done) { console.info('done'); displayedText.value = ''; querySessionDetail(sectionList.value); break; } } } querySessionList(); chatDis.value = false; loading.value = false; inputMsg.value = ''; } else { Message.warning('消息不能为空'); chatDis.value = false; loading.value = false; } } } }; const querySessionDetail = async (session) => { sectionList.value = session; activeSessionId.value = session.id; const { code, data } = await getSessionDetailsApi(session.id); if (code === 200) { sessionDetailList.value = data.message; refreshScroll(); //刷新滚动条位置 } }; const queryAgentSessionDetail = async (id) => { const { code, data } = await getAgentSessionDetailsApi(id); if (code == 0) { Object.assign(agentObj, data); // sessionDetailList.value = data.message; // refreshScroll(); //刷新滚动条位置 } }; const scrollbar = ref(null); const refreshScroll = () => { nextTick(() => { const container = document.getElementById('home'); scrollbar.value.scrollTop(container.scrollHeight); }); }; // 查询会话列表 const querySessionList = async () => { const { code, data } = await sessionListApi(selectValue.value); if (code === 200) { sessionList.value = data; activeSessionId.value = data[0].id; //默认选择第一个 querySessionDetail(data[0]); } else { Message.warning('查询失败'); } }; // 查询会话列表 const queryAgentSessionList = async () => { // const { code, data } = await sessionListApi(selectValue.value); // if (code === 200) { // // } else { // Message.warning('查询失败'); // } queryAgentSessionDetail(selectValue.value); }; //新增会话之后刷新会话列表 const addSession = () => { querySessionList(); }; onMounted(() => { DialogList(); }); const appStore = useAppStore(); const theme = computed(() => { return appStore.theme; }); //文字动态输出 const startDisplayStr = () => { if (timer) { clearTimeout(timer!); } const res = streamStr.value; // 将数组中的字符串拼接起来 if (currIndex.value < res.length) { displayedText.value += res[currIndex.value]; currIndex.value++; setTimeout(startDisplayStr, 100); refreshScroll(); } else { clearTimeout(timer!); timer = null; } }; </script> <style scoped lang="scss"> .isLeftActive { background-color: #ededf5; } .left-list-item { margin-bottom: 2px; } .left-list-item:hover { background-color: #ededf5; } .dark { color: gray !important; } .container { .top-title { line-height: 32px; font-size: 16px; color: #333; } .left-select { :deep(.arco-select-view-single) { border-radius: 5px; } } .center, .right { box-sizing: border-box; height: calc(100vh - 200px); } .left { /* height: calc(100vh - 160px); overflow-y: auto; overflow-x: hidden;*/ border: 0px; .left-list { .item { cursor: pointer; .text, .time { line-height: 30px; } .text { color: black; padding-left: 10px; } .time { color: gray; font-size: 12px; padding-left: 10px; } } } } .card-btn-1 { margin: 8px 15px; width: 100%; border-radius: 5px; } .card-btn-2 { margin: 10px 10px; } .chatItemAnswer { box-sizing: border-box; background: #f1f1f1; border-radius: 14px; .light { box-sizing: border-box; background: #f1f1f1; border-radius: 14px; } } .textItemAnswer { background-color: #373739; } .center { position: relative; .center-title { line-height: 60px; font-size: 25px; font-family: 黑体; color: deepskyblue; } .center-content { font-size: 14px; color: gray; } .center-question { margin-top: 20px; display: flex; justify-content: space-between; .center-question-left { margin-top: 5px; margin-left: 20px; } .center-question-right { margin-right: 20px; } } .center-list { margin-top: 10px; .item { border-radius: 10px; margin-top: 10px; padding: 10px; min-height: 120px; background-color: #e9f3ff; .item-content { color: #666; } .item-title { text-align: center; line-height: 40px; font-size: 20px; font-family: 黑体; color: #333; } } } .chartStart { color: #4955f5; cursor: pointer; font-family: PingFangSC-Medium; font-size: 12px; font-weight: 500; } .chat_bottom { display: flex; align-items: center; .center-bottom { // position: absolute; // width: 90%; // bottom: 20px; // left: 5%; background: #fff; border: 1px solid #00000014; border-radius: 24px; display: flex; flex: 1 1; flex-direction: column; overflow: hidden; position: relative; // padding-top:10px; :deep(.arco-textarea-wrapper) { border-radius: 24px; } .btn-send { position: absolute !important; right: 10px; bottom: 10px; z-index: 10; } :deep(.arco-btn-size-large) { height: 28px; width: 60px; } } :deep(.arco-textarea-wrapper) { padding-top: 5px; } } } .chat-item { padding: 10px 0; .chartUserText { font-weight: 600; font-size: 14px; color: #333; margin-top: 4px; } .icon-user-jpg { border: 1px solid #d9d9d9; } } .right { .right-top { display: flex; justify-content: space-between; .right-title { font-size: 25px; color: black; } .right-btn { position: relative; left: 20px; top: 0px; } } .right-tag { margin-top: 20px; display: flex; justify-content: space-between; flex-wrap: wrap; :deep(.arco-btn-primary) { margin-bottom: 10px !important; &:hover { background-color: #e9f3ff; color: rgb(22, 93, 255); } } } .right-list { .right-item { border-radius: 10px; margin-top: 10px; padding: 10px; min-height: 120px; background-color: #e9f3ff; .item-title { text-align: center; line-height: 40px; font-size: 20px; font-family: 黑体; color: #333; } } } } } </style> src/views/sessionManager/style/layout.css
New file @@ -0,0 +1,2074 @@ .content___r3DRA { flex: 1 1; overflow: auto; padding: var(--gap-max); color: var(--color-text); width: 100%; height: 100% } .content___r3DRA img { width: 100%; height: 100%; max-height: 60vh; object-fit: contain } .content___ZxNf8 { flex: 1 1; overflow: auto; padding: var(--gap-max); color: var(--color-text) } .content___ZxNf8 p { white-space: pre-wrap } .itemPaper___ECUkb { border-radius: calc(var(--border-radius) * 1.5); padding: calc(var(--msh-spacing-unit) * 2); text-decoration: none } .itemPaper___ECUkb .fileIcon___UQWEV { padding: calc(var(--msh-spacing-unit) * 1) } .itemPaper___ECUkb .content___NYWHF { overflow: hidden } .itemPaper___ECUkb .content___NYWHF .caption___GjLgR { min-height: 20px } .itemImage___qpHjD { border-radius: calc(var(--border-radius) * 1.5); text-decoration: none; aspect-ratio: 1.13; width: 100%; position: relative; overflow: hidden } .itemImage___qpHjD .loading___VcXVp { height: 100%; padding-bottom: 34px } .itemImage___qpHjD .loading___VcXVp img { width: 28px; height: 28px } .itemImage___qpHjD img { width: 100%; height: 100%; object-fit: cover } .itemImage___qpHjD .errorMask___clwsW { position: absolute; top: 0; bottom: 0; left: 0; right: 0; z-index: 1; background: var(--msh-chat-input-image-error-bg); opacity: .2 } .itemImage___qpHjD .desc___V50od { position: absolute; bottom: 0; z-index: 2; background: var(--msh-chat-input-image-bg); color: var(--text-secondary); width: 100%; padding: calc(var(--msh-spacing-unit) * 1) calc(var(--msh-spacing-unit) * 2); border-top: 1px solid var(--border-1) } .historyItem___PJP2b { padding: 0 calc(var(--msh-spacing-unit) * 4); width: 100% } .historyItem___PJP2b .groupTitle___irePU { font-weight: 700; padding: calc(var(--msh-spacing-unit) * 2); font-size: 18px; line-height: 24px; margin-bottom: 8px } .historyItem___PJP2b .contentBox___OrRSj { padding: calc(var(--msh-spacing-unit) * 3); cursor: pointer; margin-bottom: calc(var(--msh-spacing-unit) * 2); transition: all var(--animation-duration) var(--animation-transition); border-color: transparent } .historyItem___PJP2b .contentBox___OrRSj em { color: var(--main-1); font-style: normal } .historyItem___PJP2b .contentBox___OrRSj br { display: none } .historyItem___PJP2b .contentBox___OrRSj .contentContainer___hGhn8 { width: 100%; gap: 8px; display: flex; flex-direction: column } .historyItem___PJP2b .contentBox___OrRSj .contentContainer___hGhn8 .titleLine___dwqZt { justify-content: space-between } .historyItem___PJP2b .contentBox___OrRSj .contentContainer___hGhn8 .titleLine___dwqZt .name___OEWak { padding-left: calc(var(--msh-spacing-unit) * .5); display: flex; align-items: center } .historyItem___PJP2b .contentBox___OrRSj .contentContainer___hGhn8 .titleLine___dwqZt .name___OEWak img { width: 20px; height: 20px; border-radius: 100% } .historyItem___PJP2b .contentBox___OrRSj .contentContainer___hGhn8 .titleLine___dwqZt .name___OEWak .defaultIcon___JnlfO { padding-left: 4px; font-size: 14px } .historyItem___PJP2b .contentBox___OrRSj .contentContainer___hGhn8 .titleLine___dwqZt .name___OEWak .nameStr___X0eP7 { margin-left: 4px } .historyItem___PJP2b .contentBox___OrRSj .contentContainer___hGhn8 .titleLine___dwqZt .name___OEWak .tag___BNlec { height: 22px; margin-right: calc(var(--msh-spacing-unit) * 2) } .historyItem___PJP2b .contentBox___OrRSj .contentContainer___hGhn8 .titleLine___dwqZt .searched___jC0Xk { font-weight: 600 } .historyItem___PJP2b .contentBox___OrRSj .contentContainer___hGhn8 .titleLine___dwqZt .time___BiTnc { display: block; flex-shrink: 0; padding-left: calc(var(--msh-spacing-unit) * 1) } .historyItem___PJP2b .contentBox___OrRSj .contentContainer___hGhn8 .titleLine___dwqZt .actions___oPOPx { display: none; padding-left: calc(var(--msh-spacing-unit) * 1) } .historyItem___PJP2b .contentBox___OrRSj .contentContainer___hGhn8 .titleLine___dwqZt .actions___oPOPx .actionBtn___OpJST { width: 20px; height: 20px; display: flex; align-items: center; justify-content: center } .historyItem___PJP2b .contentBox___OrRSj .contentContainer___hGhn8 .titleLine___dwqZt .actions___oPOPx .actionBtn___OpJST .icon___S650t { font-size: 14px } .historyItem___PJP2b .contentBox___OrRSj .contentContainer___hGhn8 .titleLine___dwqZt .actions___oPOPx .actionBtn___OpJST.delBtn___fCUyT { margin-left: calc(var(--msh-spacing-unit) * 2) } .historyItem___PJP2b .contentBox___OrRSj .contentContainer___hGhn8 .titleLine___dwqZt .actions___oPOPx .actionBtn___OpJST.delBtn___fCUyT .icon___S650t { color: var(--error-main) } .historyItem___PJP2b .contentBox___OrRSj .contentContainer___hGhn8 .content___ig5dI { white-space: nowrap; text-overflow: ellipsis; overflow: hidden } .historyItem___PJP2b .contentBox___OrRSj .contentContainer___hGhn8 .content___ig5dI br { display: none } .historyItem___PJP2b .contentBox___OrRSj .contentContainer___hGhn8 .refsWrap___rhysy .refItem___UGGzS { min-width: 140px; max-width: calc(50% - var(--msh-spacing-unit)); flex: 1 1; background-color: transparent; transition: all .3s; border-color: var(--msh-chat-history-item-border) } .historyItem___PJP2b .contentBox___OrRSj .contentContainer___hGhn8 .refsWrap___rhysy .imageItem___G_CuZ { background-color: transparent; transition: all .3s; border-color: var(--msh-chat-history-item-border); width: calc((100% - 16px) / 3) } .historyItem___PJP2b .contentBox___OrRSj:hover { background-color: var(--msh-chat-history-itme-bg); border-color: var(--msh-chat-history-itme-bg); box-shadow: var(--msh-chat-list-file-shadow) } .historyItem___PJP2b .contentBox___OrRSj:hover .contentContainer___hGhn8 .refsWrap___rhysy .refItem___UGGzS,.historyItem___PJP2b .contentBox___OrRSj:hover .contentContainer___hGhn8 .refsWrap___rhysy .imageItem___G_CuZ { border-color: var(--msh-chat-history-item-border) } .historyItem___PJP2b .contentBox___OrRSj:hover .contentContainer___hGhn8 .refsWrap___rhysy .refItem___UGGzS:not(.no-preview):hover,.historyItem___PJP2b .contentBox___OrRSj:hover .contentContainer___hGhn8 .refsWrap___rhysy .imageItem___G_CuZ:not(.no-preview):hover { border-color: var(--msh-chat-history-item-border-hover) } .historyItem___PJP2b .contentBox___OrRSj:hover .contentContainer___hGhn8 .titleLine___dwqZt .time___BiTnc { display: none } .historyItem___PJP2b .contentBox___OrRSj:hover .contentContainer___hGhn8 .titleLine___dwqZt .actions___oPOPx { display: flex } @media (min-width: 600px) { .historyItem___PJP2b .groupTitle___irePU { font-size:24px; line-height: 34px } .historyItem___PJP2b .contentBox___OrRSj .contentContainer___hGhn8 .refsWrap___rhysy .imageItem___G_CuZ { width: calc((100% - 32px)/5); max-width: calc((100% - 32px)/5); min-width: calc((100% - 32px)/5) } } .historyModal___qTQKs { display: none } .historyModal___qTQKs.show___WthR7 { display: block } .historyModal___qTQKs .mark___l6N_v { min-width: 375px; overflow-x: auto; position: fixed; top: 0; width: 100%; height: 100%; bottom: 0; left: 0; right: 0; z-index: 1000; background: var(--msh-chat-history-bg); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px) } .historyModal___qTQKs .closeBtn___oHhJS { position: fixed; top: calc(var(--msh-spacing-unit) * 2); left: calc(var(--msh-spacing-unit) * 5); background: var(--msh-chat-history-close-bg); z-index: 1050 } .historyModal___qTQKs .closeBtn___oHhJS:hover { background: var(--msh-chat-history-close-bg-hover) } .historyModal___qTQKs .closeBtn___oHhJS .icon___AKlK1 { font-size: 24px; color: var(--msh-chat-history-btn-color) } .historyContainer___SeB_t { position: absolute; top: 0; width: 100%; height: 100%; min-width: 375px; overflow-x: auto; z-index: 1010 } .historyContainer___SeB_t .chatHistory___EbmZH { overflow: auto } .historyContainer___SeB_t .chatHistory___EbmZH .deleteArea___o72HN { position: fixed; top: 20px; right: 20px; z-index: 9999 } .historyContainer___SeB_t .chatHistory___EbmZH .historyTitle___F_iam { font-weight: 700; text-align: center; padding: calc(var(--msh-spacing-unit) * 4) 0; font-size: 24px; line-height: 24px } .historyContainer___SeB_t .chatHistory___EbmZH .itemContainer___V43GG { margin: 0 auto; max-width: 792px } .historyContainer___SeB_t .chatHistory___EbmZH .itemContainer___V43GG .checkbox___LhI_V { padding-bottom: 20px; margin-top: auto } .historyContainer___SeB_t .chatHistory___EbmZH .itemContainer___V43GG .deleteMode___F_6zf { pointer-events: none } .historyContainer___SeB_t .chatHistory___EbmZH .deleteContainer___jizy_ { cursor: pointer } .historyContainer___SeB_t .chatHistory___EbmZH .placeholder___DAy06 { height: 76px } .historyContainer___SeB_t .chatHistory___EbmZH .outContainer___TvUCY { display: flex; justify-content: center; width: 100%; margin: 0 auto 24px; padding: 12px calc(var(--msh-spacing-unit)*4) 0 } .historyContainer___SeB_t .chatHistory___EbmZH .sticky___gC2M6 { position: absolute; top: 0; right: 2px; z-index: 20; background: var(--msh-chat-history-bg); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px) } .historyContainer___SeB_t .chatHistory___EbmZH .sticky___gC2M6 .inputContainer___EVl6c { padding: 8px 16px } .historyContainer___SeB_t .chatHistory___EbmZH .sticky___gC2M6 .inputContainer___EVl6c .closeArea___rNugK { height: 40px } .historyContainer___SeB_t .chatHistory___EbmZH .inputContainer___EVl6c { position: relative; display: flex; max-width: 760px; width: 100%; background: var(--msh-chat-input-inner); border: 1px solid var(--msh-chat-input-border); padding: 16px; border-radius: 12px; font-size: 14px; line-height: 20px; color: var(--text-primary) } .historyContainer___SeB_t .chatHistory___EbmZH .inputContainer___EVl6c .closeArea___rNugK { position: absolute; width: 40px; height: 56px; right: 0; top: 0; display: flex; justify-content: center; align-items: center; cursor: pointer } .historyContainer___SeB_t .chatHistory___EbmZH .inputContainer___EVl6c .icon___AKlK1 { font-size: 16px; margin-right: 8px } .historyContainer___SeB_t .chatHistory___EbmZH .inputContainer___EVl6c input { border: none; background: var(--msh-chat-input-inner); width: 100%; font-size: 14px; line-height: 20px; color: var(--text-primary) } .historyContainer___SeB_t .chatHistory___EbmZH .inputContainer___EVl6c input:focus { outline: none } .historyContainer___SeB_t .chatHistory___EbmZH .historyMain___ZQw_i { height: calc(100% - 160px) } .historyContainer___SeB_t .chatHistory___EbmZH .empty___mksck { display: flex; height: 100%; flex-direction: column; align-items: center; justify-content: center } .historyContainer___SeB_t .chatHistory___EbmZH .empty___mksck .button___cKTA9 { margin: 24px 0 48px; width: 200px } @media (min-width: 600px) { .historyContainer___SeB_t .chatHistory___EbmZH .historyTitle___F_iam { font-size:36px; line-height: 50px } } .helperText___Fa_zw { position: absolute; bottom: -20px; left: var(--msh-spacing-unit); margin: 0 } .TargetBox___wtHL5 { padding: 0; margin: 0; text-align: center; position: absolute; top: 0; left: 0; width: 100%; height: 100%; min-width: 375px; min-height: 460px; display: none } .TargetBox___wtHL5.DropBox____hfLi { z-index: 999; display: block; backdrop-filter: blur(25px); -webkit-backdrop-filter: blur(25px); padding: 40px 30px } .TargetBox___wtHL5 .inner___lep5B { height: 100%; width: 100%; padding: 16px; display: flex; justify-content: center; align-items: center; border-radius: 30px; border: 3px dashed var(--border-2) } .TargetBox___wtHL5 .drop_area___MA23Y { display: flex; justify-content: center; align-items: center; flex-direction: column; gap: 30px; max-width: 635px } .TargetBox___wtHL5 .drop_area___MA23Y img { width: 126px } .TargetBox___wtHL5 .drop_area___MA23Y .title___qtFnk { font-size: 32px; line-height: 40px; font-weight: 700; color: var(--text-primary) } .TargetBox___wtHL5 .drop_area___MA23Y .desc___XjcGo { font-size: 20px; line-height: 28px; color: var(--text-secondary) } .login-pop-layout { height: 140px; padding-top: 28px } .login-pop-layout_writer { margin: 0; height: 42px; line-height: 42px } .login-pop-layout_writer span { font-size: 30px } @media (max-width: 600px) { .login-pop-layout { height:84px; padding-top: 13px } .login-pop-layout_writer { height: 29px; line-height: 29px } .login-pop-layout_writer span { font-size: 24px } } .authContainer___sdOFY { min-width: 375px } .authContainer___sdOFY .header___zjsk2 { height: 68px } .authContainer___sdOFY .container___pA0Wc { padding: 0 calc(var(--msh-spacing-unit) * 4); flex: 1 1 } .authContainer___sdOFY .container___pA0Wc .content___XV6w1 { max-width: 636px; width: 100%; overflow: hidden; border-radius: calc(var(--border-radius) * 2.5); border: 1px solid var(--border-1) } .authContainer___sdOFY .container___pA0Wc .content___XV6w1 .top___N9wca { height: 84px; background: var(--msh-chat-login-content-top-bg) } .authContainer___sdOFY .container___pA0Wc .content___XV6w1 .top___N9wca .textBox___L34Ov { position: relative; top: 4px; font-size: 24px; line-height: 28px; font-weight: 700 } .authContainer___sdOFY .footer___LOQIe { height: 56px } @media (min-width: 600px) { .authContainer___sdOFY .container___pA0Wc .content___XV6w1 .top___N9wca { height:128px } .authContainer___sdOFY .container___pA0Wc .content___XV6w1 .top___N9wca .textBox___L34Ov { font-size: 32px; line-height: 48px } } .phoneLogin___SacG7 { min-height: 230px } .phoneLogin___SacG7 .loginLayout___K4i5U { display: flex; flex-direction: row } .phoneLogin___SacG7 .loginLayout___K4i5U .loginLayoutLeft___fUj6Z { flex: 1 1 } .phoneLogin___SacG7 .loginLayout___K4i5U .loginLayoutRight___crLwH { width: 174px; height: 260px; border-left: 1px solid var(--border-main); margin-left: 24px; padding-left: 24px } .phoneLogin___SacG7 .loginLayout___K4i5U .loginLayoutRight___crLwH .loginLayoutRightTitle___DdOwK { font-size: 16px; font-weight: bolder; margin: 0; padding: 0; line-height: 25px } .phoneLogin___SacG7 .loginLayout___K4i5U .loginLayoutRight___crLwH .loginLayoutRightQR___NfrMC { margin-top: 23px } .phoneLogin___SacG7 .controlLayout___dgRlA { display: flex; justify-content: center; margin-top: 24px } .phoneLogin___SacG7 .controlLayout___dgRlA a { font-weight: 700 } .phoneLogin___SacG7 .lable___VHyw6 { margin-bottom: 24px } .phoneLogin___SacG7 .lable___VHyw6 span { font-size: var(--font-size-md); font-weight: 700 } .phoneLogin___SacG7 .item___rJfSj { position: relative } .phoneLogin___SacG7 .itemHelper___DbmPN { height: 20px; margin-bottom: 4px } .phoneLogin___SacG7 .verify___P7vR9 { flex-shrink: 0; display: flex; align-items: center; width: 102px; height: 25px } .phoneLogin___SacG7 .verify___P7vR9 .divider___iCjot { height: 12px } .phoneLogin___SacG7 .agreeText___EUMp4 { font-size: 12px; color: var(--text-secondary) } .phoneLogin___SacG7 .checkbox___K3VQG { padding: calc(var(--msh-spacing-unit) * .5); margin-right: var(--msh-spacing-unit) } .phoneLogin___SacG7 .checkbox___K3VQG:not(.checked___Vjy9T) { color: var(--text-secondary) } .phoneLogin___SacG7 .checkbox___K3VQG .MuiSvgIcon-root { font-size: 20px } @media (min-width: 600px) { .phoneLogin___SacG7 { min-height:335px } .phoneLogin___SacG7 .verify___P7vR9 { width: 112px; height: 25px } .phoneLogin___SacG7 .verify___P7vR9 .divider___iCjot { height: 20px } .phoneLogin___SacG7 .agreeText___EUMp4 { font-size: 14px } } .geetest_captcha .geetest_box,.geetest_captcha .geetest_header,.geetest_captcha .geetest_container,.geetest_captcha .geetest_footer { background: var(--msh-paper-bg) } .geetest_captcha .geetest_backimg>div { transition: all .3s!important } .geetest_captcha .geetest_header .geetest_title { color: var(--text-primary)!important } .geetest_captcha .geetest_header .geetest_status_bar { background-color: var(--primary-main)!important } .geetest_captcha .geetest_btn { background-color: var(--primary-main)!important; background-image: none!important } .geetest_captcha .geetest_footer_right { display: none } .geetest_captcha .geetest_feedback { display: none!important } .qrcodeLogin___SyLo_ .agreementLink___edm8P { font-family: PingFang SC; font-weight: 600; line-height: 20px; letter-spacing: 0em; color: #333a4b } .qrcodeLogin___SyLo_ a { text-decoration: underline } .qrcodeLogin___SyLo_ iframe { height: 280px } .qrcodeLogin___SyLo_ .loginContainer___IFXUE { height: 260px; text-align: center } @media (min-width: 600px) { .qrcodeLogin___SyLo_ { position:relative } .qrcodeLogin___SyLo_ iframe { height: 230px; transform: scale(.75); left: -74px; top: -17px; position: absolute } } .qrcodeLayout___EPXGC { border: 1px solid #e2e2e2; width: 150px; height: 150px; background-color: #fff; margin: 0; display: flex; justify-content: center; align-items: center } .qrcodeLayout___EPXGC svg,.qrcodeLayout___EPXGC img { padding: 0 } .miniprogram___Tq8lH { min-height: 276px } .miniprogram___Tq8lH .qrcode___COQ_n { padding: 4px; border-radius: var(--lg, 16px); background: #FFF } .miniprogram___Tq8lH .text___PTnsz { color: var(--text-secondary) } .miniprogram___Tq8lH .button___UpYHJ { padding: 8px; margin: 9px auto 0; width: 100%; text-transform: none } .loginContainer___SoCmh .title___n_X10 { font-size: var(--font-size-md); font-weight: var(--font-bold); margin-bottom: 24px } .authModal___AXYNS { position: fixed; top: 0; bottom: 0; left: 0; right: 0; z-index: 1050; background: rgba(255,0,0,.034); min-width: 375px; background: var(--msh-modal-bg); backdrop-filter: blur(15px); -webkit-backdrop-filter: blur(15px) } .authModal___AXYNS .header___LrmZG { height: 68px } .authModal___AXYNS .container___HvNfq { padding: 0 calc(var(--msh-spacing-unit) * 4); flex: 1 1 } .authModal___AXYNS .container___HvNfq .content___axoSN { max-width: 636px; width: 100%; overflow: hidden; border-radius: calc(var(--border-radius) * 2.5); border: 1px solid var(--border-1) } .authModal___AXYNS .container___HvNfq .content___axoSN .top___IIjeE { height: 84px; background: var(--msh-chat-login-content-top-bg); padding: 0 0 0 16px } .authModal___AXYNS .container___HvNfq .content___axoSN .top___IIjeE.dark___u9VpT { background: var(--msh-chat-login-content-top-bg) url(./static/top_bg_dark.b4029bd6.png) no-repeat right center / 107% auto } .authModal___AXYNS .container___HvNfq .content___axoSN .top___IIjeE.light___MyIl_ { background: var(--msh-chat-login-content-top-bg) url(./static/top_bg_light.ba34373a.png) no-repeat right center / 107% auto } .authModal___AXYNS .container___HvNfq .content___axoSN .top___IIjeE .textBox___QemLf { position: relative; font-size: 24px; line-height: 28px; font-weight: 700 } .authModal___AXYNS .container___HvNfq .content___axoSN .loginContent___Oy5xD { padding: calc(var(--msh-spacing-unit) * 4) calc(var(--msh-spacing-unit) * 4) calc(var(--msh-spacing-unit) * 8) } .authModal___AXYNS .footer___Quejz { height: 56px } @media (min-width: 600px) { .authModal___AXYNS .container___HvNfq .content___axoSN .top___IIjeE { height:140px; padding: 0 0 0 32px } .authModal___AXYNS .container___HvNfq .content___axoSN .top___IIjeE .textBox___QemLf { font-size: 32px; line-height: 48px } .authModal___AXYNS .container___HvNfq .content___axoSN .loginContent___Oy5xD { padding: calc(var(--msh-spacing-unit) * 6 - 1px) calc(var(--msh-spacing-unit) * 10) calc(var(--msh-spacing-unit) * 8) } } .concurrentTip___tAc_q { width: 100vw; height: 56px; padding: calc(var(--msh-spacing-unit) * 2); color: var(--text-primary); background: var(--msh-chat-hard-tip-bg); display: flex; justify-content: space-between; align-items: center; line-height: 1.2; text-align: center; position: relative; z-index: 1000 } .concurrentTip___tAc_q .placehokder___eTr1A { width: 24px } .concurrentTip___tAc_q .icon___q_Mc6 { font-size: 24px; cursor: pointer } @media (min-width: 600px) { .concurrentTip___tAc_q { height:36px } } .back___uyBkH { position: absolute; z-index: 3 } .back-button___X1mhz { width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: #ffffff; box-shadow: 0 0 16px 1px #0000001f; cursor: pointer } .svg____hjRy { user-select: none; display: inline-block; fill: currentColor; vertical-align: middle; flex-shrink: 0; transition: fill .2s cubic-bezier(.4,0,.2,1) 0ms; font-size: 24px; color: #000 } .isDone___a6OpJ { top: 10px; left: 20px } .notDone___sLy_H { top: 40px; left: 60px } .noteCover___fbx0j { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: #00000073; z-index: 1 } .noteContainer___zTufb { position: absolute; top: 50%; left: 50%; z-index: 2; transform: translate(-50%,-50%); width: 360px; padding: 24px; font-size: 14px; line-height: 1.5715; word-wrap: break-word; background-color: #fff; border-radius: 16px; display: flex; flex-direction: column; gap: 12px; color: #141414; box-shadow: 0 3px 6px -4px #0000001f,0 6px 16px #00000014,0 9px 28px 8px #0000000d } .title___uwQTm { font-weight: 600; font-size: 16px } .titleContainer___NXjcT { display: flex; gap: 12px; align-items: center; margin-bottom: 12px; flex-wrap: nowrap } .note___xqq01 { font-size: 20px; color: inherit; user-select: none; width: 1em; height: 1em; display: inline-block; fill: currentColor; vertical-align: middle; flex-shrink: 0; transition: fill .2s cubic-bezier(.4,0,.2,1) 0ms; outline: none } .content___PkM0Z { padding-left: 34px; margin-bottom: 28px } .buttonContainer___V7PpB { display: flex; align-items: center; justify-content: flex-end; gap: 12px } .wait___lKMrO { height: 30px; width: 86px; padding: 4px 15px; border-radius: 4px; border-color: #9c5eff; background: #9c5eff } .wait___lKMrO:hover { color: #fff!important; border-color: #9c5eff!important; background: #9c5eff!important } .escape___eBuxJ { height: 30px; width: 86px; padding: 4px 15px; border-radius: 4px; border-color: #8c8c8c; color: #8c8c8c; background-color: #fff } .escape___eBuxJ:hover { border-color: #8c8c8c!important; color: #8c8c8c!important; background: #fff!important } .AiPPTContainer____jYnI { position: fixed; left: 0; top: 0; width: 100%; height: 100%; z-index: 10 } .previewImg___dv1wT { width: 100%; object-fit: contain; border-radius: 15px; overflow: hidden; aspect-ratio: 16/9 } .selectTemplateBtn___I5qZU { background: linear-gradient(277.33deg,#8948EB 8.02%,#9D5EFB 87.79%); border: 1px solid #B182F7CC; height: 38px; padding: 8px 15px; gap: 4px; border-radius: 10px; font-family: PingFang SC; font-size: 14px; font-weight: 400; line-height: 20px; letter-spacing: .25px; text-align: left; color: #f5f9fff2; transition: all var(--animation-duration) var(--animation-timing-function) } .selectTemplateBtn___I5qZU:hover { opacity: .6 } .AiPPT___LEp5b { width: 100%; height: 100% } .contentContainer___Ip8di { display: flex; flex-direction: column; gap: 8px } .buttonContainer___njQSq { display: flex; gap: 8px } .downloadButton___i0R3X { min-width: 88px; padding: 10px 15px; font-family: PingFang SC; font-size: 14px; font-weight: 400; line-height: 20px; letter-spacing: .25px; text-align: center; box-sizing: border-box } .selectTemplateIcon___ySbP9 { font-size: 20px } .canPreviewPPT___HMyMX { cursor: pointer } .idn___ei_6X { width: 144px; height: 60px; background-color: #fff; position: fixed; top: 0; left: 0 } .globalCoverContainer___xppUn { position: fixed; z-index: 1200 } .myAgentAnim .myAgentBoxHide { height: 0; opacity: 0; animation: hides .2s ease 1; margin-bottom: 0 } @keyframes hides { 0% { height: 40px; margin-bottom: 12px; opacity: 1 } 50% { opacity: 0 } to { height: 0; opacity: 0; margin-bottom: 0 } } .login____RTRY { width: 40px; height: 40px; font-size: 16px; font-weight: 700; border-radius: 50%; background-color: var(--msh-chat-avatar-me-bg); color: var(--common-white) } .img____tAMC { width: 40px; height: 40px; border-radius: 50%; overflow: hidden } .rightLogin___zH_dI { position: absolute; top: calc(var(--msh-spacing-unit) * 2); right: calc(var(--msh-spacing-unit) * 5); cursor: pointer } .user___ias7U { font-size: 16px; font-weight: 700; border-radius: 50%; background-color: var(--msh-chat-avatar-me-bg); color: var(--common-white) } .container___vDmoU .title___OAgk1 { display: flex; justify-content: space-between; align-items: center } .container___vDmoU .input___OqEA0 { margin-top: 16px } .container___vDmoU .input___OqEA0 .MuiInputBase-input { font-size: 14px } .container___vDmoU .rates___ZMsXL .rate___CJOsg { padding: calc(2 * var(--msh-spacing-unit)); border-radius: 8px; background: var(--msh-chat-fb-rate-bg); cursor: pointer; transition: all .3s } .container___vDmoU .rates___ZMsXL .rate___CJOsg.select___jH0fx { background: var(--primary-main) } .container___vDmoU .rates___ZMsXL .rate___CJOsg .icon___bgc06 { width: 28px; height: 28px; background-size: 100% 100%; margin: 0 auto } .container___vDmoU .footer___pcgJU { display: flex; justify-content: flex-end; gap: 8px } .avatarWidget___es3ap { color: var(--msh-chat-history-btn-color) } .avatarMenu___AvTWm { position: absolute; left: 52px } .avatarMenu___AvTWm .MuiMenuItem-root { height: 44px; padding: 16px 8px; gap: 16px } .avatarMenu___AvTWm .MuiMenu-list { width: 138px; padding-top: 0!important; padding-bottom: 0!important; border-radius: 8px } .modalContainer___r5ELB { position: absolute; bottom: -78px; left: 64px; width: 324px; padding: 20px; border: 1px solid var(--msh-chat-user-guide-border); border-radius: 12px; background: var(--msh-chat-user-guide-background); display: flex; gap: 8px; flex-direction: column; box-shadow: 0 8px 25px #0000000d; z-index: 1; transition: all var(--animation-duration) var(--animation-transition) } .title___JHNgc { font-size: 16px; font-weight: 600; line-height: 28px; text-align: left } .contentContainer___upoSi { display: flex; flex-wrap: wrap; justify-content: space-between; height: 100%; gap: 8px; cursor: pointer } .img___w6qsW { cursor: default; width: 40px!important; height: 40px!important } .content___fRrYf { width: 129px; height: 40px; display: flex; justify-content: flex-start; align-items: center; gap: 4px } .content___fRrYf>div { font-size: 14px; font-weight: 600; line-height: 20px; letter-spacing: .25px; text-align: left } .visible___E55gr { opacity: 1 } .hide___uahw2 { opacity: 0; pointer-events: none } .loginButton___3vHl4 { font-size: 16px; margin-top: 6px; padding: 6px 24px } .myAgent___djnd_ { width: 60px; display: flex; background-color: var(--color-bg-1); flex-direction: column; align-items: center; padding: 14px 0 1px; border-radius: 12px; transition: all .3s ease; box-shadow: 0 3px 6px -4px #0000001f,0 6px 16px #00000014,0 9px 28px 8px #0000000d; transform: all ease .3s } .myAgent___djnd_.en___Q96DA .myAgentHome___PG6IZ:after { content: "Go Back" } .myAgent___djnd_.en___Q96DA .myAgentTool___Y1_mC .myAgentToolIconNew___DBZrW:after { content: "New Chat" } .myAgent___djnd_.en___Q96DA .myAgentTool___Y1_mC .myAgentToolIconHistory___GTLWk:after { content: "History" } .myAgent___djnd_.en___Q96DA .myAgentTool___Y1_mC .myAgentToolIconSquare___Rj1o_:after { content: "Kimi+" } .myAgent___djnd_ .myAgenetPreload___BWFdc { width: 0; height: 0; overflow: hidden } .myAgent___djnd_ .myAgentHome___PG6IZ:after { width: 73px; height: 28px; line-height: 28px; text-align: center; content: "\56de\5230\9996\9875"; position: absolute; left: 64px; display: none; font-size: 14px; letter-spacing: .25px; background: #010101; border-radius: 8px; animation: show___PuZhP .3s ease 1; color: #f5f9fff2; margin-top: 2px } .myAgent___djnd_ .myAgentHome___PG6IZ { width: 32px; height: 32px; background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABhCAYAAAApxKSdAAAACXBIWXMAACE4AAAhOAFFljFgAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAUUSURBVHgB7Z29bhtHFIWPHQN2J7lKqnhYpYvpIukCbJEAKQJEegLReYFIT0DrCSI9QEDqCSIDaQIEIOukiJwyza5SJWlId3FFz+HuGmuSSw6p+dlZ3g84luhdUeI9M3fmziyXgBCUe/DHYY0Wj/tgWmjV42zFcWe4MIBBPNJ6qqW0uvAbXFvQgKzQK62bQhkaCIPc10q1Zi3XH1o/IG9cwUm0RogrgDY1KmLgHYX9DvyiBvDYI77XmiD+oLlQHw7hIDoCMBOt1U9w0BsU9mOAtaUUFk3oQoIfzAQFCf5dNMEdTFCQ4NtQih1NSIGgf3ibxOJt5UrAB1gNK72vIdjiI61HWr+YnNxDXK0rJiULsV65GJeiIescLSTTeobKSutiCuojX8kU3MBx4I3WeNVBBRl4fWiCyoB8v2JAAkk9PmDwT8sH1TEghRjgC27scCx41wO43KAg+ILxTvhNaUACwTc04Z0B30LwzTzm5Rjw3sgseIG1wGMawMBPIOQcqvzrNIMHOg9Q5KK953O90/rFC+BhJRH8PQZ+fu7SjC7HAIV95yu99vjlxfvBJx8nwHd6IfNJAkccOjHg6OgIs9lsra6vr2GTNE03/k7q8HAhyJ/2gM9O65/4kT7/mwEcoZwYsPQiV3BwcABb9Ho9KKU2njccDjGdLlxx+InBBPBAAR86ydRPaIC9SASi3+8bnXd+fr78nw8NJ39uDJjXAVFPP7dp/VmWLR9g6w6Huo/IOTk5MTpvZesn/93AiP/dXCwd9SyILT9Jko3n1bZ+8s8rGPGvoVHbEXcPMM39V1dX9Qd/19PPNxta959D4HUGF0RrAFs/8/8mxuPxXLUwtfx2WX+cxdivZ3DFA0SKldZPuPTAKrikbOlMOX+9zFu/Q2iAQoSY5H7mfeb/tXCT8MdneU9wNNCuQUXZA0ynnrUznyqOcrspUY4BJunHqPU3gOgMsNr6G0B0BpgUXrG0fhKVAaaF1/HxMWIhKgNMcj9Tz82Nk6rVGdav/tJ5eraJ0Wi01XPq1r/xOS8uLkJc6XYnRTMNXdf62eIvLy+jyftVghnQ7Xahe8FW59fBTRYOzosDNI1hJdz0lBQkBflkMBjMU5iL13pXRb8fYAJrB/a2db0oFHthAOEUliaYFHE+aaUBdZsvvFhApyM0idYZwOCvW4JmIWdSzPmidQaYrAGZ7iX4oFUGnJ2dGdUCTRqMozeANQCLsE6nA10JG/0Mx4KmDMbBCjEWR2yxu8LAM98vXelmCA2ovVLCI8EMYODWbpbvCXtTBzQVMSAwYkBgxIDAtNKAXWdGIRADAiMpKDA0IIMQikx6QGDEgMCIAYGRMSAsMgaEhgbcQgjFa+kBYZnIGBCWWzEgLPNBOJ6Fk/aR8Y5ZCvktKwX/PJZ7xoVjfs+4chYU11tK2sE85qUBLyH4Zh5z6QHhGPOf6r2j+TEbcgdFP2RaHX5TrYQlDflj5RXE5Q1cG/lWnhYpReUGKdUewGnRmhvnCJbgmxey8sHiZ8iwF3AsUBBckKHI/SWLq6HsBc8huML4DiK80D6WnBqLzN68UFCmopheYJOVYgcU5FOVbAVfYUcUZGoaLPglCtITdg2+tZUFBTFh2+ArWEYh/7z0WIIQSiM43lt5AWAmWhLHylN4QmkNEXfAbGqEQKsHSfHLYwiSq8AnaAAKeaW3D8VbijwNW5nh3IN9FPI/jnpaPKZi2/SfFuJu4W3x9RqWL+N5C+7ruKpBAgLkAAAAAElFTkSuQmCC) no-repeat; background-size: 100% 100%; cursor: pointer; margin-bottom: 16px } .myAgent___djnd_ .myAgentHome___PG6IZ:hover:after { display: block } .myAgent___djnd_ .myAgentHome___PG6IZ img { width: 100% } .myAgentLine___Isl6E { width: 24px; height: 1px; background-color: #ece7e7; border-radius: 12px; margin-bottom: 16px; cursor: pointer } .myAgent___djnd_ .myAgentLine0___AeBRd { margin-top: 8px } .myAgent___djnd_ .myAgentTool___Y1_mC { width: 40px; height: 40px; border-radius: 12px; margin-bottom: 10px; cursor: pointer } .myAgent___djnd_ .myAgentTool___Y1_mC .myAgentToolIcon___gaAKI { width: 40px; height: 40px; background-position: 0px 0px; background-repeat: no-repeat; cursor: pointer; position: relative } .myAgent___djnd_ .myAgentTool___Y1_mC .myAgentToolIcon___gaAKI img { position: absolute; top: 8px; left: 8px; opacity: 0 } .myAgentToolIcon___gaAKI:hover{ background-color: #f0f0f0; border-radius: 12px; } .myAgent___djnd_ .myAgentTool___Y1_mC .myAgentToolIconNew___DBZrW:after { width: 87px; height: 28px; line-height: 28px; text-align: center; content: "\5f00\542f\65b0\4f1a\8bdd"; position: absolute; left: 54px; display: none; font-size: 14px; letter-spacing: .25px; background: #010101; border-radius: 8px; animation: show___PuZhP .3s ease 1; color: #f5f9fff2; margin-top: 6px } .myAgent___djnd_ .myAgentTool___Y1_mC .myAgentToolIconNew___DBZrW { background-size: 24px; background-image: url(./../../../assets/images/talk.svg); background-position: 8px 8px; color: var(--color-text-1) } .myAgent___djnd_ .myAgentTool___Y1_mC .myAgentToolIconNew___DBZrW:hover { background-image: none } .myAgent___djnd_ .myAgentTool___Y1_mC .myAgentToolIconNew___DBZrW:hover:after { display: block } .myAgent___djnd_ .myAgentTool___Y1_mC .myAgentToolIconNew___DBZrW:hover img { opacity: 1 } .myAgent___djnd_ .myAgentTool___Y1_mC .myAgentToolIconHistory___GTLWk:after { width: 73px; height: 28px; line-height: 28px; text-align: center; content: "\5386\53f2\4f1a\8bdd"; position: absolute; left: 54px; display: none; font-size: 14px; letter-spacing: .25px; background: #010101; border-radius: 8px; animation: show___PuZhP .3s ease 1; color: #f5f9fff2; margin-top: 6px } .myAgent___djnd_ .myAgentTool___Y1_mC .myAgentToolIconHistory___GTLWk { background-size: 24px; background-image: url(./../../../assets/images/historybg.svg); background-position: 8px 8px; color: var(--color-text-1) } .myAgent___djnd_ .myAgentTool___Y1_mC .myAgentToolIconHistory___GTLWk:hover { background-image: none; } .myAgent___djnd_ .myAgentTool___Y1_mC .myAgentToolIconHistory___GTLWk:hover:after { display: block } .myAgent___djnd_ .myAgentTool___Y1_mC .myAgentToolIconHistory___GTLWk:hover img { opacity: 1; } .myAgent___djnd_ .myAgentTool___Y1_mC .myAgentToolIconSquare___Rj1o_:after { width: 58px; height: 28px; line-height: 28px; text-align: center; content: "Kimi+"; position: absolute; left: 54px; display: none; font-size: 14px; letter-spacing: .25px; background: #010101; border-radius: 8px; animation: show___PuZhP .3s ease 1; color: #f5f9fff2; margin-top: 6px; z-index: 1 } .myAgent___djnd_ .myAgentTool___Y1_mC .myAgentToolIconSquare___Rj1o_ { background-size: 24px; background-image: url(./../../../assets/images/agent.svg); background-position: 8px 8px; color: var(--color-text-1) } .myAgent___djnd_ .myAgentTool___Y1_mC .myAgentToolIconSquare___Rj1o_:hover { background-image: none; color: var(--msh-chat-icon-color) } .myAgent___djnd_ .myAgentTool___Y1_mC .myAgentToolIconSquare___Rj1o_:hover:after { display: block } .myAgent___djnd_ .myAgentTool___Y1_mC .myAgentToolIconSquare___Rj1o_:hover img { opacity: 1 } .myAgent___djnd_ .myAgentToolSquare___dbLm1 { margin-bottom: 16px } .myAgent___djnd_ .myAgentTool___Y1_mC:hover { background-color: var(--nav-bg) } .myAgent___djnd_ .myAgentBox___zrCit { width: 32px; height: 32px; margin-bottom: 12px; cursor: pointer; display: flex; justify-content: center; align-items: center; animation: show___PuZhP .35s cubic-bezier(.4,0,.2,1) 1,apper___Fwe2E .15s cubic-bezier(.4,0,.2,1) 1; transform: all cubic-bezier(.4,0,.2,1) .3s; position: relative } .myAgent___djnd_ .myAgentBox___zrCit .myAgentBoxImg___Mgu9e { width: 100%; height: 100%; transition: all .15s; position: relative } .myAgent___djnd_ .myAgentBox___zrCit .myAgentBoxImg___Mgu9e .myAgentBoxImgLayout___u69B_ { position: relative } .myAgent___djnd_ .myAgentBox___zrCit .myAgentBoxImg___Mgu9e .myAgentBoxImgLayout___u69B_ div { width: 100%; height: 100% } .myAgent___djnd_ .myAgentBox___zrCit .myAgentBoxImg___Mgu9e .myAgentBoxImgLayout___u69B_ .myAgentBoxImgLayoutTip___xHV4m { border-radius: 8px; border: .5px solid #13131A; height: 28px; line-height: 28px; background: #010101; font-size: 14px; color: #fff; transform: scale(.8)!important; transform-origin: 0 50%; padding: 0 8px; position: absolute; left: 44px; top: 2px; white-space: nowrap; display: none; animation: show___PuZhP .25s ease 1 } .myAgent___djnd_ .myAgentBox___zrCit .myAgentBoxImg___Mgu9e .myAgentBoxImgLayout___u69B_ img { width: 100%; height: 100%; border-radius: 32px; transition: all .15s } .myAgent___djnd_ .myAgentBox___zrCit .myAgentBoxImg___Mgu9e .myAgentBoxImgLayout___u69B_:hover .myAgentBoxImgLayoutTip___xHV4m { display: block } .myAgent___djnd_ .myAgentBox___zrCit .myAgentBoxImg___Mgu9e .myAgentBoxImgDelete___qXZuq { width: 9.6px; height: 9.6px; background-color: #ed4245; border-radius: 100%; position: absolute; right: -2px; bottom: -2px; border: 2px solid var(--fill-9); box-sizing: content-box; transition: opacity .15s; opacity: 0 } .myAgent___djnd_ .myAgentBox___zrCit .myAgentBoxImg___Mgu9e .myAgentBoxImgDelete___qXZuq .myAgentBoxImgDeleteInner____Hawc { border-radius: 8px; border: .5px solid #13131A; width: 102px; height: 28px; text-align: center; line-height: 28px; background: #010101; font-size: 14px; color: #fff; transform: scale(.8)!important; position: absolute; left: 11px; top: -21px; display: none; animation: show___PuZhP .35s ease 1 } .myAgent___djnd_ .myAgentBox___zrCit .myAgentBoxImg___Mgu9e .myAgentBoxImgDelete___qXZuq:after { display: block; content: ""; width: 6.4px; height: 1.6px; background: #fff; border-radius: 2px; position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%) } .myAgent___djnd_ .myAgentBox___zrCit .myAgentBoxImg___Mgu9e .myAgentBoxImgDelete___qXZuq:hover .myAgentBoxImgDeleteInner____Hawc { display: block } .myAgent___djnd_ .myAgentBox___zrCit .myAgentBoxImg___Mgu9e:hover { transform: scale(1.25) } .myAgent___djnd_ .myAgentBox___zrCit .myAgentBoxImg___Mgu9e:hover img { border-radius: 10px!important } .myAgent___djnd_ .myAgentBox___zrCit .myAgentBoxImg___Mgu9e:hover+.myAgentBoxName___mZ6v6 { display: block } .myAgent___djnd_ .myAgentBox___zrCit .myAgentBoxImg___Mgu9e:hover .myAgentBoxImgDelete___qXZuq { opacity: 1 } .myAgent___djnd_ .myAgentBox___zrCit .myAgentBoxName___mZ6v6 { position: absolute; width: auto; white-space: nowrap; left: 50px; top: 50%; transform: translateY(-50%); font-size: 14px; letter-spacing: .25px; background: #010101; border-radius: 8px; animation: show___PuZhP .3s ease 1; color: #f5f9fff2; padding: 4px 8px; z-index: 100; display: none } .myAgent___djnd_ .myAgentHead___WYY8b { width: 40px; height: 40px; position: relative; transform: scale(.8) } .myAgent___djnd_ .myAgentHead___WYY8b div:nth-child(1) { left: 0; top: 0 } .myAgent___djnd_ .downloads___VOhKO { margin-top: 11px } .myAgent___djnd_ .myAgentDownload___FAlpz { cursor: pointer; background-color: var(--nav-download); width: 56px; height: 46px; display: flex; justify-content: center; align-items: center; position: relative } .myAgent___djnd_ .myAgentDownload___FAlpz:last-of-type { border-bottom-left-radius: 12px; border-bottom-right-radius: 12px } .myAgent___djnd_ .myAgentDownload___FAlpz .myAgentDownloadLayout___pEYRP { width: 158px; height: 206px; border-radius: 12px; position: absolute; background-color: var(--nav-download); box-shadow: var(--nav-shadow); left: 64px; bottom: 0; display: none; animation: show___PuZhP .3s ease 1 } .myAgent___djnd_ .myAgentDownload___FAlpz .myAgentDownloadLayout___pEYRP img { width: 126px; height: 126px; margin: 16px 16px 2px } .myAgent___djnd_ .myAgentDownload___FAlpz .myAgentDownloadLayout___pEYRP p { color: var(--text-2); text-align: center; line-height: 20px; margin: 0; padding: 0 } .myAgent___djnd_ .myAgentDownload___FAlpz:hover .myAgentDownloadLayout___pEYRP { display: block } .myAgentlight___yK7Gk .myAgentTool___Y1_mC .myAgentToolIconNew___DBZrW:hover { background-image: none } .myAgentlight___yK7Gk .myAgentTool___Y1_mC .myAgentToolIconNew___DBZrW:hover img { opacity: 1 } .myAgentlight___yK7Gk .myAgentTool___Y1_mC .myAgentToolIconHistory___GTLWk { /*background-image: url(./static/history_light.5dbe9ec9.svg)*/ } .myAgentlight___yK7Gk .myAgentTool___Y1_mC .myAgentToolIconHistory___GTLWk:hover { background-image: none } .myAgentlight___yK7Gk .myAgentTool___Y1_mC .myAgentToolIconHistory___GTLWk:hover img { opacity: 1 } .myAgentlight___yK7Gk .myAgentTool___Y1_mC .myAgentToolIconSquare___Rj1o_ { /*background-image: url(./static/square_light.e46b6e7c.svg)*/ } .myAgentlight___yK7Gk .myAgentTool___Y1_mC .myAgentToolIconSquare___Rj1o_:hover { background-image: none } .myAgentlight___yK7Gk .myAgentTool___Y1_mC .myAgentToolIconSquare___Rj1o_:hover img { opacity: 1 } @keyframes show___PuZhP { 0% { opacity: 0 } to { opacity: 1 } } @keyframes apper___Fwe2E { 0% { height: 0 } to { height: 32px } } .tooltip___GZ1MZ .msh-tooltip-inner { padding: 2px 8px; margin-left: 2px; line-height: 28px; font-size: 14px; letter-spacing: .25px; background: #010101; border-radius: 8px; color: #f5f9fff2 } .myAgentHeadLayout___mhwZk { cursor: pointer } .layoutNav___jOCfX { height: 100%; position: relative; transition: width .2s ease; background-color: transparent } .layoutNav___jOCfX .layoutNavMove___j5ets { position: absolute; top: 50%; right: -8px; transform: translateY(-50%); z-index: 101 } .layoutNav___jOCfX .layoutNavHot___Gmi0A { width: 96px; height: 100% } .layoutNav___jOCfX .layoutNavLine___qEtli { width: 12px; height: 26px; position: absolute; right: -26px; top: 50%; transform: translateY(-50%); cursor: pointer; transition: all .2s ease } .layoutNav___jOCfX .layoutNavLine___qEtli .layoutNavLine0___fDuov { width: 4px; height: 13px; border-top-left-radius: 4px; border-top-right-radius: 4px; background-color: var(--fill-11); left: 4px; top: 0; position: absolute; transition: all .2s ease; transform-origin: 50% 0 } .layoutNav___jOCfX .layoutNavLine___qEtli .layoutNavLine1___hkrSK { width: 4px; height: 13px; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; background-color: var(--fill-11); left: 4px; bottom: 0; position: absolute; transition: all .2s ease; transform-origin: 50% 100% } .layoutNav___jOCfX .layoutNavLine___qEtli:after { opacity: 0; width: 45px; height: 28px; line-height: 28px; text-align: center; position: absolute; border-radius: 8px; border: .5px solid #13131A; background: #010101; box-shadow: 0 0 2px #00000040,0 0 1px 1px #fff3 inset; color: #f5f9fff2; left: 18px; animation: show___TmKCq .3s ease 1 } .logo___VUcPA { width: 32px; height: 32px; left: 16px; top: 12px; position: absolute; z-index: 500 } .logo___VUcPA .logoIcon___eee_3 { width: 100%; height: 100%; cursor: pointer } .logo___VUcPA .navBox___ntiEy { width: 100vh; height: 100vh; position: fixed; left: 0; top: 0; z-index: 1000 } .logo___VUcPA .navContent___JDGQF { position: absolute; z-index: 1000 } .en___d3BPh.layoutNavShow___NrDNn .layoutNavLine___qEtli:hover:after { content: "Collapse" } .en___d3BPh.layoutNavHide___cXSjg .layoutNavLine___qEtli:hover:after { content: "Expand" } .layoutNavShow___NrDNn { width: 68px; z-index: 1030 } .layoutNavShow___NrDNn .layoutNavLine___qEtli { opacity: 0 } .layoutNavShow___NrDNn:hover .layoutNavLine___qEtli,.layoutNavShow___NrDNn .layoutNavHot___Gmi0A:hover .layoutNavLine___qEtli { opacity: 1 } .layoutNavShow___NrDNn .layoutNavLine___qEtli:hover:after { content: "\6536\8d77"; opacity: 1 } .layoutNavShow___NrDNn .layoutNavLine___qEtli:hover .layoutNavLine0___fDuov { background-color: var(--fill-12); transform-origin: 50% 0%; transform: rotate(17deg) translateY(1px); border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-left-radius: 10px; height: 16px } .layoutNavShow___NrDNn .layoutNavLine___qEtli:hover .layoutNavLine1___hkrSK { background-color: var(--fill-12); transform-origin: 50% 100%; transform: rotate(-17deg) translateY(-1px); border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-top-left-radius: 10px; height: 16px } .layoutNavHide___cXSjg { width: 0px; z-index: 1030 } .layoutNavHide___cXSjg .layoutNavMove___j5ets { right: 0 } .layoutNavHide___cXSjg .layoutNavLine___qEtli { right: -25px } .layoutNavHide___cXSjg .layoutNavLine___qEtli .layoutNavLine0___fDuov { transform-origin: 50% 0%; transform: rotate(-17deg) translateY(1px); border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 10px; height: 16px } .layoutNavHide___cXSjg .layoutNavLine___qEtli .layoutNavLine1___hkrSK { transform-origin: 50% 100%; transform: rotate(17deg) translateY(-1px); border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-top-right-radius: 10px; height: 16px } .layoutNavHide___cXSjg .layoutNavHot___Gmi0A { width: 20px } .layoutNavHide___cXSjg .layoutNavLine___qEtli:hover:after { content: "\5c55\5f00"; opacity: 1 } .layoutNavHide___cXSjg .layoutNavLine___qEtli:hover .layoutNavLine0___fDuov { background-color: var(--fill-12); transform-origin: 50% 0%; transform: rotate(-17deg) translateY(1px); border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 10px; height: 16px } .layoutNavHide___cXSjg .layoutNavLine___qEtli:hover .layoutNavLine1___hkrSK { background-color: var(--fill-12); transform-origin: 50% 100%; transform: rotate(17deg) translateY(-1px); border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-top-right-radius: 10px; height: 16px } .mainContent___vvQdb { height: 100%; display: flex; background-color: var(--nav-layout) } .mainContent___vvQdb.busy___Gqbrv { height: calc(100% - 56px) } .mainContent___vvQdb .layoutContent___NvxZ_ { flex: 1 1; height: 100%; width: 100%; position: relative; background-color: var(--nav-layout) } @media (min-width: 600px) { .mainContent___vvQdb.busy___Gqbrv { height:calc(100% - 36px) } .layoutContent___NvxZ_ { width: auto } } @keyframes show___BReeN { 0% { opacity: 0 } to { opacity: 1 } }