From e1109127f4a3ad112c9fe6342dbc2ae4ecb0a536 Mon Sep 17 00:00:00 2001 From: luJianJun <2587063613@qq.com> Date: Fri, 18 Aug 2023 18:05:53 +0800 Subject: [PATCH] =?UTF-8?q?pnpm=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../conversations/ConversationSidebar.tsx | 13 +- src/http/api.ts | 4 +- src/pages/chat/components/dataList.tsx | 135 +++++++++++++++++- src/pages/chat/components/listItem.tsx | 76 +++++----- src/pages/chat/css/list.css | 89 ++++++++++-- 5 files changed, 260 insertions(+), 57 deletions(-) diff --git a/src/components/conversations/ConversationSidebar.tsx b/src/components/conversations/ConversationSidebar.tsx index de63aea..bd7032a 100644 --- a/src/components/conversations/ConversationSidebar.tsx +++ b/src/components/conversations/ConversationSidebar.tsx @@ -24,7 +24,7 @@ export default () => { console.log(count, Number(num[0].replace('(', '').replace(')', ''))) } }) - title = `${setName}(${count + 1})` + title =count?`${setName}(${count + 1})`:`${setName}` return title } @@ -39,12 +39,17 @@ export default () => { onMount(() => { setTimeout(() => { let itemList = conversationMapSortList.get() - let setName = '1' + let setName = JSON.parse(sessionStorage.getItem('dialogueName') as any)||'未命名对话' let numList: number[] = [] itemList.map((res, i) => { - if (checkName(res.name, setName)) numList.push(i) + if (checkName(res.name, setName.name)) numList.push(i) }) - addConversation({name:setNameNum(setName, numList)}) + + if(setName.switch){ + addConversation({name:setNameNum(setName.name, numList)}) + setName.switch=false + sessionStorage.setItem('dialogueName',JSON.stringify({name:setName.name,switch:false})) + } }, 1000) }) diff --git a/src/http/api.ts b/src/http/api.ts index 217c310..a6d6c09 100644 --- a/src/http/api.ts +++ b/src/http/api.ts @@ -20,8 +20,8 @@ export function generateSessionId() { export function baseUrl(){ - // return 'https://ansnid.com'; - return ''; + return 'https://ansnid.com'; + // return ''; } export function getToken(){ diff --git a/src/pages/chat/components/dataList.tsx b/src/pages/chat/components/dataList.tsx index 49c2099..58b1237 100644 --- a/src/pages/chat/components/dataList.tsx +++ b/src/pages/chat/components/dataList.tsx @@ -1,7 +1,8 @@ -import { For, createSignal, createEffect } from 'solid-js' +import { For, createSignal, createEffect, Show, onMount } from 'solid-js' import ConversationSidebarItem from './listItem' import { createStore } from "solid-js/store"; import '../css/list.css' +import { fetchData } from '../../../http/api' export default () => { @@ -10,13 +11,143 @@ export default () => { data: [{ id: '1', Topping: false }, { id: '2', Topping: false }, { id: '3', Topping: false }, { id: '4', Topping: false }, { id: '5', Topping: false }, { id: '6', Topping: false }] }) + type errorObj={ + show:boolean, + message:string + } + + let [errorShow, setErrorShow] = createSignal({ + show: false, + message: '' + }) + + const getList = () => { + fetchData({}, function (data) { + if (data.code === 200) { + setList('data', () => [...data.data]) + } + }, '/chat/api', 'GET'); + } + + //标题 + let dialogueName = '' + + //新建对话框 + const newlyAdded = () => { + window.open(`${location.protocol}//${location.host}`) + } + + //删除记录 + let deleteItem = { key: null, e: null } + const handleDelete = (e: MouseEvent, key: string) => { + let arr = JSON.parse(JSON.stringify(list)).data + fetchData({ + uniqid: arr[key].uniqid + }, function (data) { + if (data.code === 200) { + arr.splice(key, 1) + setList('data', (list) => [...arr]) + } + }, '/chat/delete', 'POST'); + + e.stopPropagation() + } + + //判断平台 + const isMobile = () => { + let flag = navigator.userAgent.match( + /(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i + ); + return flag; + } + //弹窗 + let [pop, setPop] = createSignal(false) + let [popType, setPopType] = createSignal('open') + + const popShow = (type: string, e: any, key: number, name: string = '未命名对话') => { + setPopType(type) + if (type == 'delete') { + deleteItem['key'] = key as any + deleteItem['e'] = e + } + if (type === 'open') dialogueName = name + setPop(!pop()) + } + + //确认按钮 + const determineBtn = () => { + if (popType() === 'open') { + sessionStorage.setItem('dialogueName', JSON.stringify({ name: dialogueName, switch: true })) + if (isMobile()) { + location.pathname = '/' + } else { + newlyAdded() + } + } else if (popType() === 'delete') { + handleDelete(deleteItem['e'] as any, deleteItem['key'] as any) + } + setPop(false) + } + + //显示错误提示 + const setErrorFun=(message:string)=>{ + setErrorShow({ + message, + show:true + }) + } + + //提示弹窗 + const ErrorState = () => ( +