소스 검색

feat: knowledge chat list

王晓东 2 달 전
부모
커밋
c21684e574
43개의 변경된 파일370개의 추가작업 그리고 343개의 파일을 삭제
  1. 9 7
      src/app.config.ts
  2. 20 0
      src/app.less
  3. 13 0
      src/components/chat-message-content/index.tsx
  4. 28 0
      src/components/chat-message/MessageRich.tsx
  5. 40 0
      src/components/chat-message/MessageRobotRich.tsx
  6. 11 1
      src/components/chat-message/index.module.less
  7. 0 42
      src/components/component-list/components/card-store-home/index.module.less
  8. 0 79
      src/components/component-list/components/card-store-home/index.tsx
  9. 0 5
      src/components/component-list/components/card-store-product/index.module.less
  10. 0 67
      src/components/component-list/components/card-store-product/index.tsx
  11. 1 39
      src/components/component-list/index.tsx
  12. 1 1
      src/components/icon/IconFIleDOC/index.tsx
  13. 7 0
      src/components/icon/IconFIleLink/index.tsx
  14. 7 0
      src/components/icon/IconFIlePDF/index.tsx
  15. 7 0
      src/components/icon/IconFIlePPT/index.tsx
  16. 7 0
      src/components/icon/IconFIleTxt/index.tsx
  17. 7 0
      src/components/icon/IconFIleWechat/index.tsx
  18. 7 0
      src/components/icon/IconFIleXLSX/index.tsx
  19. 26 0
      src/components/list/figure-list-item/index.tsx
  20. 11 0
      src/components/list/figure-list/index.tsx
  21. 1 1
      src/components/think-animation/index.module.less
  22. 5 28
      src/components/wemeta-tabs/index.tsx
  23. 4 0
      src/images/svgs/IconA.svg
  24. 4 0
      src/images/svgs/IconQ.svg
  25. 4 0
      src/images/svgs/IconQAImage.svg
  26. 12 0
      src/images/svgs/IconQALink.svg
  27. 5 0
      src/images/svgs/file-type-icon/DOCFile.svg
  28. 6 0
      src/images/svgs/file-type-icon/LinkFile.svg
  29. 5 0
      src/images/svgs/file-type-icon/PDFFile.svg
  30. 5 0
      src/images/svgs/file-type-icon/PPTFile.svg
  31. 5 0
      src/images/svgs/file-type-icon/TxtFile.svg
  32. 5 0
      src/images/svgs/file-type-icon/WechatFile.svg
  33. 5 0
      src/images/svgs/file-type-icon/XLSXFile.svg
  34. 33 0
      src/pages/knowledge/components/asistant-message/index.tsx
  35. 1 1
      src/pages/knowledge/components/container-header/index.module.less
  36. 1 1
      src/pages/knowledge/components/container-header/index.tsx
  37. 23 0
      src/pages/knowledge/components/personal-tab/index.tsx
  38. 16 0
      src/pages/knowledge/components/rounded-label/index.module.less
  39. 17 0
      src/pages/knowledge/components/rounded-label/index.tsx
  40. 0 48
      src/pages/knowledge/index.module.less
  41. 9 23
      src/pages/knowledge/index.tsx
  42. 1 0
      src/pages/profile/components/agent-swap/index.module.less
  43. 1 0
      tailwind.config.js

+ 9 - 7
src/app.config.ts

@@ -1,5 +1,6 @@
 export default defineAppConfig({
   pages: [
+    'pages/knowledge/index',
     'pages/index/index',
     'pages/profile/index',
     'pages/agent/index',
@@ -24,7 +25,7 @@ export default defineAppConfig({
     
     'pages/editor-pages/editor-channels/index',
     'pages/analysis/index',
-    'pages/knowledge/index',
+    
     'pages/member/index',
     
     'pages/choose-contact/index',
@@ -50,18 +51,19 @@ export default defineAppConfig({
     selectedColor: '#000000',
     backgroundColor: '#f5f5f2',
     list: [
-      {
-        pagePath: 'pages/index/index',
-        selectedIconPath: 'images/tabbar/home-actived.png',
-        iconPath: 'images/tabbar/home.png',
-        text: '主页'
-      },
       {
         pagePath: 'pages/knowledge/index',
         selectedIconPath: 'images/tabbar/contact-actived.png',
         iconPath: 'images/tabbar/contact.png',
         text: '知识库'
       },
+      {
+        pagePath: 'pages/index/index',
+        selectedIconPath: 'images/tabbar/home-actived.png',
+        iconPath: 'images/tabbar/home.png',
+        text: '主页'
+      },
+      
       {
         pagePath: 'pages/contact/index',
         selectedIconPath: 'images/tabbar/contact-actived.png',

+ 20 - 0
src/app.less

@@ -295,4 +295,24 @@
   -webkit-background-clip: text;
   background-clip: text;
   -webkit-text-fill-color: transparent;
+}
+
+// 边框相关
+.border-bottom1-gray{
+  border-bottom: 1px solid rgba(#000, .05);
+}
+
+
+// 灰底圆框
+.rounded-card{
+  margin-bottom: 12px;
+  padding: 20px;
+  border-radius: 12px;
+  border: 1px solid transparent;
+  background-color: rgba(#000, .03);
+}
+.rounded-card-actived{
+  .rounded-card();
+  background-color: rgba(var(--color-primary-rgb), .06);
+  border: 1px solid var(--color-primary);
 }

+ 13 - 0
src/components/chat-message-content/index.tsx

@@ -0,0 +1,13 @@
+import { View } from "@tarojs/components";
+
+export const FileItem = () => {
+  return (
+    // <View className="flex items-center gap-12">
+    //   <IconFIleTxt />
+    //   <View className="flex flex-col flex-1 gap-2">
+    //     <View className="text-14 leading-22">文件名称</View>
+    //     <View className="text-12 leading-20 text-gray-45">03-24 12:20 | 822.KB</View>
+    //   </View>
+    // </View>
+  )
+}

+ 28 - 0
src/components/chat-message/MessageRich.tsx

@@ -0,0 +1,28 @@
+import { View, Image } from "@tarojs/components";
+import ThinkAnimation from "../think-animation/index";
+import style from "./index.module.less";
+interface Props {
+  loading?: boolean;
+  data?: {
+    avatar: string,
+    name: string
+  },
+  children?: JSX.Element | JSX.Element[];
+}
+export default ({ loading, children, data }: Props) => {
+  return (
+    <View className="flex gap-8 items-start justify-end">
+      <View className="flex justify-end">
+        <View className={`${style.message}  ${style.messageMeRich}`}>
+          <View className={style.messageContent}>
+            {loading && <ThinkAnimation></ThinkAnimation>}
+            {children}
+          </View>
+        </View>
+      </View>
+      <View className={style.avatarContainer}>
+        {data && <Image className={style.avatar} src={data?.avatar} mode="widthFix"></Image>}
+      </View>
+    </View>
+  );
+};

+ 40 - 0
src/components/chat-message/MessageRobotRich.tsx

@@ -0,0 +1,40 @@
+import { View, Image } from "@tarojs/components";
+import ThinkAnimation from "../think-animation/index";
+import style from "./index.module.less";
+interface Props {
+  loading?: boolean;
+  analyzeStatus?: 'idle'|'doing'|'done';
+  data?: {
+    avatar: string;
+    name: string;
+  };
+  children?: JSX.Element | JSX.Element[];
+}
+export default ({ data, loading, analyzeStatus='idle', children }: Props) => {
+  return (
+    <View className="flex gap-8 items-start">
+      <View className={style.avatarContainer}>
+        {data && <Image className={style.avatar} src={data?.avatar}></Image>}
+      </View>
+      <View className="flex flex-1 flex-col gap-8">
+        <View className="font-medium text-14 leading-22">
+          {data && data.name}
+        </View>
+        <View className="flex justify-start">
+          <View className={`${style.message}  ${style.messageRobotRich}`}>
+            <View className={style.messageContent}>
+              {loading && <ThinkAnimation></ThinkAnimation>}
+              {analyzeStatus !== 'idle' && (
+                <View className="flex items-center gap-6">
+                  <View className="text-14 leading-28">{analyzeStatus === 'doing' ? '正在为您解析' : '已成功解析 2 份知识'} </View>
+                  {(analyzeStatus === 'doing') && <ThinkAnimation></ThinkAnimation>}
+                </View>
+              )}
+              {children}
+            </View>
+          </View>
+        </View>
+      </View>
+    </View>
+  );
+};

+ 11 - 1
src/components/chat-message/index.module.less

@@ -9,11 +9,13 @@
   width: 24px;
   height: 24px;
   border-radius: 100%;
+  flex-shrink: 0;
   overflow: hidden;
 }
 .avatar{
   width: 24px;
   height: 24px;
+  background-color: var(--color-primary);
 }
 .messageRobot{
   border-top-left-radius: 2px;
@@ -28,9 +30,17 @@
   justify-content: flex-end;
   padding: 12px 16px;
   border-radius: 16px;
-  padding-left: 16px;
   background: var(--color-primary);
 }
+.messageMeRich{
+  .messageMe(); 
+  width: 100%;
+  background-color: white;
+}
+.messageRobotRich{
+  .messageRobot();
+  width: 100%;
+}
 
 .messageContent{
   font-size: 15px;

+ 0 - 42
src/components/component-list/components/card-store-home/index.module.less

@@ -1,42 +0,0 @@
-@import '~@/styles/_vars.less';
-
-.card{
-  padding: 0;
-}
-.editArea{
-  padding-top: 0;
-}
-.leftColumn{
-  margin-right: 4px;
-  width: 84px;
-  height: 108px;
-  display: flex;
-  align-items: center;
-  justify-content: center;
-  border-right: 1px solid rgba(#000, 0.05);
-}
-.rightColumn{
-  margin-top: 4px;
-  display: flex;
-  align-items: center;
-  width: 248px;
-  position: relative;
-  overflow: hidden;
-}
-.coverBlocks{
-  position: absolute;
-  left: 0;
-  top: 0;
-  bottom: 0;
-  right: 0;
-  width: 100%;
-  height: 100%;
-  z-index: 1;
-  pointer-events: none;
-  border-radius: 8px;
-}
-.block{
-  position: absolute;
-  z-index: 2;
-  background: white;
-}

+ 0 - 79
src/components/component-list/components/card-store-home/index.tsx

@@ -1,79 +0,0 @@
-import Taro from "@tarojs/taro";
-import { View, Image } from "@tarojs/components";
-import WidgetCard from "@/components/widgets/widget-card/index";
-import style from "./index.module.less";
-import type { IEntityDocument, TEntityComponent } from "@/types/index";
-import IconStoreHome from "@/components/icon/icon-store-home";
-interface Props {
-  index: number;
-  editMode: boolean;
-  component: TEntityComponent;
-  components: TEntityComponent[];
-  onSwitchChanged: (c: TEntityComponent, checked: boolean) => void;
-  onDelete: (c: IEntityDocument) => void;
-  onMove: (c: TEntityComponent, direction: number) => void;
-  onClick: (c: TEntityComponent, url: string) => void;
-}
-
-export default ({
-  index,
-  editMode,
-  component,
-  components,
-  onSwitchChanged,
-  onDelete,
-  onMove,
-  onClick,
-}: Props) => {
-  const data =
-    component.data ||
-    ({ value: {} } as {
-      value: {
-        shortLink: string;
-        poster: string;
-        name: string;
-      };
-    });
-  const handleClick = () => {
-    if (editMode) {
-      onClick(component, `/pages/editor-pages/editor-store-home/index`);
-    }
-  };
-  return (
-    <>
-      <WidgetCard
-        className={style.card}
-        editAreaClassName={style.editArea}
-        disableChangeStyle
-        index={index}
-        enabled={component.enabled}
-        onSwitchChanged={(checked) => onSwitchChanged(component, checked)}
-        components={components}
-        editMode={editMode}
-        onDelete={() => onDelete(component)}
-        onMove={(direction) => onMove(component, direction)}
-      >
-        <View className={`relative`} onClick={handleClick}>
-          {editMode && <View className="absolute w-full h-full z-10 left-0 top-0"></View>}
-          <View className="flex">
-            <View className={style.leftColumn}>
-              {IconStoreHome()}
-            </View>
-            <View className={style.rightColumn}>
-              <View className="relative">
-                <View className={style.coverBlocks}>
-                  <View className={`${style.block} -left-2 -top w-4 h-full`}></View>
-                  <View className={`${style.block} left-0 -top-2 h-4 w-full`}></View>
-                  <View className={`${style.block} -right-2 top-0 w-4 h-full`}></View>
-                  <View className={`${style.block} left-0 -bottom-1 h-4 w-full`}></View>
-                </View>
-                {/*@ts-ignore*/}
-                <store-home appid={data.value.appid} />
-              </View>
-            </View>
-          </View>
-        </View>
-      </WidgetCard>
-    </>
-  );
-};

+ 0 - 5
src/components/component-list/components/card-store-product/index.module.less

@@ -1,5 +0,0 @@
-.card{
-  padding-top: 4px;
-  padding-bottom: 4px;
-  background-color: #fafafa;
-}

+ 0 - 67
src/components/component-list/components/card-store-product/index.tsx

@@ -1,67 +0,0 @@
-import Taro from "@tarojs/taro";
-import { View, Image } from "@tarojs/components";
-import WidgetCard from "@/components/widgets/widget-card/index";
-import style from "./index.module.less";
-import type { IEntityDocument, TEntityComponent } from "@/types/index";
-interface Props {
-  index: number;
-  editMode: boolean;
-  component: TEntityComponent;
-  components: TEntityComponent[];
-  onSwitchChanged: (c: TEntityComponent, checked: boolean) => void;
-  onDelete: (c: IEntityDocument) => void;
-  onMove: (c: TEntityComponent, direction: number) => void;
-  onClick: (c: TEntityComponent, url: string) => void;
-}
-
-export default ({
-  index,
-  editMode,
-  component,
-  components,
-  onSwitchChanged,
-  onDelete,
-  onMove,
-  onClick,
-}: Props) => {
-  const data =
-    component.data ||
-    ({ value: {} } as {
-      value: {
-        shortLink: string;
-        poster: string;
-        name: string;
-      };
-    });
-  // 非编辑模式背景显示为白色
-  // const editModeStyle = editMode ? style.editMode : style.showMode;
-  
-  const handleClick = (e) => {
-    if (editMode) {
-      e.stopPropagation()
-      onClick(component, `/pages/editor-pages/editor-store-product/index`);
-    }
-  };
-
-  return (
-    <>
-      <WidgetCard
-        className={style.card}
-        disableChangeStyle
-        index={index}
-        enabled={component.enabled}
-        onSwitchChanged={(checked) => onSwitchChanged(component, checked)}
-        components={components}
-        editMode={editMode}
-        onDelete={() => onDelete(component)}
-        onMove={(direction) => onMove(component, direction)}
-      >
-        <View className={`relative px-4`} onClick={handleClick}>
-          {editMode && <View className="absolute w-full h-full z-10 left-0 top-0"></View>}
-          {/*@ts-ignore*/}
-          <store-product-item product-id={data.value.productId} appid={data.value.appid} />
-        </View>
-      </WidgetCard>
-    </>
-  );
-};

+ 1 - 39
src/components/component-list/index.tsx

@@ -22,8 +22,6 @@ import CardTel from "./components/card-tel/index";
 import CardChannels from "./components/card-channels/index";
 import CardMedia from "./components/card-media/index";
 import CardMiniProgram from "./components/card-mini-program/index";
-import CardStoreProduct from "./components/card-store-product/index";
-import CardStoreHome from "./components/card-store-home/index";
 import CardLink from "./components/card-link/index";
 
 import IconMail from '@/components/icon/icon-email'
@@ -215,43 +213,7 @@ export default ({ components, editMode = false }: Props) => {
             ),
           };
         }
-
-        // 微信小店
-        if(c.type === 'storeHome'){
-          return {
-            component: c,
-            renderer: (
-              <CardStoreHome
-                  index={index}
-                  onSwitchChanged={handleSwitchChanged}
-                  components={components}
-                  component={c}
-                  editMode={editMode}
-                  onDelete={handleDelete}
-                  onMove={handleSort}
-                  onClick={handleNavigate}
-              />
-            ),
-          };
-        }
-        // 微信小店商品
-        if(c.type === 'storeProduct'){
-          return {
-            component: c,
-            renderer: (
-              <CardStoreProduct
-                  index={index}
-                  onSwitchChanged={handleSwitchChanged}
-                  components={components}
-                  component={c}
-                  editMode={editMode}
-                  onDelete={handleDelete}
-                  onMove={handleSort}
-                  onClick={handleNavigate}
-              />
-            ),
-          };
-        }
+        
         // 联系人
         if(c.type === "contactList"){
           return {

+ 1 - 1
src/components/icon/icon-store-home/index.tsx → src/components/icon/IconFIleDOC/index.tsx

@@ -1,5 +1,5 @@
 import { Image } from '@tarojs/components'
-import Icon from '@/images/icon-store-home.svg'
+import Icon from '@/images/svgs/file-type-icon/DOCFile.svg'
 export default () => {
   return (
     <Image src={Icon} mode="widthFix" style={{width: '36px', height: '36px'}}></Image>

+ 7 - 0
src/components/icon/IconFIleLink/index.tsx

@@ -0,0 +1,7 @@
+import { Image } from '@tarojs/components'
+import Icon from '@/images/svgs/file-type-icon/WechatFile.svg'
+export default () => {
+  return (
+    <Image src={Icon} mode="widthFix" style={{width: '36px', height: '36px'}}></Image>
+  )
+}

+ 7 - 0
src/components/icon/IconFIlePDF/index.tsx

@@ -0,0 +1,7 @@
+import { Image } from '@tarojs/components'
+import Icon from '@/images/svgs/file-type-icon/PDFFile.svg'
+export default () => {
+  return (
+    <Image src={Icon} mode="widthFix" style={{width: '36px', height: '36px'}}></Image>
+  )
+}

+ 7 - 0
src/components/icon/IconFIlePPT/index.tsx

@@ -0,0 +1,7 @@
+import { Image } from '@tarojs/components'
+import Icon from '@/images/svgs/file-type-icon/PPTFile.svg'
+export default () => {
+  return (
+    <Image src={Icon} mode="widthFix" style={{width: '36px', height: '36px'}}></Image>
+  )
+}

+ 7 - 0
src/components/icon/IconFIleTxt/index.tsx

@@ -0,0 +1,7 @@
+import { Image } from '@tarojs/components'
+import Icon from '@/images/svgs/file-type-icon/TxtFile.svg'
+export default () => {
+  return (
+    <Image src={Icon} mode="widthFix" style={{width: '36px', height: '36px'}}></Image>
+  )
+}

+ 7 - 0
src/components/icon/IconFIleWechat/index.tsx

@@ -0,0 +1,7 @@
+import { Image } from '@tarojs/components'
+import Icon from '@/images/svgs/file-type-icon/WechatFile.svg'
+export default () => {
+  return (
+    <Image src={Icon} mode="widthFix" style={{width: '36px', height: '36px'}}></Image>
+  )
+}

+ 7 - 0
src/components/icon/IconFIleXLSX/index.tsx

@@ -0,0 +1,7 @@
+import { Image } from '@tarojs/components'
+import Icon from '@/images/svgs/file-type-icon/XLSXFile.svg'
+export default () => {
+  return (
+    <Image src={Icon} mode="widthFix" style={{width: '36px', height: '36px'}}></Image>
+  )
+}

+ 26 - 0
src/components/list/figure-list-item/index.tsx

@@ -0,0 +1,26 @@
+import { View } from "@tarojs/components";
+import IconArrowThin from "@/components/icon/icon-arrow-thin";
+export interface IndexProps {
+  figure: () => JSX.Element;
+  arrow?: boolean;
+  children?: JSX.Element[] | JSX.Element;
+  className?: string;
+  underline?: boolean;
+  onClick?: () => void;
+}
+
+const Index = ({ figure, arrow, underline, children, onClick }: IndexProps) => {
+  return (
+    <View className={`flex items-center gap-12 w-full ${underline ? 'border-bottom1-gray pb-12' : ''}`} onClick={ ()=> { onClick && onClick()}}>
+      {figure()}
+      <View className="flex flex-col flex-1 gap-2 w-full">{children}</View>
+      {arrow && (
+        <View className="flex items-center justify-center">
+          <IconArrowThin />
+        </View>
+      )}
+    </View>
+  );
+};
+
+export default Index;

+ 11 - 0
src/components/list/figure-list/index.tsx

@@ -0,0 +1,11 @@
+import { View } from "@tarojs/components";
+const Index = ({children}) => {
+  
+  return <View>
+    <View className="bg-gray-2 px-16 py-12 rounded-8 flex flex-col gap-12">
+      {children}
+    </View>
+  </View>
+}
+
+export default Index;

+ 1 - 1
src/components/think-animation/index.module.less

@@ -15,7 +15,7 @@
   height: 6px;
   margin: 0 2px; /* 点之间的间距 */
   border-radius: 50%; /* 圆形 */
-  background-color: #9BBD00; /* 点的颜色 */
+  background-color: var(--color-primary); /* 点的颜色 */
   opacity: 0; /* 初始透明度 */
   animation: blink 1.5s infinite; /* 动画效果 */
 }

+ 5 - 28
src/components/wemeta-tabs/index.tsx

@@ -7,6 +7,7 @@ interface Props {
   current: string;
   full?: boolean;
   tabStyle?: string;
+  className?: string;
   list: {
     key: string;
     label: string | React.ReactChild;
@@ -19,6 +20,7 @@ export default function Index({
   current,
   full,
   list,
+  className,
 }: Props) {
   const [tabIndex, setTabIndex] = useState(current ?? list[0].key);
 
@@ -43,7 +45,7 @@ export default function Index({
   if (tabStyle === "outline") {
     return (
       <View>
-        <View className={style.outlineTabButtons}>
+        <View className={`${style.outlineTabButtons} ${className}`}>
           {list.map((item) => {
             return (
               <View
@@ -63,39 +65,14 @@ export default function Index({
     );
   }
 
-  // if (tabStyle === "button") {
-  //   return (
-  //     <View>
-  //     <View className={`flex items-center gap-10 py-8 px-10 ${style.buttonTabs}`}>
-  //       {list.map((item) => {
-  //         return (
-  //           <View
-  //             key={item.key}
-  //             className={`${style.buttonTab}  ${
-  //               tabIndex === item.key ? style.buttonTabActived : ""
-  //             }
-  //                 flex-1 shrink-0
-  //               `}
-  //             onClick={() => setTabIndex(item.key)}
-  //           >
-  //             {item.label}
-  //           </View>
-  //         );
-  //       })}
-  //     </View>
-  //     {renderTabContent()}
-  //     </View>
-  //   );
-  // }
-
   return (
     <View>
-      <View className="flex items-center gap-8">
+      <View className={`flex items-center gap-8 ${className}`}>
         {list.map((item) => {
           return (
             <View
               key={item.key}
-              className={tabIndex === item.key ? style.rounedButtonActived : style.rounedButton}
+              className={`${tabIndex === item.key ? style.rounedButtonActived : style.rounedButton}`}
               onClick={() => setTabIndex(item.key)}
             >
               {item.label}

+ 4 - 0
src/images/svgs/IconA.svg

@@ -0,0 +1,4 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M2 12C2 6.47715 6.47715 2 12 2H20C21.1046 2 22 2.89543 22 4V12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12Z" fill="#317CFA"/>
+<path d="M11.075 7.718H12.687L16.262 17H14.741L13.87 14.608H9.879L9.008 17H7.5L11.075 7.718ZM10.308 13.438H13.441L11.907 9.239H11.855L10.308 13.438Z" fill="white"/>
+</svg>

+ 4 - 0
src/images/svgs/IconQ.svg

@@ -0,0 +1,4 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12V20C22 21.1046 21.1046 22 20 22H12C6.47715 22 2 17.5228 2 12Z" fill="#FA8F31"/>
+<path d="M12.018 7.536C13.422 7.536 14.54 7.991 15.359 8.914C16.139 9.785 16.529 10.942 16.529 12.372C16.529 13.763 16.152 14.894 15.398 15.778C15.736 16.233 16.087 16.701 16.425 17.195L15.515 18.001C15.164 17.494 14.826 17.013 14.488 16.558C13.799 16.974 12.98 17.182 12.018 17.182C10.601 17.182 9.483 16.714 8.677 15.804C7.897 14.92 7.52 13.776 7.52 12.372C7.52 10.955 7.897 9.811 8.677 8.927C9.483 7.991 10.601 7.536 12.018 7.536ZM12.018 8.784C11.03 8.784 10.263 9.109 9.717 9.785C9.197 10.422 8.937 11.28 8.937 12.372C8.937 13.451 9.197 14.309 9.717 14.946C10.263 15.596 11.03 15.934 12.018 15.934C12.668 15.934 13.227 15.791 13.682 15.518C13.214 14.933 12.746 14.4 12.291 13.919L13.11 13.113C13.578 13.607 14.046 14.14 14.514 14.686C14.904 14.088 15.099 13.321 15.099 12.372C15.099 11.254 14.826 10.383 14.306 9.746C13.773 9.096 13.006 8.784 12.018 8.784Z" fill="white"/>
+</svg>

+ 4 - 0
src/images/svgs/IconQAImage.svg

@@ -0,0 +1,4 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M2 12C2 6.47715 6.47715 2 12 2H20C21.1046 2 22 2.89543 22 4V12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12Z" fill="#317CFA"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M10.1944 16.1663H13.8055C15.2181 16.1663 16.1668 15.1755 16.1668 13.701V10.2983C16.1668 8.82389 15.2181 7.83301 13.8059 7.83301H10.1944C8.7822 7.83301 7.8335 8.82389 7.8335 10.2983V13.701C7.8335 15.1755 8.7822 16.1663 10.1944 16.1663ZM10.5412 11.5828C9.96676 11.5828 9.5 11.1155 9.5 10.5412C9.5 9.9669 9.96676 9.49951 10.5412 9.49951C11.1152 9.49951 11.5824 9.9669 11.5824 10.5412C11.5824 11.1155 11.1152 11.5828 10.5412 11.5828ZM15.2587 13.222C15.3982 13.5798 15.3257 14.0098 15.1766 14.3641C14.9997 14.7855 14.6612 15.1046 14.2347 15.2439C14.0453 15.3058 13.8467 15.3329 13.6485 15.3329H10.1369C9.7875 15.3329 9.47828 15.249 9.22479 15.0929C9.066 14.9949 9.03792 14.7687 9.15566 14.6221C9.35259 14.377 9.547 14.131 9.74308 13.8829C10.1168 13.4082 10.3686 13.2706 10.6485 13.3914C10.7621 13.4413 10.876 13.5161 10.9934 13.5953C11.3059 13.8077 11.7404 14.0997 12.3128 13.7827C12.7044 13.5634 12.9316 13.1871 13.1294 12.8594L13.1327 12.854L13.1745 12.7851C13.241 12.6751 13.3066 12.5665 13.3808 12.4665C13.4738 12.3414 13.8186 11.9501 14.2652 12.2287C14.5497 12.4042 14.789 12.6415 15.045 12.8957C15.1426 12.9928 15.2122 13.1034 15.2587 13.222Z" fill="white"/>
+</svg>

+ 12 - 0
src/images/svgs/IconQALink.svg

@@ -0,0 +1,12 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M2 12C2 6.47715 6.47715 2 12 2H20C21.1046 2 22 2.89543 22 4V12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12Z" fill="#317CFA"/>
+<g clip-path="url(#clip0_277_3982)">
+<path d="M15.8912 9.08525C14.8528 7.80275 12.9712 7.60494 11.6884 8.64369L10.7044 9.44056L11.1959 10.0478L12.18 9.25088C12.4052 9.06848 12.6642 8.93224 12.9421 8.84992C13.22 8.76761 13.5114 8.74083 13.7996 8.77113C14.0878 8.80142 14.3673 8.88819 14.622 9.02649C14.8767 9.16478 15.1017 9.35189 15.2841 9.57713C15.4665 9.80236 15.6027 10.0613 15.685 10.3392C15.7673 10.6171 15.7941 10.9085 15.7638 11.1967C15.7335 11.485 15.6467 11.7644 15.5084 12.0191C15.3702 12.2738 15.183 12.4988 14.9578 12.6812L13.9034 13.5349L14.395 14.1421L15.4494 13.2884C15.7544 13.0414 16.0078 12.7368 16.1951 12.3919C16.3824 12.0471 16.4999 11.6686 16.5409 11.2783C16.582 10.888 16.5457 10.4935 16.4342 10.1172C16.3228 9.74088 16.1383 9.39023 15.8912 9.08525ZM12.0422 15.0424C11.8169 15.2248 11.558 15.3611 11.2801 15.4434C11.0022 15.5257 10.7108 15.5525 10.4226 15.5222C10.1343 15.4919 9.85489 15.4051 9.60019 15.2668C9.34549 15.1285 9.12051 14.9414 8.93812 14.7162C8.75573 14.491 8.61948 14.232 8.53717 13.9541C8.45485 13.6762 8.42808 13.3848 8.45837 13.0966C8.48867 12.8083 8.57544 12.5289 8.71373 12.2742C8.85203 12.0195 9.03913 11.7945 9.26437 11.6121L10.3481 10.7346L9.85656 10.1274L8.77281 11.0049C7.49031 12.0434 7.2925 13.9253 8.33093 15.2077C9.36937 16.4902 11.2512 16.6881 12.5337 15.6496L13.5603 14.8184L13.0687 14.2112L12.0422 15.0424Z" fill="white"/>
+<path d="M13.6027 10.4502L14.103 11.0502L10.748 13.8461L10.248 13.2461L13.6027 10.4502Z" fill="white"/>
+</g>
+<defs>
+<clipPath id="clip0_277_3982">
+<rect width="10" height="10" fill="white" transform="translate(7 7)"/>
+</clipPath>
+</defs>
+</svg>

+ 5 - 0
src/images/svgs/file-type-icon/DOCFile.svg

@@ -0,0 +1,5 @@
+<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M5.16377 0C4.69173 0.0130235 4.24278 0.207036 3.90981 0.541882C3.57685 0.876729 3.38538 1.32677 3.37502 1.79887V34.2006C3.37395 34.4359 3.42106 34.6689 3.51345 34.8853C3.60583 35.1017 3.74154 35.2969 3.91221 35.4589C4.074 35.6281 4.26807 35.7631 4.48293 35.8561C4.6978 35.949 4.92911 35.9979 5.16321 36H31.3999C31.6342 36.0006 31.8662 35.953 32.0813 35.8601C32.2964 35.7672 32.4901 35.631 32.6503 35.46C32.8184 35.2958 32.9524 35.1 33.0446 34.8839C33.1368 34.6678 33.1854 34.4355 33.1875 34.2006V10.1959L23.0513 0H5.16264H5.16321H5.16377Z" fill="#1476F1"/>
+<path d="M33.1875 10.125H24.8501C24.3799 10.1136 23.9321 9.92183 23.5993 9.58939C23.2665 9.25694 23.0743 8.80928 23.0625 8.33906V0L33.1858 10.125H33.1875Z" fill="white" fill-opacity="0.7"/>
+<path d="M9.23621 26.4372H11.2522C13.2052 26.4372 14.5552 25.3842 14.5552 23.0532C14.5552 20.7222 13.2052 19.7322 11.1622 19.7322H9.23621V26.4372ZM10.8472 25.1412V21.0192H11.0632C12.1432 21.0192 12.9082 21.4602 12.9082 23.0532C12.9082 24.6462 12.1432 25.1412 11.0632 25.1412H10.8472ZM18.5602 26.5632C20.3872 26.5632 21.6292 25.2492 21.6292 23.0532C21.6292 20.8662 20.3872 19.6152 18.5602 19.6152C16.7332 19.6152 15.4912 20.8572 15.4912 23.0532C15.4912 25.2492 16.7332 26.5632 18.5602 26.5632ZM18.5602 25.1772C17.6782 25.1772 17.1382 24.3492 17.1382 23.0532C17.1382 21.7572 17.6782 20.9922 18.5602 20.9922C19.4422 20.9922 19.9912 21.7572 19.9912 23.0532C19.9912 24.3492 19.4422 25.1772 18.5602 25.1772ZM25.7062 26.5632C26.5792 26.5632 27.3262 26.2302 27.8932 25.5732L27.0472 24.5652C26.7322 24.9072 26.3092 25.1772 25.7692 25.1772C24.8242 25.1772 24.2122 24.4032 24.2122 23.0712C24.2122 21.7662 24.9232 20.9922 25.7872 20.9922C26.2642 20.9922 26.6152 21.2082 26.9572 21.5142L27.7942 20.4882C27.3352 20.0202 26.6332 19.6152 25.7602 19.6152C24.0592 19.6152 22.5652 20.8932 22.5652 23.1252C22.5652 25.3932 24.0052 26.5632 25.7062 26.5632Z" fill="white"/>
+</svg>

+ 6 - 0
src/images/svgs/file-type-icon/LinkFile.svg

@@ -0,0 +1,6 @@
+<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M5.16377 0C4.69173 0.0130235 4.24278 0.207036 3.90981 0.541882C3.57685 0.876729 3.38538 1.32677 3.37502 1.79887V34.2006C3.37395 34.4359 3.42106 34.6689 3.51345 34.8853C3.60583 35.1017 3.74154 35.2969 3.91221 35.4589C4.074 35.6281 4.26807 35.7631 4.48293 35.8561C4.6978 35.949 4.92911 35.9979 5.16321 36H31.3999C31.6342 36.0006 31.8662 35.953 32.0813 35.8601C32.2964 35.7672 32.4901 35.631 32.6503 35.46C32.8184 35.2958 32.9524 35.1 33.0446 34.8839C33.1368 34.6678 33.1854 34.4355 33.1875 34.2006V10.1959L23.0513 0H5.16264H5.16321H5.16377Z" fill="#FF8F1F"/>
+<path d="M24.2265 17.3368C22.565 15.2848 19.5545 14.9683 17.502 16.6303L15.9275 17.9053L16.714 18.8768L18.2885 17.6018C18.6489 17.31 19.0632 17.092 19.5078 16.9603C19.9525 16.8286 20.4187 16.7857 20.8799 16.8342C21.341 16.8827 21.7882 17.0215 22.1957 17.2428C22.6032 17.464 22.9632 17.7634 23.255 18.1238C23.5468 18.4842 23.7648 18.8985 23.8965 19.3431C24.0282 19.7878 24.0711 20.254 24.0226 20.7152C23.9741 21.1763 23.8353 21.6235 23.614 22.031C23.3928 22.4385 23.0934 22.7985 22.733 23.0903L21.046 24.4563L21.8325 25.4278L23.5195 24.0618C24.0076 23.6667 24.413 23.1793 24.7127 22.6275C25.0123 22.0757 25.2004 21.4702 25.266 20.8457C25.3317 20.2212 25.2736 19.5899 25.0953 18.9879C24.9169 18.3858 24.6217 17.8248 24.2265 17.3368ZM18.068 26.8683C17.7076 27.1601 17.2933 27.3781 16.8487 27.5098C16.404 27.6415 15.9378 27.6844 15.4766 27.6359C15.0155 27.5874 14.5683 27.4486 14.1608 27.2273C13.7533 27.006 13.3933 26.7067 13.1015 26.3463C12.8097 25.9859 12.5917 25.5716 12.46 25.127C12.3283 24.6823 12.2854 24.2161 12.3339 23.7549C12.3824 23.2938 12.5212 22.8466 12.7425 22.4391C12.9638 22.0316 13.2631 21.6716 13.6235 21.3798L15.3575 19.9758L14.571 19.0043L12.837 20.4083C10.785 22.0698 10.4685 25.0808 12.13 27.1328C13.7915 29.1848 16.8025 29.5013 18.8545 27.8398L20.497 26.5098L19.7105 25.5383L18.068 26.8683Z" fill="white"/>
+<path d="M20.565 19.5195L21.3655 20.4795L15.9975 24.953L15.1975 23.993L20.565 19.5195Z" fill="white"/>
+<path d="M33.1875 10.125H24.8501C24.3799 10.1136 23.9321 9.92183 23.5993 9.58939C23.2665 9.25694 23.0743 8.80928 23.0625 8.33906V0L33.1858 10.125H33.1875Z" fill="white" fill-opacity="0.7"/>
+</svg>

+ 5 - 0
src/images/svgs/file-type-icon/PDFFile.svg

@@ -0,0 +1,5 @@
+<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M5.16377 0C4.69173 0.0130235 4.24278 0.207036 3.90981 0.541882C3.57685 0.876729 3.38538 1.32677 3.37502 1.79887V34.2006C3.37395 34.4359 3.42106 34.6689 3.51345 34.8853C3.60583 35.1017 3.74154 35.2969 3.91221 35.4589C4.074 35.6281 4.26807 35.7631 4.48293 35.8561C4.6978 35.949 4.92911 35.9979 5.16321 36H31.3999C31.6342 36.0006 31.8662 35.953 32.0813 35.8601C32.2964 35.7672 32.4901 35.631 32.6503 35.46C32.8184 35.2958 32.9524 35.1 33.0446 34.8839C33.1368 34.6678 33.1854 34.4355 33.1875 34.2006V10.1959L23.0513 0H5.16264H5.16321H5.16377Z" fill="#F56839"/>
+<path d="M33.1875 10.125H24.8501C24.3799 10.1136 23.9321 9.92183 23.5993 9.58939C23.2665 9.25694 23.0743 8.80928 23.0625 8.33906V0L33.1858 10.125H33.1875Z" fill="white" fill-opacity="0.7"/>
+<path d="M9.96521 26.4374H11.5762V24.2144H12.3592C13.7812 24.2144 15.0052 23.5124 15.0052 21.9194C15.0052 20.2634 13.7902 19.7324 12.3232 19.7324H9.96521V26.4374ZM11.5762 22.9454V21.0104H12.2332C13.0072 21.0104 13.4392 21.2444 13.4392 21.9194C13.4392 22.5764 13.0612 22.9454 12.2782 22.9454H11.5762ZM16.1482 26.4374H18.1642C20.1172 26.4374 21.4672 25.3844 21.4672 23.0534C21.4672 20.7224 20.1172 19.7324 18.0742 19.7324H16.1482V26.4374ZM17.7592 25.1414V21.0194H17.9752C19.0552 21.0194 19.8202 21.4604 19.8202 23.0534C19.8202 24.6464 19.0552 25.1414 17.9752 25.1414H17.7592ZM22.7092 26.4374H24.3202V23.8814H26.6062V22.5404H24.3202V21.0734H26.9842V19.7324H22.7092V26.4374Z" fill="white"/>
+</svg>

+ 5 - 0
src/images/svgs/file-type-icon/PPTFile.svg

@@ -0,0 +1,5 @@
+<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M5.16377 0C4.69173 0.0130235 4.24278 0.207036 3.90981 0.541882C3.57685 0.876729 3.38538 1.32677 3.37502 1.79887V34.2006C3.37395 34.4359 3.42106 34.6689 3.51345 34.8853C3.60583 35.1017 3.74154 35.2969 3.91221 35.4589C4.074 35.6281 4.26807 35.7631 4.48293 35.8561C4.6978 35.949 4.92911 35.9979 5.16321 36H31.3999C31.6342 36.0006 31.8662 35.953 32.0813 35.8601C32.2964 35.7672 32.4901 35.631 32.6503 35.46C32.8184 35.2958 32.9524 35.1 33.0446 34.8839C33.1368 34.6678 33.1854 34.4355 33.1875 34.2006V10.1959L23.0513 0H5.16264H5.16321H5.16377Z" fill="#E86235"/>
+<path d="M33.1875 10.125H24.8501C24.3799 10.1136 23.9321 9.92183 23.5993 9.58939C23.2665 9.25694 23.0743 8.80928 23.0625 8.33906V0L33.1858 10.125H33.1875Z" fill="white" fill-opacity="0.7"/>
+<path d="M10.0597 26.4374H11.6707V24.2144H12.4537C13.8757 24.2144 15.0997 23.5124 15.0997 21.9194C15.0997 20.2634 13.8847 19.7324 12.4177 19.7324H10.0597V26.4374ZM11.6707 22.9454V21.0104H12.3277C13.1017 21.0104 13.5337 21.2444 13.5337 21.9194C13.5337 22.5764 13.1557 22.9454 12.3727 22.9454H11.6707ZM16.2427 26.4374H17.8537V24.2144H18.6367C20.0587 24.2144 21.2827 23.5124 21.2827 21.9194C21.2827 20.2634 20.0677 19.7324 18.6007 19.7324H16.2427V26.4374ZM17.8537 22.9454V21.0104H18.5107C19.2847 21.0104 19.7167 21.2444 19.7167 21.9194C19.7167 22.5764 19.3387 22.9454 18.5557 22.9454H17.8537ZM23.5867 26.4374H25.1977V21.0734H27.0157V19.7324H21.7777V21.0734H23.5867V26.4374Z" fill="white"/>
+</svg>

+ 5 - 0
src/images/svgs/file-type-icon/TxtFile.svg

@@ -0,0 +1,5 @@
+<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M5.16377 0C4.69173 0.0130235 4.24278 0.207036 3.90981 0.541882C3.57685 0.876729 3.38538 1.32677 3.37502 1.79887V34.2006C3.37395 34.4359 3.42106 34.6689 3.51345 34.8853C3.60583 35.1017 3.74154 35.2969 3.91221 35.4589C4.074 35.6281 4.26807 35.7631 4.48293 35.8561C4.6978 35.949 4.92911 35.9979 5.16321 36H31.3999C31.6342 36.0006 31.8662 35.953 32.0813 35.8601C32.2964 35.7672 32.4901 35.631 32.6503 35.46C32.8184 35.2958 32.9524 35.1 33.0446 34.8839C33.1368 34.6678 33.1854 34.4355 33.1875 34.2006V10.1959L23.0513 0H5.16264H5.16321H5.16377Z" fill="#3662EC"/>
+<path d="M33.1875 10.125H24.8501C24.3799 10.1136 23.9321 9.92183 23.5993 9.58939C23.2665 9.25694 23.0743 8.80928 23.0625 8.33906V0L33.1858 10.125H33.1875Z" fill="white" fill-opacity="0.7"/>
+<path d="M11.8417 26.4374H13.4527V21.0734H15.2707V19.7324H10.0327V21.0734H11.8417V26.4374ZM15.4417 26.4374H17.1517L17.7277 25.1324C17.8807 24.7814 18.0337 24.4304 18.1867 24.0164H18.2227C18.4027 24.4304 18.5557 24.7814 18.7177 25.1324L19.3387 26.4374H21.1297L19.2847 23.0624L21.0127 19.7324H19.3117L18.8257 20.9384C18.6907 21.2534 18.5467 21.6044 18.3937 22.0364H18.3577C18.1687 21.6044 18.0247 21.2534 17.8717 20.9384L17.3317 19.7324H15.5407L17.2777 22.9904L15.4417 26.4374ZM23.1007 26.4374H24.7117V21.0734H26.5297V19.7324H21.2917V21.0734H23.1007V26.4374Z" fill="white"/>
+</svg>

+ 5 - 0
src/images/svgs/file-type-icon/WechatFile.svg

@@ -0,0 +1,5 @@
+<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M5.16377 0C4.69173 0.0130235 4.24278 0.207036 3.90981 0.541882C3.57685 0.876729 3.38538 1.32677 3.37502 1.79887V34.2006C3.37395 34.4359 3.42106 34.6689 3.51345 34.8853C3.60583 35.1017 3.74154 35.2969 3.91221 35.4589C4.074 35.6281 4.26807 35.7631 4.48293 35.8561C4.6978 35.949 4.92911 35.9979 5.16321 36H31.3999C31.6342 36.0006 31.8662 35.953 32.0813 35.8601C32.2964 35.7672 32.4901 35.631 32.6503 35.46C32.8184 35.2958 32.9524 35.1 33.0446 34.8839C33.1368 34.6678 33.1854 34.4355 33.1875 34.2006V10.1959L23.0513 0H5.16264H5.16321H5.16377Z" fill="#00B578"/>
+<path d="M21.2586 20.4933C21.4374 20.4933 21.614 20.5067 21.7897 20.5264C21.3125 18.3035 18.9362 16.6523 16.2236 16.6523C13.1913 16.6523 10.707 18.7191 10.707 21.3439C10.707 22.8589 11.5335 24.1033 12.9147 25.068L12.363 26.7275L14.2911 25.7606C14.9815 25.8971 15.535 26.0371 16.2236 26.0371C16.3967 26.0371 16.5684 26.0291 16.7388 26.0157C16.6308 25.6464 16.5684 25.2602 16.5684 24.8597C16.5684 22.4495 18.6379 20.4933 21.2586 20.4933ZM18.2922 18.9979C18.7074 18.9979 18.9826 19.2713 18.9826 19.6861C18.9826 20.1 18.7074 20.3765 18.2922 20.3765C17.8788 20.3765 17.464 20.1 17.464 19.6861C17.464 19.2713 17.8788 18.9979 18.2922 18.9979ZM14.4316 20.3765C14.0182 20.3765 13.6007 20.1 13.6007 19.6861C13.6007 19.2713 14.0182 18.9979 14.4316 18.9979C14.8451 18.9979 15.1202 19.2713 15.1202 19.6861C15.1202 20.1 14.8451 20.3765 14.4316 20.3765ZM26.293 24.7932C26.293 22.5877 24.0863 20.7899 21.6073 20.7899C18.9826 20.7899 16.9154 22.5878 16.9154 24.7932C16.9154 27.0027 18.9826 28.7966 21.6073 28.7966C22.1568 28.7966 22.7112 28.6579 23.2629 28.5196L24.7757 29.3483L24.361 27.9697C25.4684 27.1388 26.293 26.0372 26.293 24.7932ZM20.0865 24.1033C19.8118 24.1033 19.5343 23.8299 19.5343 23.5511C19.5343 23.2764 19.8118 22.9994 20.0865 22.9994C20.5035 22.9994 20.7769 23.2764 20.7769 23.5511C20.7769 23.8299 20.5035 24.1033 20.0865 24.1033ZM23.1206 24.1033C22.8477 24.1033 22.5725 23.8299 22.5725 23.5511C22.5725 23.2764 22.8476 22.9994 23.1206 22.9994C23.5341 22.9994 23.811 23.2764 23.811 23.5511C23.811 23.8299 23.5341 24.1033 23.1206 24.1033Z" fill="white"/>
+<path d="M33.1875 10.125H24.8501C24.3799 10.1136 23.9321 9.92183 23.5993 9.58939C23.2665 9.25694 23.0743 8.80928 23.0625 8.33906V0L33.1858 10.125H33.1875Z" fill="white" fill-opacity="0.7"/>
+</svg>

+ 5 - 0
src/images/svgs/file-type-icon/XLSXFile.svg

@@ -0,0 +1,5 @@
+<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M5.16377 0C4.69173 0.0130235 4.24278 0.207036 3.90981 0.541882C3.57685 0.876729 3.38538 1.32677 3.37502 1.79887V34.2006C3.37395 34.4359 3.42106 34.6689 3.51345 34.8853C3.60583 35.1017 3.74154 35.2969 3.91221 35.4589C4.074 35.6281 4.26807 35.7631 4.48293 35.8561C4.6978 35.949 4.92911 35.9979 5.16321 36H31.3999C31.6342 36.0006 31.8662 35.953 32.0813 35.8601C32.2964 35.7672 32.4901 35.631 32.6503 35.46C32.8184 35.2958 32.9524 35.1 33.0446 34.8839C33.1368 34.6678 33.1854 34.4355 33.1875 34.2006V10.1959L23.0513 0H5.16264H5.16321H5.16377Z" fill="#1AC380"/>
+<path d="M33.1875 10.125H24.8501C24.3799 10.1136 23.9321 9.92183 23.5993 9.58939C23.2665 9.25694 23.0743 8.80928 23.0625 8.33906V0L33.1858 10.125H33.1875Z" fill="white" fill-opacity="0.7"/>
+<path d="M7.06726 26.4372H8.77726L9.35326 25.1322C9.50626 24.7812 9.65926 24.4302 9.81226 24.0162H9.84826C10.0283 24.4302 10.1813 24.7812 10.3433 25.1322L10.9643 26.4372H12.7553L10.9103 23.0622L12.6383 19.7322H10.9373L10.4513 20.9382C10.3163 21.2532 10.1723 21.6042 10.0193 22.0362H9.98326C9.79426 21.6042 9.65026 21.2532 9.49726 20.9382L8.95726 19.7322H7.16626L8.90326 22.9902L7.06726 26.4372ZM13.6373 26.4372H17.8583V25.0872H15.2483V19.7322H13.6373V26.4372ZM20.8013 26.5632C22.4213 26.5632 23.3573 25.5822 23.3573 24.4662C23.3573 23.5212 22.8623 22.9632 22.0343 22.6302L21.1973 22.2972C20.6033 22.0632 20.1893 21.9192 20.1893 21.5412C20.1893 21.1902 20.4863 20.9922 20.9813 20.9922C21.5033 20.9922 21.9173 21.1722 22.3583 21.5052L23.1593 20.4972C22.5743 19.9122 21.7553 19.6152 20.9813 19.6152C19.5593 19.6152 18.5513 20.5152 18.5513 21.6402C18.5513 22.6122 19.2083 23.1972 19.9103 23.4762L20.7653 23.8362C21.3413 24.0792 21.7103 24.2052 21.7103 24.5922C21.7103 24.9522 21.4313 25.1772 20.8373 25.1772C20.3063 25.1772 19.6853 24.8982 19.2173 24.4932L18.2993 25.6002C18.9923 26.2392 19.9283 26.5632 20.8013 26.5632ZM23.8163 26.4372H25.5263L26.1023 25.1322C26.2553 24.7812 26.4083 24.4302 26.5613 24.0162H26.5973C26.7773 24.4302 26.9303 24.7812 27.0923 25.1322L27.7133 26.4372H29.5043L27.6593 23.0622L29.3873 19.7322H27.6863L27.2003 20.9382C27.0653 21.2532 26.9213 21.6042 26.7683 22.0362H26.7323C26.5433 21.6042 26.3993 21.2532 26.2463 20.9382L25.7063 19.7322H23.9153L25.6523 22.9902L23.8163 26.4372Z" fill="white"/>
+</svg>

+ 33 - 0
src/pages/knowledge/components/asistant-message/index.tsx

@@ -0,0 +1,33 @@
+import { View, Text, Image } from "@tarojs/components";
+
+export const WelcomeCard = () => {
+  return (
+    <View>
+      <View>
+        Hi~我是你的 AI 小助手!
+        请将资料发送到我的企业微信,我会自动为你解析内容,并同步到这里。
+      </View>
+      <Text>
+        {` · 无限制,图片/文档/链接等多种格式;
+         · 无需小程序,直接在微信内操作;
+         · 智能解析处理,生成高质量的QA集。`}
+      </Text>
+      <Image
+        src="https://nexthuman.cn/api-web/img/wechat.9d5eaf4d.jpg"
+        style={{ width: "160px", height: "160px" }}
+      />
+    </View>
+  );
+};
+export const AddSuccessfulTips = () => {
+  return (
+    <View>
+      <Text>
+        {` 🎉 添加成功!
+          你已成功添加 AI 企业微信助手,快将资料发送给它,让知识自动上传到你的智能体吧~
+        `}
+      </Text>
+      <View className="button-rounded button-primary mb-8">前往发送</View>
+    </View>
+  );
+};

+ 1 - 1
src/pages/knowledge/components/container-header/index.module.less

@@ -2,7 +2,7 @@
   width: 100%;
   border-top-left-radius: 24px;
   border-top-right-radius: 24px;
-  padding: 20px 16px;
+  padding-top: 20px;
   border-top-width: 1px;
   border-top: 1px solid #FFFFFF;
   backdrop-filter: blur(38px);

+ 1 - 1
src/pages/knowledge/components/container-header/index.tsx

@@ -5,7 +5,7 @@ const Index = () => {
   
   return (
     <View className={style.container}>
-
+      
     </View>
   )
 }

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 23 - 0
src/pages/knowledge/components/personal-tab/index.tsx


+ 16 - 0
src/pages/knowledge/components/rounded-label/index.module.less

@@ -0,0 +1,16 @@
+.roundedLabel{
+  display: flex;
+  align-items: center;
+  gap: 2px;
+  border-radius: 40px;
+  padding: 2px 8px;
+  color: rgba(#000, .25);
+  line-height: 11px;
+  font-weight: 400;
+  background: rgba(#000, .03);
+}
+
+.roundedLabelIcon{
+  width: 16px;
+  height: 16px;
+}

+ 17 - 0
src/pages/knowledge/components/rounded-label/index.tsx

@@ -0,0 +1,17 @@
+import { View } from "@tarojs/components";
+import style from './index.module.less';
+export interface IndexProps {
+  text: string,
+  icon: ()=> JSX.Element
+}
+
+const Index = ({ text, icon }: IndexProps) => {
+  
+  return (
+    <View className={style.roundedLabel}>
+      <View className={style.roundedLabelIcon}>{icon()}</View><View>{text}</View>
+    </View>
+  )
+}
+
+export default Index;

+ 0 - 48
src/pages/knowledge/index.module.less

@@ -1,48 +0,0 @@
-.importCardButton{
-  display: flex;
-  width: 100%;
-  box-sizing: border-box;
-  padding: 36px 45px 28px 45px;
-  flex-direction: column;
-  justify-content: center;
-  align-items: center;
-  border-radius: 20px;
-  background-color: white;
-}
-
-.importTips{
-  color: #000;
-  text-align: center;
-  font-size: 14px;
-  font-weight: 500;
-  line-height: 24px;
-}
-
-.fileItem{
-  width: 100%;
-  box-sizing: border-box;
-  display: flex;
-  padding: 18px 12px;
-  align-items: center;
-  gap: 12px;
-  border-radius: 12px;
-  background: white;
-}
-
-.createButton{
-  margin-bottom: 16px;
-  display: flex;
-  justify-content: center;
-  align-items: center;
-  width: 56px;
-  height: 56px;
-  border-radius: 100%;
-  background-color: var(--color-primary);
-}
-.iconAdd{
-  width: 16px;
-  height: 16px;
-}
-.deleteButton{
-  color: rgba(#000, .2);
-}

+ 9 - 23
src/pages/knowledge/index.tsx

@@ -1,54 +1,40 @@
 /**
- * 对话
+ * 知识库
  */
 
-import { useRef, useState, type ChangeEvent } from "react";
-import { Image, View } from "@tarojs/components";
+import { View } from "@tarojs/components";
 
 import PageCustom from "@/components/page-custom/index";
 import NavBarNormal from "@/components/nav-bar-normal/index";
-import style from "./index.module.less";
-import Taro, { useDidShow, useReady } from "@tarojs/taro";
 import WemetaTabs from "@/components/wemeta-tabs/index";
-import ContainerHeader from './components/container-header'
+import PersonalTab from './components/personal-tab'
 
 
 export default function Index() {
-
+  
   const tabList = [
     {
       key: "1",
       label: "个人知识",
-      children: (
-        <>
-          <View className="pt-12">
-            <ContainerHeader />
-          </View>
-        </>
-      ),
+      children: <View><PersonalTab /></View> ,
     },
     {
       key: "2",
       label: "企业知识",
       children: (
         <>
-          <View className="pt-12">
-            
-          </View>
+          <View className="pt-12"></View>
         </>
       ),
     },
   ];
   return (
-    <PageCustom >
+    <PageCustom>
       <NavBarNormal backText="知识库"></NavBarNormal>
       <View className="w-full">
-        <View className="pt-8 px-16">
-          <WemetaTabs current="1" list={tabList}></WemetaTabs>
+        <View className="pt-8">
+          <WemetaTabs current="1" list={tabList} className="px-16"></WemetaTabs>
         </View>
-        
-
-
       </View>
     </PageCustom>
   );

+ 1 - 0
src/pages/profile/components/agent-swap/index.module.less

@@ -10,6 +10,7 @@
   height: 144px;
   border-radius: 12px;
   background-color: rgba(#000, .03);
+  border: 1px solid transparent;
 }
 .cardActive{
   .card();

+ 1 - 0
tailwind.config.js

@@ -51,6 +51,7 @@ module.exports = {
       'gray-65': 'rgba(0, 0, 0, 0.65)',
       'gray-sub': 'rgba(0, 0, 0, 0.75)',
       'gray-light': 'rgba(0, 0, 0, 0.08)',
+      'gray-2': 'rgba(0, 0, 0, 0.02)',
       'gray-3': 'rgba(0, 0, 0, 0.03)',
       'gray-4': 'rgba(0, 0, 0, 0.04)',
       'gray-fafafa': '#fafafa',

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.