From e9bb9403b4ade987b2d7071619dbd9bfa2c13565 Mon Sep 17 00:00:00 2001 From: puhui999 Date: Mon, 8 Jul 2024 12:00:34 +0800 Subject: [PATCH 01/24] =?UTF-8?q?=E3=80=90=E4=BC=98=E5=8C=96=E3=80=91spu?= =?UTF-8?q?=EF=BC=9A=E6=96=B0=E5=A2=9E=E5=95=86=E5=93=81=E5=B1=9E=E6=80=A7?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=E5=80=BC=E4=B8=BA=E7=A9=BA=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mall/product/spu/components/SkuList.vue | 36 ++++++++++++------- .../product/spu/form/ProductAttributes.vue | 12 +++---- src/views/mall/product/spu/form/SkuForm.vue | 14 ++++---- 3 files changed, 37 insertions(+), 25 deletions(-) diff --git a/src/views/mall/product/spu/components/SkuList.vue b/src/views/mall/product/spu/components/SkuList.vue index 2befe640..9bbd38e4 100644 --- a/src/views/mall/product/spu/components/SkuList.vue +++ b/src/views/mall/product/spu/components/SkuList.vue @@ -292,6 +292,7 @@ import { createImageViewer } from '@/components/ImageViewer' import { RuleConfig } from '@/views/mall/product/spu/components/index' import { PropertyAndValues } from './index' import { ElTable } from 'element-plus' +import { isEmpty } from '@/utils/is' defineOptions({ name: 'SkuList' }) const message = useMessage() // 消息弹窗 @@ -340,11 +341,22 @@ const imagePreview = (imgUrl: string) => { /** 批量添加 */ const batchAdd = () => { + validateProperty() formData.value!.skus!.forEach((item) => { copyValueToTarget(item, skuList.value[0]) }) } - +/** 校验商品属性属性值 */ +const validateProperty = () => { + // 校验商品属性属性值是否为空,有一个为空都不给过 + const warningInfo = '存在属性属性值为空,请先检查完善属性值后重试!!!' + for (const item of props.propertyList) { + if (!item.values || isEmpty(item.values)) { + message.warning(warningInfo) + throw new Error(warningInfo) + } + } +} /** 删除 sku */ const deleteSku = (row) => { const index = formData.value!.skus!.findIndex( @@ -358,6 +370,7 @@ const tableHeaders = ref<{ prop: string; label: string }[]>([]) // 多属性表 * 保存时,每个商品规格的表单要校验下。例如说,销售金额最低是 0.01 这种。 */ const validateSku = () => { + validateProperty() let warningInfo = '请检查商品各行相关属性配置,' let validate = true // 默认通过 for (const sku of formData.value!.skus!) { @@ -421,7 +434,7 @@ watch( const generateTableData = (propertyList: any[]) => { // 构建数据结构 const propertyValues = propertyList.map((item) => - item.values.map((v) => ({ + item.values.map((v: any) => ({ propertyId: item.id, propertyName: item.name, valueId: v.id, @@ -464,15 +477,14 @@ const generateTableData = (propertyList: any[]) => { */ const validateData = (propertyList: any[]) => { const skuPropertyIds: number[] = [] - formData.value!.skus!.forEach( - (sku) => - sku.properties - ?.map((property) => property.propertyId) - ?.forEach((propertyId) => { - if (skuPropertyIds.indexOf(propertyId!) === -1) { - skuPropertyIds.push(propertyId!) - } - }) + formData.value!.skus!.forEach((sku) => + sku.properties + ?.map((property) => property.propertyId) + ?.forEach((propertyId) => { + if (skuPropertyIds.indexOf(propertyId!) === -1) { + skuPropertyIds.push(propertyId!) + } + }) ) const propertyIds = propertyList.map((item) => item.id) return skuPropertyIds.length === propertyIds.length @@ -543,7 +555,7 @@ watch( return } // 添加新属性没有属性值也不做处理 - if (propertyList.some((item) => item.values!.length === 0)) { + if (propertyList.some((item) => !item.values || isEmpty(item.values))) { return } // 生成 table 数据,即 sku 列表 diff --git a/src/views/mall/product/spu/form/ProductAttributes.vue b/src/views/mall/product/spu/form/ProductAttributes.vue index 28962f47..ffe7397d 100644 --- a/src/views/mall/product/spu/form/ProductAttributes.vue +++ b/src/views/mall/product/spu/form/ProductAttributes.vue @@ -3,7 +3,7 @@
属性名: - + {{ item.name }}
@@ -12,8 +12,8 @@ {{ value.name }} @@ -44,7 +44,6 @@ From 848bc6061217352e2a6132303bb8c8decf94d4eb Mon Sep 17 00:00:00 2001 From: puhui999 Date: Mon, 8 Jul 2024 17:53:56 +0800 Subject: [PATCH 02/24] =?UTF-8?q?=E3=80=90=E6=96=B0=E5=A2=9E=E3=80=91mall?= =?UTF-8?q?=20=E5=AE=A2=E6=9C=8D=E6=B6=88=E6=81=AF=E4=B8=8B=E6=8B=89?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD=EF=BC=8C=E6=9C=89=E6=96=B0=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E6=8F=90=E9=86=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../promotion/kefu/components/KeFuChatBox.vue | 122 ++++++++++++++++-- .../kefu/components/KeFuConversationBox.vue | 23 +--- 2 files changed, 110 insertions(+), 35 deletions(-) diff --git a/src/views/mall/promotion/kefu/components/KeFuChatBox.vue b/src/views/mall/promotion/kefu/components/KeFuChatBox.vue index 872de7ab..ff577325 100644 --- a/src/views/mall/promotion/kefu/components/KeFuChatBox.vue +++ b/src/views/mall/promotion/kefu/components/KeFuChatBox.vue @@ -4,9 +4,16 @@
{{ keFuConversation.userNickname }}
- +
+ 加载更多 +
+
-
+
+
+ 有新消息 + +
@@ -101,23 +116,47 @@ const messageTool = useMessage() const message = ref('') // 消息 const messageList = ref([]) // 消息列表 const keFuConversation = ref({} as KeFuConversationRespVO) // 用户会话 -// 获得消息 TODO puhui999: 先不考虑下拉加载历史消息 +const showNewMessageTip = ref(false) // 显示有新消息提示 +const queryParams = reactive({ + pageNo: 1, + conversationId: 0 +}) +const total = ref(0) // 消息总条数 +// 获得消息 const getMessageList = async (conversation: KeFuConversationRespVO) => { keFuConversation.value = conversation - const { list } = await KeFuMessageApi.getKeFuMessagePage({ - pageNo: 1, - conversationId: conversation.id - }) - messageList.value = list.reverse() - // TODO puhui999: 首次加载时滚动到最新消息,如果加载的是历史消息则不滚动 + queryParams.conversationId = conversation.id + const messageTotal = messageList.value.length + if (total.value > 0 && messageTotal > 0 && messageTotal === total.value) { + return + } + const res = await KeFuMessageApi.getKeFuMessagePage(queryParams) + total.value = res.total + for (const item of res.list) { + if (messageList.value.some((val) => val.id === item.id)) { + continue + } + messageList.value.push(item) + } await scrollToBottom() } +const getMessageList0 = computed(() => { + messageList.value.sort((a: any, b: any) => a.createTime - b.createTime) + return messageList.value +}) + // 刷新消息列表 -const refreshMessageList = () => { +const refreshMessageList = async () => { if (!keFuConversation.value) { return } - getMessageList(keFuConversation.value) + + queryParams.pageNo = 1 + await getMessageList(keFuConversation.value) + if (loadHistory.value) { + // 有下角显示有新消息提示 + showNewMessageTip.value = true + } } defineExpose({ getMessageList, refreshMessageList }) // 是否显示聊天区域 @@ -140,7 +179,7 @@ const handleSendPicture = async (picUrl: string) => { const handleSendMessage = async () => { // 1. 校验消息是否为空 if (isEmpty(unref(message.value))) { - messageTool.warning('请输入消息后再发送哦!') + messageTool.notifyWarning('请输入消息后再发送哦!') return } // 2. 组织发送消息 @@ -167,12 +206,41 @@ const innerRef = ref() const scrollbarRef = ref>() // 滚动到底部 const scrollToBottom = async () => { - // 1. 滚动到最新消息 + // 1. 首次加载时滚动到最新消息,如果加载的是历史消息则不滚动 + if (loadHistory.value) { + return + } + // 2.1 滚动到最新消息,关闭新消息提示 await nextTick() scrollbarRef.value!.setScrollTop(innerRef.value!.clientHeight) - // 2. 消息已读 + showNewMessageTip.value = false + // 2.2 消息已读 await KeFuMessageApi.updateKeFuMessageReadStatus(keFuConversation.value.id) } +// 查看新消息 +const handleToNewMessage = async () => { + loadHistory.value = false + await scrollToBottom() +} + +const loadingMore = ref(false) // 滚动到顶部加载更多 +const loadHistory = ref(false) // 加载历史消息 +const handleScroll = async ({ scrollTop }) => { + const messageTotal = messageList.value.length + if (total.value > 0 && messageTotal > 0 && messageTotal === total.value) { + return + } + // 距顶 20 加载下一页数据 + loadingMore.value = scrollTop < 20 +} +const handleOldMessage = async () => { + loadHistory.value = true + // 加载消息列表 + queryParams.pageNo += 1 + await getMessageList(keFuConversation.value) + loadingMore.value = false + // TODO puhui999: 等页面加载完后,获得上一页最后一条消息的位置,控制滚动到它所在位置 +} /** * 是否显示时间 * @param {*} item - 数据 @@ -196,6 +264,32 @@ const showTime = computed(() => (item: KeFuMessageRespVO, index: number) => { } &-content { + position: relative; + + .loadingMore { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 50px; + background-color: #eee; + color: #666; + text-align: center; + line-height: 50px; + transform: translateY(-100%); + transition: transform 0.3s ease-in-out; + } + + .newMessageTip { + position: absolute; + bottom: 35px; + right: 35px; + background-color: #fff; + padding: 10px; + border-radius: 30px; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* 阴影效果 */ + } + .ss-row-left { justify-content: flex-start; diff --git a/src/views/mall/promotion/kefu/components/KeFuConversationBox.vue b/src/views/mall/promotion/kefu/components/KeFuConversationBox.vue index 947a7ad6..a9ec9444 100644 --- a/src/views/mall/promotion/kefu/components/KeFuConversationBox.vue +++ b/src/views/mall/promotion/kefu/components/KeFuConversationBox.vue @@ -74,7 +74,7 @@ + - diff --git a/src/views/ai/image/index/index.vue b/src/views/ai/image/index/index.vue index ab164545..70666bf8 100644 --- a/src/views/ai/image/index/index.vue +++ b/src/views/ai/image/index/index.vue @@ -27,12 +27,12 @@ - diff --git a/src/views/ai/utils/constants.ts b/src/views/ai/utils/constants.ts index 337cfda3..8ceda73b 100644 --- a/src/views/ai/utils/constants.ts +++ b/src/views/ai/utils/constants.ts @@ -40,3 +40,173 @@ export const AiMusicStatusEnum = { SUCCESS: 20, // 已完成 FAIL: 30 // 已失败 } + +// ========== 【图片 UI】相关的枚举 ========== +export const ImageHotWords = [ + '中国旗袍', + '古装美女', + '卡通头像', + '机甲战士', + '童话小屋', + '中国长城' +] // 图片热词 + +export const ImageHotEnglishWords = [ + 'Chinese Cheongsam', + 'Ancient Beauty', + 'Cartoon Avatar', + 'Mech Warrior', + 'Fairy Tale Cottage', + 'The Great Wall of China' +] // 图片热词(英文) + +export interface ImageModelVO { + key: string + name: string +} + +export const StableDiffusionSamplers = ref([ + { + key: 'DDIM', + name: 'DDIM' + }, + { + key: 'DDPM', + name: 'DDPM' + }, + { + key: 'K_DPMPP_2M', + name: 'K_DPMPP_2M' + }, + { + key: 'K_DPMPP_2S_ANCESTRAL', + name: 'K_DPMPP_2S_ANCESTRAL' + }, + { + key: 'K_DPM_2', + name: 'K_DPM_2' + }, + { + key: 'K_DPM_2_ANCESTRAL', + name: 'K_DPM_2_ANCESTRAL' + }, + { + key: 'K_EULER', + name: 'K_EULER' + }, + { + key: 'K_EULER_ANCESTRAL', + name: 'K_EULER_ANCESTRAL' + }, + { + key: 'K_HEUN', + name: 'K_HEUN' + }, + { + key: 'K_LMS', + name: 'K_LMS' + } +]) + +export const StableDiffusionStylePresets = ref([ + { + key: '3d-model', + name: '3d-model' + }, + { + key: 'analog-film', + name: 'analog-film' + }, + { + key: 'anime', + name: 'anime' + }, + { + key: 'cinematic', + name: 'cinematic' + }, + { + key: 'comic-book', + name: 'comic-book' + }, + { + key: 'digital-art', + name: 'digital-art' + }, + { + key: 'enhance', + name: 'enhance' + }, + { + key: 'fantasy-art', + name: 'fantasy-art' + }, + { + key: 'isometric', + name: 'isometric' + }, + { + key: 'line-art', + name: 'line-art' + }, + { + key: 'low-poly', + name: 'low-poly' + }, + { + key: 'modeling-compound', + name: 'modeling-compound' + }, + // neon-punk origami photographic pixel-art tile-texture + { + key: 'neon-punk', + name: 'neon-punk' + }, + { + key: 'origami', + name: 'origami' + }, + { + key: 'photographic', + name: 'photographic' + }, + { + key: 'pixel-art', + name: 'pixel-art' + }, + { + key: 'tile-texture', + name: 'tile-texture' + } +]) + +export const StableDiffusionClipGuidancePresets = ref([ + { + key: 'NONE', + name: 'NONE' + }, + { + key: 'FAST_BLUE', + name: 'FAST_BLUE' + }, + { + key: 'FAST_GREEN', + name: 'FAST_GREEN' + }, + { + key: 'SIMPLE', + name: 'SIMPLE' + }, + { + key: 'SLOW', + name: 'SLOW' + }, + { + key: 'SLOWER', + name: 'SLOWER' + }, + { + key: 'SLOWEST', + name: 'SLOWEST' + } +]) diff --git a/src/views/ai/utils/utils.ts b/src/views/ai/utils/utils.ts index fc4f8e6c..ab45ae18 100644 --- a/src/views/ai/utils/utils.ts +++ b/src/views/ai/utils/utils.ts @@ -8,6 +8,6 @@ */ /** 判断字符串是否包含中文 */ -export const hasChinese = async (str) => { +export const hasChinese = (str: string) => { return /[\u4e00-\u9fa5]/.test(str) } From 9dfb869a4bb7d57a41292cf34e241f90d2d494de Mon Sep 17 00:00:00 2001 From: puhui999 Date: Tue, 9 Jul 2024 16:14:51 +0800 Subject: [PATCH 08/24] =?UTF-8?q?=E3=80=90=E6=96=B0=E5=A2=9E=E3=80=91mall?= =?UTF-8?q?=20=E5=AE=A2=E6=9C=8D=E5=95=86=E5=93=81=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../promotion/kefu/components/KeFuChatBox.vue | 3 + .../components/message/ProductMessageItem.vue | 101 ++++++++++++++++++ 2 files changed, 104 insertions(+) create mode 100644 src/views/mall/promotion/kefu/components/message/ProductMessageItem.vue diff --git a/src/views/mall/promotion/kefu/components/KeFuChatBox.vue b/src/views/mall/promotion/kefu/components/KeFuChatBox.vue index ff577325..d7b9aeff 100644 --- a/src/views/mall/promotion/kefu/components/KeFuChatBox.vue +++ b/src/views/mall/promotion/kefu/components/KeFuChatBox.vue @@ -55,6 +55,8 @@ + +
+ + + + + + From ebc995ac4c0269b06cd4c2fb693f2bc8357db749 Mon Sep 17 00:00:00 2001 From: puhui999 Date: Tue, 9 Jul 2024 17:00:58 +0800 Subject: [PATCH 09/24] =?UTF-8?q?=E3=80=90=E4=BC=98=E5=8C=96=E3=80=91mall?= =?UTF-8?q?=20=E5=AE=A2=E6=9C=8D=E5=95=86=E5=93=81=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/message/OrderMessageItem.vue | 36 ++++ .../kefu/components/message/ProductItem.vue | 194 ++++++++++++++++++ .../components/message/ProductMessageItem.vue | 83 +------- 3 files changed, 239 insertions(+), 74 deletions(-) create mode 100644 src/views/mall/promotion/kefu/components/message/OrderMessageItem.vue create mode 100644 src/views/mall/promotion/kefu/components/message/ProductItem.vue diff --git a/src/views/mall/promotion/kefu/components/message/OrderMessageItem.vue b/src/views/mall/promotion/kefu/components/message/OrderMessageItem.vue new file mode 100644 index 00000000..923d366b --- /dev/null +++ b/src/views/mall/promotion/kefu/components/message/OrderMessageItem.vue @@ -0,0 +1,36 @@ + + + diff --git a/src/views/mall/promotion/kefu/components/message/ProductItem.vue b/src/views/mall/promotion/kefu/components/message/ProductItem.vue new file mode 100644 index 00000000..6805f24f --- /dev/null +++ b/src/views/mall/promotion/kefu/components/message/ProductItem.vue @@ -0,0 +1,194 @@ + + + + + diff --git a/src/views/mall/promotion/kefu/components/message/ProductMessageItem.vue b/src/views/mall/promotion/kefu/components/message/ProductMessageItem.vue index 847369f8..923d366b 100644 --- a/src/views/mall/promotion/kefu/components/message/ProductMessageItem.vue +++ b/src/views/mall/promotion/kefu/components/message/ProductMessageItem.vue @@ -10,92 +10,27 @@ : '' ]" > -
- - - - {{ getMessageContent.spuName }} - - - {{ getMessageContent.introduction }} - - ¥{{ getMessageContent.price }} - -
+
- From 2204876076ba3c98f5cd32130c6798619624c04d Mon Sep 17 00:00:00 2001 From: cherishsince Date: Tue, 9 Jul 2024 17:05:07 +0800 Subject: [PATCH 10/24] =?UTF-8?q?=E3=80=90=E8=A7=A3=E5=86=B3todo=E3=80=91?= =?UTF-8?q?=E5=AF=B9=E8=AF=9D=E4=B8=AD=E4=B8=8D=E5=85=81=E8=AE=B8=E5=88=87?= =?UTF-8?q?=E6=8D=A2(=E8=87=AA=E5=8A=A8stop=20stream=20=E5=88=A0=E9=99=A4)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/ai/chat/index/index.vue | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/views/ai/chat/index/index.vue b/src/views/ai/chat/index/index.vue index 6b79f138..37dadaec 100644 --- a/src/views/ai/chat/index/index.vue +++ b/src/views/ai/chat/index/index.vue @@ -180,11 +180,6 @@ const handleConversationClick = async (conversation: ChatConversationVO) => { // 更新选中的对话 id activeConversationId.value = conversation.id activeConversation.value = conversation - // 处理进行中的对话 - // TODO @fan:这里,和上面的 “对话进行中,不允许切换” 是不是重叠了? - if (conversationInProgress.value) { - await stopStream() - } // 刷新 message 列表 await getMessageList() // 滚动底部 From b4b901586959c36c2c1e413d07fda9d596f3c5e9 Mon Sep 17 00:00:00 2001 From: cherishsince Date: Tue, 9 Jul 2024 17:14:38 +0800 Subject: [PATCH 11/24] =?UTF-8?q?=E3=80=90=E8=A7=A3=E5=86=B3todo=E3=80=91?= =?UTF-8?q?=E5=AF=B9=E8=AF=9D=E4=B8=AD=E4=B8=8D=E8=83=BD=E6=B8=85=E6=A5=9A?= =?UTF-8?q?=20chat=20=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/ai/chat/index/index.vue | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/views/ai/chat/index/index.vue b/src/views/ai/chat/index/index.vue index 37dadaec..c00617bc 100644 --- a/src/views/ai/chat/index/index.vue +++ b/src/views/ai/chat/index/index.vue @@ -198,7 +198,11 @@ const handlerConversationDelete = async (delConversation: ChatConversationVO) => } /** 清空选中的对话 */ const handleConversationClear = async () => { - // TODO @fan:需要加一个 对话进行中,不允许切换 + // 对话进行中,不允许切换 + if (conversationInProgress.value) { + message.alert('对话中,不允许切换!') + return false + } activeConversationId.value = null activeConversation.value = null activeMessageList.value = [] From cb68ef5fa7073d5fd510208130cacc1af4d2e97a Mon Sep 17 00:00:00 2001 From: cherishsince Date: Tue, 9 Jul 2024 17:17:45 +0800 Subject: [PATCH 12/24] =?UTF-8?q?=E3=80=90=E8=A7=A3=E5=86=B3todo=E3=80=91a?= =?UTF-8?q?i-layout=20100%=E9=AB=98=E5=AE=BD=E9=97=AE=E9=A2=98=EF=BC=8C?= =?UTF-8?q?=E5=8F=AA=E8=83=BD=E9=80=9A=E8=BF=87=20position:=20absolute=20?= =?UTF-8?q?=E6=9D=A5=E7=89=B9=E6=AE=8A=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/ai/chat/index/index.vue | 1 - 1 file changed, 1 deletion(-) diff --git a/src/views/ai/chat/index/index.vue b/src/views/ai/chat/index/index.vue index c00617bc..9d9e98e1 100644 --- a/src/views/ai/chat/index/index.vue +++ b/src/views/ai/chat/index/index.vue @@ -570,7 +570,6 @@ onMounted(async () => { diff --git a/src/views/mall/promotion/kefu/components/message/ProductItem.vue b/src/views/mall/promotion/kefu/components/message/ProductItem.vue index 6805f24f..482ba6f8 100644 --- a/src/views/mall/promotion/kefu/components/message/ProductItem.vue +++ b/src/views/mall/promotion/kefu/components/message/ProductItem.vue @@ -116,6 +116,7 @@ const imagePrediv = (imgUrl: string) => { .ss-order-card-warp { padding: 20px; + border-radius: 10px; background-color: #e2e2e2; .img-box { diff --git a/src/views/mall/promotion/kefu/components/message/ProductMessageItem.vue b/src/views/mall/promotion/kefu/components/message/ProductMessageItem.vue index 923d366b..daf1b0bc 100644 --- a/src/views/mall/promotion/kefu/components/message/ProductMessageItem.vue +++ b/src/views/mall/promotion/kefu/components/message/ProductMessageItem.vue @@ -28,7 +28,7 @@ import ProductItem from './ProductItem.vue' import { UserTypeEnum } from '@/utils/constants' import { KeFuMessageRespVO } from '@/api/mall/promotion/kefu/message' -defineOptions({ name: 'ImageMessageItem' }) +defineOptions({ name: 'ProductMessageItem' }) const props = defineProps<{ message: KeFuMessageRespVO }>() From 326fc3d03f3a6e55416f03bc774c0647d984a35f Mon Sep 17 00:00:00 2001 From: cherishsince Date: Tue, 9 Jul 2024 17:41:58 +0800 Subject: [PATCH 14/24] =?UTF-8?q?=E3=80=90=E8=A7=A3=E5=86=B3todo=E3=80=91e?= =?UTF-8?q?l-button=20icon=20=E6=94=B9=E4=B8=BA=20Icon=20=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=20iconfy=20=E8=B5=84=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/ai/clear.svg | 1 - src/views/ai/chat/index/index.vue | 11 +++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) delete mode 100644 src/assets/ai/clear.svg diff --git a/src/assets/ai/clear.svg b/src/assets/ai/clear.svg deleted file mode 100644 index e75a4e8a..00000000 --- a/src/assets/ai/clear.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/views/ai/chat/index/index.vue b/src/views/ai/chat/index/index.vue index 9d9e98e1..724c67ce 100644 --- a/src/views/ai/chat/index/index.vue +++ b/src/views/ai/chat/index/index.vue @@ -22,11 +22,14 @@ - + + + + + + + - - -
From 5734faa5fcddafe28406983b049e904751b83f90 Mon Sep 17 00:00:00 2001 From: cherishsince Date: Tue, 9 Jul 2024 17:42:30 +0800 Subject: [PATCH 15/24] =?UTF-8?q?=E3=80=90todo=E3=80=91keydown.shift.enter?= =?UTF-8?q?=20=E4=BF=AE=E6=94=B9=E4=B8=BA@=E8=8A=8B=E8=89=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/ai/chat/index/index.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/ai/chat/index/index.vue b/src/views/ai/chat/index/index.vue index 724c67ce..229b8959 100644 --- a/src/views/ai/chat/index/index.vue +++ b/src/views/ai/chat/index/index.vue @@ -365,7 +365,7 @@ const handlePromptInput = (event) => { isComposing.value = false }, 400) } -// TODO @fan:是不是可以通过 @keydown.enter、@keydown.shift.enter 来实现,回车发送、shift+回车换行;主要看看,是不是可以简化 isComposing 相关的逻辑 +// TODO @芋艿:是不是可以通过 @keydown.enter、@keydown.shift.enter 来实现,回车发送、shift+回车换行;主要看看,是不是可以简化 isComposing 相关的逻辑 const onCompositionstart = () => { isComposing.value = true } From 4cfc78566742c2892d56347919af00a6e4235871 Mon Sep 17 00:00:00 2001 From: cherishsince Date: Tue, 9 Jul 2024 17:51:08 +0800 Subject: [PATCH 16/24] =?UTF-8?q?=E3=80=90=E8=A7=A3=E5=86=B3todo=E3=80=91?= =?UTF-8?q?=E8=A7=92=E8=89=B2=E5=88=97=E8=A1=A8=20icon=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E4=B8=BA=E4=B8=BA=20Icon=20=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/ai/chat/index/components/role/RoleList.vue | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/views/ai/chat/index/components/role/RoleList.vue b/src/views/ai/chat/index/components/role/RoleList.vue index 01b1d179..b148b220 100644 --- a/src/views/ai/chat/index/components/role/RoleList.vue +++ b/src/views/ai/chat/index/components/role/RoleList.vue @@ -10,15 +10,13 @@ - @@ -43,9 +41,9 @@ -