Explorar el Código

fix: 修复微官网组件字符长度限制

sheldon hace 2 semanas
padre
commit
6406e98284

+ 25 - 4
src/components/component-list/components/card-contacts/index.tsx

@@ -1,4 +1,4 @@
-import Taro from "@tarojs/taro";
+import Taro, { useDidShow } from "@tarojs/taro";
 import { View, Image } from "@tarojs/components";
 import WidgetCard from "@/components/widgets/widget-card/index";
 import ContactCard from "@/components/contact-card/index";
@@ -8,6 +8,8 @@ import { axios } from "taro-axios";
 import { useEffect, useState } from "react";
 import { TAgent, TComponentItem } from "@/types/agent";
 import { TContactItem } from "@/types/contact";
+import { getAgentBatch } from "@/service/agent";
+import { isSuccess } from "@/utils";
 
 interface Props {
   index: number;
@@ -35,10 +37,29 @@ export default ({
   
   const contacts = (component.data.values ?? []) as (TAgent|TContactItem)[]
 
+  const [list, setList] = useState<(TAgent|TContactItem)[]>(contacts);
+
 
   // 非编辑模式且垂直平铺,背景显示为白色
   const bgStyle = (component.data?.layout === "mini" || editMode) ? style.bgMini : style.bgFull
 
+
+  
+  const fetchData = async () => {
+    const response = await getAgentBatch(contacts.map(item=> item.agentId).join(','));
+    console.log(1111, response);
+    if(isSuccess(response.status)){ 
+      console.log('获取名片数据', response.data);
+      setList(response.data);
+    }
+  }
+    
+  
+
+  useEffect(()=> {
+    fetchData()
+  }, [])
+
   const handleClick= (item: TAgent|TContactItem) => {
     if(!editMode){
       Taro.navigateTo({
@@ -49,7 +70,7 @@ export default ({
 
   
   const renderEmpty = ()=> {
-    if(contacts.length){
+    if(list.length){
       return <></>
     }
     return <View className="px-16"><View className="component-card-empty">
@@ -66,7 +87,7 @@ export default ({
     if (component.data?.layout === "mini") {
       return (
         <View className="grid grid-cols-3 gap-x-18 gap-y-20 px-16">
-          {contacts.map((item) => {
+          {list.map((item) => {
             return (
               <View className="flex flex-col gap-8" onClick={()=> {handleClick(item)}}>
                 <View className={style.avatar}>
@@ -87,7 +108,7 @@ export default ({
     // 
     return (
       <View className={`flex flex-col gap-8 ${editMode ? 'px-16' : ''}`}>
-        {contacts.map((item) => {
+        {list.map((item) => {
           return (
             <ContactCard
               className={`${bgStyle} p-16`}

+ 2 - 1
src/components/contact-card/index.tsx

@@ -1,4 +1,5 @@
 import { View, Image } from '@tarojs/components'
+import IconCertificateColor from "@/components/icon/icon-certificate-color";
 import style from './index.module.less'
 import { TContactItem } from '@/types/contact'
 import { TAgent } from '@/types/agent'
@@ -16,7 +17,7 @@ const Index = ({onClick, data, className, renderRight}: Props)=> {
       </View>
       <View className={`${style.infoColumn} truncate`}>
         <View className={style.nameRow}>
-          <View className={`${style.nickName} truncate`}>{data.name}</View>
+          <View className={`flex items-center ${style.nickName} truncate`}>{data.name} {data?.isEnt && <View className="text-12 leading-12"><IconCertificateColor/></View>}</View>
           {/* {data.badges?.map(item=><View className={style.nameMarkup}>{item}</View>)} */}
         </View>
         <View className={`${style.subInfo} truncate`}>{data?.entName}</View>

+ 7 - 18
src/components/popup-link-copyer/index.tsx

@@ -1,8 +1,10 @@
-import { View, PageContainer, Image } from "@tarojs/components"
+import { View, Image } from "@tarojs/components"
 import { TSocialMediaItem } from '@/types/index'
 import style from './index.module.less'
 import Taro from "@tarojs/taro"
 import closeIcon from '@/images/icon-close-8.png';
+
+import Popup from "@/components/popup/popup";
 interface Props {
   setShow: (show: boolean)=>void
   show: boolean,
@@ -12,9 +14,7 @@ interface Props {
 export default ({show, setShow, link, mediaItem}:Props)=> {
   let iconClassName = `${mediaItem.className}`
   let title = mediaItem.label
-  const handlePopupLeave = () => {
-    setShow(false)
-  }
+  
   const handleCopy = (e: any)=> {
     e.stopPropagation();
     // 手动复制并 toast 提示
@@ -45,22 +45,11 @@ export default ({show, setShow, link, mediaItem}:Props)=> {
       },
     })
   }
-  return <PageContainer
+  return <Popup
     show={show}
-    round
-    overlay
-    overlayStyle='background-color: rgba(0, 0, 0, 0.65)'
-    duration={300}
-    position='bottom'
-    customStyle = 'height: 100wh'
-    onAfterLeave={handlePopupLeave}
+    setShow={setShow}
     >
       <View className={style.container}>
-        <View className={style.closeBar}>
-          <View className={style.closeButton} onClick={()=>setShow(false)}>
-            <Image src={closeIcon} mode="widthFix" className={style.closeIcon} />
-          </View>
-        </View>
         <View className={style.content}>
           <View className={style.iconCorrect}></View>
           <View className="text-center text-black leading-32 font-medium text-24">链接已复制</View>
@@ -76,5 +65,5 @@ export default ({show, setShow, link, mediaItem}:Props)=> {
           
         </View>
       </View>
-   </PageContainer>
+   </Popup>
 }

+ 1 - 1
src/pages/editor-pages/editor-channels/index.tsx

@@ -187,7 +187,7 @@ export default function Index() {
               <WemetaInput
                 value={shipingValue.videoId}
                 onInput={(value: string) => setValueByKey("videoId", value)}
-                placeholder="填写视频号ID"
+                placeholder="请输入视频号视频ID"
               />
             </View>
 

+ 9 - 3
src/pages/editor-pages/editor-link-social/index.tsx

@@ -15,8 +15,12 @@ export default function Index() {
   const router = useRouter();
   // 社交媒体类型
   const { mediaType } = router.params;
-  let mt = mediaType ?? "link"; 
-  const defaultLabel = `${SocialMediaType[mt]?.label} 链接`;
+  let mt = mediaType ?? "link";
+  let defaultLabel = `${SocialMediaType[mt]?.label} 链接`;
+  if(mediaType === "shiping"){
+    defaultLabel = "视频号";
+  }
+  
   let currentComponent = useComponentStore((state) => state.currentComponent);
   if (!currentComponent) {
     return <></>;
@@ -66,7 +70,8 @@ export default function Index() {
           <WemetaTextarea
             value={linkValue}
             onInput={(value: string) => setLinkValue(value)}
-            placeholder="填写链接"
+            placeholder="填写视频号ID"
+            maxlength={50}
           ></WemetaTextarea>
         </View>
         {isShiping && (
@@ -93,6 +98,7 @@ export default function Index() {
             value={linkText}
             onInput={(value: string) => setLinkText(value)}
             placeholder="请输入..."
+            maxlength={50}
           />
         </View>
       </View>

+ 3 - 1
src/pages/editor-pages/editor-link/index.tsx

@@ -5,6 +5,7 @@ import PageCustom from "@/components/page-custom/index";
 import NavBarNormal from "@/components/NavBarNormal/index";
 import WemetaTextarea from "@/components/wemeta-textarea/index";
 import WemetaInput from "@/components/wemeta-input/index";
+import ButtonMain from "@/components/buttons/ButtonMain";
 
 import editorStyle from "../editor.module.less";
 import style from "./index.module.less";
@@ -151,6 +152,7 @@ export default function Index() {
                 value={linkText}
                 onInput={(value: string) => setLinkText(value)}
                 placeholder="请输入..."
+                maxlength={50}
               />
             </View>
             <View className={editorStyle.formItem}>
@@ -169,7 +171,7 @@ export default function Index() {
           </View>
         </View>
         <BottomBar>
-          <View className="button-rounded button-primary flex-1" onClick={handleSubmit}>保存</View>
+          <ButtonMain disabled={!linkValue.length} className="flex-1" onClick={handleSubmit}>保存</ButtonMain>
         </BottomBar>
       </View>
       

+ 1 - 0
src/pages/editor-pages/editor-mini-program/index.tsx

@@ -148,6 +148,7 @@ export default function Index() {
                 value={linkValue.name}
                 onInput={(value: string) => setValueByKey("name", value)}
                 placeholder="请输入小程序名字..."
+                maxlength={50}
               />
             </View>
             <View className={editorStyle.formItem}>

+ 3 - 1
src/pages/editor-pages/editor-tel/index.tsx

@@ -5,6 +5,7 @@ import PageCustom from "@/components/page-custom/index";
 import NavBarNormal from "@/components/NavBarNormal/index";
 import { useComponentStore } from "@/store/componentStore";
 import WemetaTextarea from "@/components/wemeta-textarea/index";
+import ButtonMain from "@/components/buttons/ButtonMain";
 import BottomBar from "@/components/BottomBar";
 import { EComponentType } from "@/consts/enum";
 import Taro from "@tarojs/taro";
@@ -53,10 +54,11 @@ export default function Index() {
               value={value}
               onInput={(value: string) => onChange(value)}
               placeholder="请输入电话..."
+              maxlength={14}
             />
         </View>
         <BottomBar>
-          <View className="button-rounded button-primary flex-1" onClick={handleSubmit}>保存</View>
+          <ButtonMain disabled={!value.length} className="flex-1" onClick={handleSubmit}>保存</ButtonMain>
         </BottomBar>
       </View>
     </PageCustom>

+ 5 - 3
src/pages/knowledge/components/PersonalTab/components/ScrollListChat.tsx

@@ -1,4 +1,4 @@
-import { ScrollView, View,Image } from "@tarojs/components";
+import { ScrollView, View,Text } from "@tarojs/components";
 import MessageRobotRich from "@/components/chat-message/MessageRobotRich";
 import MessageRich from "@/components/chat-message/MessageRich";
 import { WelcomeCard  } from "../../AsistantMessage";
@@ -172,8 +172,10 @@ const Index = ({assistantOnly, setTotalCount}: IProps) => {
                     >
                       <View className="flex flex-col flex-1 gap-2 w-full">
                         <View className="text-14 leading-22">{item.title}</View>
-                        <View className="text-12 leading-20 text-gray-45">
-                          {item.createTime} | {item.fileSizeStr}
+                        <View className="flex items-center text-12 leading-20 text-gray-45">
+                          <View className="flex items-center gap-8">
+                            <View>{item.createTime}</View> <View>|</View> { item.parseStatus === 'parsed' ? <View><Text className="text-primary">{`${item.answerCnt}`}</Text> 条问答</View> :  item.fileSizeStr}
+                          </View>
                         </View>
                       </View>
                     </FigureListItem>

+ 4 - 2
src/service/agent.ts

@@ -103,8 +103,10 @@ export const getAgentShareInfo = (agentId: string) => {
 }
 
 // 批量获取智能体信息,用于微官网组件 -- 允许未登录用户直接访问
-export const getAgentBatch = () => {
-  return request.get<TAgentDetail[]>(`${bluebookAiAgent}api/v1/agent/batch`)
+export const getAgentBatch = (agentIds: string) => {
+  return request.get<TAgent[]>(`${bluebookAiAgent}api/v1/agent/batch`, {
+    params: {agentIds}
+  })
 }
 
 // 获取指定企业的同事智能体--用于官网信息中智能体推荐部份--包含自己的智能体