From 7166af32bfa8638c93fb5c655e1404746e1d503e Mon Sep 17 00:00:00 2001 From: wujingjing <gersonwu@qq.com> Date: 星期一, 22 七月 2024 13:51:38 +0800 Subject: [PATCH] Merge branch 'master' of http://47.103.154.90:83/r/WI/Web.V1.0 --- src/views/project/ch/home/Home.vue | 30 +++++++++ src/components/drawer/CustomDrawer.vue | 108 ++++++++--------------------------- src/views/project/ch/home/component/waterRight/bottom.vue | 4 + 3 files changed, 58 insertions(+), 84 deletions(-) diff --git a/src/components/drawer/CustomDrawer.vue b/src/components/drawer/CustomDrawer.vue index a7bd177..14482cf 100644 --- a/src/components/drawer/CustomDrawer.vue +++ b/src/components/drawer/CustomDrawer.vue @@ -30,19 +30,19 @@ <el-input v-model="queryParams.sample_title" placeholder="鎼滅储鏇村" class="set-input" :prefix-icon="Search" clearable> </el-input> </div> - <div class="mt20 w100 relative"> + <div class="mt20 w100 relative" v-show="customTagList.length > 0"> <div class="overflow-hidden max-h-[36px] transition-[max-height 0.2s] w100 flex flex-wrap text-xs leading-[14px] m-[-5px]" :class="{ 'set-expand-active': state.isShowExpand }" > <div - v-for="item in state.exampleTabList" - :key="item.ID" - :class="{ 'set-label-active': state.activeLabelName === item.ID }" + v-for="item in customTagList" + :key="item.section_id" + :class="{ 'set-label-active': state.activeLabelName === item.section_id }" @click="handleLabelClick(item)" class="cursor-pointer m-[5px] py-[5px] px-[10px] rounded-xl border border-solid border-[#b2b2b2] bg-[#e0e7f] text-[#4c4c4c] transition-[background-color .1s, color .1s, border-color .1s]" > - {{ item.Title }} + {{ item.section_name }} </div> </div> <div class="bg-[#e0e7fb] absolute right-0 top-0 text-[#131313] w-[30px] h-[26px] cursor-pointer flex items-center"> @@ -77,19 +77,19 @@ <el-input v-model="instructParams.template_title" placeholder="鎼滅储鏇村" class="set-input" :prefix-icon="Search" clearable> </el-input> </div> - <div class="mt20 w100 relative"> + <div class="mt20 w100 relative" v-show="customOfficeList.length > 0"> <div class="overflow-hidden max-h-[36px] transition-[max-height 0.2s] w100 flex flex-wrap text-xs leading-[14px] m-[-5px]" :class="{ 'set-expand-active': state.isShowExpand }" > <div - v-for="item in state.instructList" - :key="item.ID" - :class="{ 'set-label-active': state.activeInstructName === item.ID }" + v-for="item in customOfficeList" + :key="item.section_id" + :class="{ 'set-label-active': state.activeInstructName === item.section_id }" @click="handleInstructClick(item)" class="cursor-pointer m-[5px] py-[5px] px-[10px] rounded-xl border border-solid border-[#b2b2b2] bg-[#e0e7f] text-[#4c4c4c] transition-[background-color .1s, color .1s, border-color .1s]" > - {{ item.Title }} + {{ item.section_name }} </div> </div> <div class="bg-[#e0e7fb] absolute right-0 top-0 text-[#131313] w-[30px] h-[26px] cursor-pointer flex items-center"> @@ -129,7 +129,7 @@ <script setup lang="ts"> import { Search } from '@element-plus/icons-vue'; -import { computed, onMounted, reactive, ref, watch } from 'vue'; +import { computed, onMounted, reactive, ref, toRefs, watch } from 'vue'; import { getSelectSample, getUserTemplateList } from '/@/api/ai/chat'; import { useSearch } from '/@/hooks/useSearch'; import { activeRoomId, activeSampleId, setRoomConfig } from '/@/stores/chatRoom'; @@ -140,74 +140,8 @@ { ID: 2, Name: '鎸囦护妯℃澘' }, ], activeName: 1, - exampleTabList: [ - { - ID: 1, - Title: '宸ヤ綔', - }, - { - ID: 2, - Title: '鑱屽満', - }, - { - ID: 3, - Title: '绉戝', - }, - { - ID: 4, - Title: '姹傝亴', - }, - { - ID: 5, - Title: '鏂拌兘婧�,姹借溅,鏁版嵁', - }, - { - ID: 6, - Title: '鍐欎綔', - }, - { - ID: 7, - Title: '瀛︿範', - }, - { - ID: 8, - Title: '鍒涗綔', - }, - ], - instructList: [ - { - ID: 1, - Title: '鏂囧鏋勬��', - }, - { - ID: 2, - Title: '璇█缈昏瘧', - }, - { - ID: 3, - Title: '楂樻晥绛栧垝', - }, - { - ID: 4, - Title: '椤鹃棶涓撳', - }, - { - ID: 5, - Title: '浠g爜缂栫▼', - }, - { - ID: 6, - Title: '鍔炲叕鍐欎綔', - }, - { - ID: 7, - Title: '鍋ュ悍绠″', - }, - { - ID: 8, - Title: '鍙戠幇鎺㈢储', - }, - ], + exampleTabList: [], + instructList: [], activeLabelName: 0, activeInstructName: 0, isShowExpand: false, @@ -227,7 +161,17 @@ const isShow = defineModel('isShow', { type: Boolean, }); - +const props = defineProps({ + customTagList: { + type: Array, + default: () => [], + }, + customOfficeList: { + type: Array, + default: () => [], + }, +}); +let { customTagList, customOfficeList } = toRefs(props); const emit = defineEmits(['updateChatInput']); const rightBox = computed(() => (isShow.value ? 354 : 0)); onMounted(() => {}); @@ -281,11 +225,11 @@ }; //鏍囩鐐瑰嚮浜嬩欢(鎻愰棶绀轰緥) const handleLabelClick = (item) => { - state.activeLabelName = item.ID; + state.activeLabelName = item.section_id; }; //鏍囩鐐瑰嚮浜嬩欢(鎸囦护妯℃澘) const handleInstructClick = (item) => { - state.activeInstructName = item.ID; + state.activeInstructName = item.section_id; }; //灞曞紑鏀惰捣 diff --git a/src/views/project/ch/home/Home.vue b/src/views/project/ch/home/Home.vue index e041074..c94aabe 100644 --- a/src/views/project/ch/home/Home.vue +++ b/src/views/project/ch/home/Home.vue @@ -14,10 +14,16 @@ ref="waterCenterRef" @updateChatInput="updateChatInput" /> - <waterBottom /> + <waterBottom @tagListClick="tagListClick" /> </div> - <CustomDrawer v-model:isShow="state.isShowAdvanceExample" ref="customDrawerrRef" @updateChatInput="updateChatInput" /> + <CustomDrawer + v-model:isShow="state.isShowAdvanceExample" + ref="customDrawerrRef" + @updateChatInput="updateChatInput" + :customTagList="state.customTagList" + :customOfficeList="state.customOfficeList" + /> </div> </div> <!-- <p class="declare"> @@ -40,6 +46,8 @@ import CustomDrawer from '/@/components/drawer/CustomDrawer.vue'; let state = reactive({ isShowAdvanceExample: false, + customTagList: [], + customOfficeList: [], }); const topRef = ref(null); @@ -54,6 +62,24 @@ customDrawerrRef.value.getTableData(); } }; +const tagListClick = (val) => { + if (val.length > 0) { + const selectTagList = []; + const officeList = []; + val.forEach((item) => { + if (item.section_id != 'office_assistant') { + selectTagList.push(item); + } else { + officeList.push(item); + } + }); + state.customTagList = selectTagList; + state.customOfficeList = officeList; + } else { + state.customTagList = []; + state.customOfficeList = []; + } +}; </script> <style scoped lang="scss"> .pc-chat_room { diff --git a/src/views/project/ch/home/component/waterRight/bottom.vue b/src/views/project/ch/home/component/waterRight/bottom.vue index a92e7aa..cb72e7f 100644 --- a/src/views/project/ch/home/component/waterRight/bottom.vue +++ b/src/views/project/ch/home/component/waterRight/bottom.vue @@ -63,6 +63,9 @@ applicationScenarios: [], scenariosIds: [], }); +const emits = defineEmits<{ + (event: 'tagListClick', data): void; +}>(); const changeScenarios = async (item) => { activeSectionAId.value = item.section_id; setRoomConfig(activeRoomId.value, 'isAnswerByLLM', false); @@ -85,6 +88,7 @@ sectionItem.Icon = iconList[index]; }); state.applicationScenarios = res.sections; + emits('tagListClick', res.sections); res.sections?.[0] && changeScenarios(res.sections[0]); }; const groupedArray = computed(() => { -- Gitblit v1.9.3