From ffdd85649d262bfacdee2dd6c1b1157ecdf2f59f Mon Sep 17 00:00:00 2001 From: yangyin <1850366751@qq.com> Date: 星期日, 03 十一月 2024 15:52:47 +0800 Subject: [PATCH] 分组统计数量 --- src/views/project/yw/systemManage/questionMgr/RecommendQuestions.vue | 103 ++++++++++++++++++---------------- src/views/project/yw/systemManage/chatLog/ChatLog.vue | 24 +++++++ 2 files changed, 77 insertions(+), 50 deletions(-) diff --git a/src/views/project/yw/systemManage/chatLog/ChatLog.vue b/src/views/project/yw/systemManage/chatLog/ChatLog.vue index f686efb..971a131 100644 --- a/src/views/project/yw/systemManage/chatLog/ChatLog.vue +++ b/src/views/project/yw/systemManage/chatLog/ChatLog.vue @@ -27,6 +27,19 @@ @input="debounceQueryTable" /> </el-form-item> + + <el-form-item label="缁撴灉" prop="state"> + <el-select + + v-model="queryParams.state" + style="width: 226.4px" + placeholder="缁撴灉" + clearable + @change="handleQueryTable" + > + <el-option v-for="item in resultList" :key="item" :value="item" :label="item"></el-option> + </el-select> + </el-form-item> <el-form-item label="鎿嶄綔浜哄憳" prop="user"> <el-input v-model="queryParams.user" style="width: 226.4px" placeholder="鎿嶄綔浜哄憳" clearable @input="debounceQueryTable" /> </el-form-item> @@ -47,7 +60,13 @@ <el-table-column prop="time" label="鏃堕棿" width="185" show-overflow-tooltip> </el-table-column> <el-table-column label="涓氬姟鍦烘櫙" width="120" prop="group_type" show-overflow-tooltip> </el-table-column> <el-table-column label="闂鍐呭" prop="question" show-overflow-tooltip> </el-table-column> - <el-table-column label="缁撴灉" width="80" prop="state" show-overflow-tooltip> </el-table-column> + <el-table-column label="缁撴灉" width="80" prop="state" show-overflow-tooltip> + <template #default="scope"> + <span :class="{ 'text-red-500': scope.row.state === 'NG', 'font-bold': scope.row.state === 'NG' }"> + {{ scope.row.state }} + </span> + </template> + </el-table-column> <el-table-column width="120" label="鑺辫垂鏃堕棿(绉�)" prop="run_ms" show-overflow-tooltip> </el-table-column> <el-table-column label="鎿嶄綔" width="180" fixed="right" show-overflow-tooltip> <template #default="scope"> @@ -95,8 +114,10 @@ group_type: [], user: '', question: '', + state: '', }); +const resultList = ['OK', 'NG']; // groupType 鍒楄〃 const groupTypeList = computed(() => Array.from(new Set(sceneGroupList.value.map((item) => item.group_type)))); const sceneGroupList = ref([]); @@ -115,6 +136,7 @@ group_type: queryParams.value.group_type.join(','), user: queryParams.value.user, question: queryParams.value.question, + state:queryParams.value.state }); tableData.value = (res?.values ?? []).map((item) => { diff --git a/src/views/project/yw/systemManage/questionMgr/RecommendQuestions.vue b/src/views/project/yw/systemManage/questionMgr/RecommendQuestions.vue index e814883..c399695 100644 --- a/src/views/project/yw/systemManage/questionMgr/RecommendQuestions.vue +++ b/src/views/project/yw/systemManage/questionMgr/RecommendQuestions.vue @@ -11,7 +11,7 @@ label: 'group_name', children: 'children', }" - :treedata="listTreeData" + :treedata="listLeftData" title-name="鍦烘櫙鍒楄〃" :show-more-operate="false" :show-add="false" @@ -105,67 +105,71 @@ //#region ====================== 宸︿晶鏍戞暟鎹紝tree init ====================== const leftTreeRef = useCompRef(LeftTreeByMgr); const treeLoading = ref(false); -const listData = ref([]); +const listLeftData = ref([]); const currentListID = computed(() => currentNode.value?.group_id); const currentNode = ref(null); -const listTreeData = computed(() => { - const byParentData = convertListToTree(listData.value, { - ID: 'group_id', - ParentID: 'p_group_id', - Children: 'children', - }); - const result = []; - byParentData.forEach((item) => { - if ( - item.group_type != OptClassificationMap[classificationEnum.Office] && - item.group_type != OptClassificationMap[classificationEnum.Knowledge] - ) { - result.push(item); - } - }); - return result; -}); const handleClickNode = (data) => { nextTick(() => { leftTreeRef.value?.treeRef.setCurrentKey(data.group_id); }); currentNode.value = data; - getTableData(); + terminologyData.value = data.sampleList; }; -const getListTreeData = async () => { - const res = await agentGroupApi.getSceneGroupTreeByPost(); - listData.value = res.groups || []; - const firstListTreeNode = listTreeData.value[0]; - currentNode.value = firstListTreeNode; - getTableData(); -}; + //#endregion //#region ====================== 鎺ㄨ崘闂 ====================== -const terminologyData = ref([]); +const terminologyData = ref([]); //鏄剧ず鐨勬暟鎹簮 //鑾峰彇鍦烘櫙list -const getTableData = async () => { - let selNode = currentNode.value; - let curGroupID = []; - if (selNode.children && selNode.children.length > 0) { - selNode.children.forEach((item) => { - curGroupID.push(item.group_id); - }); - } else { - curGroupID.push(selNode.group_id); - } - const res = await get_scene_group_sample(); - res.samples.forEach((sample, index) => { - sample.Icon = '/static/images/wave/ChatImg.png'; - sample.BgColor = randomHexColor(); +const initData = async () => { + const [treeData, sampleData] = await Promise.all([agentGroupApi.getSceneGroupTreeByPost(), get_scene_group_sample()]); + const tree_Data = treeData.groups ?? []; + const sample_Data = sampleData.samples ?? []; + let result = []; + let new_tree_Data = []; + tree_Data.forEach((node, index) => { + if ( + node.group_type != OptClassificationMap[classificationEnum.Office] && + node.group_type != OptClassificationMap[classificationEnum.Knowledge] + ) { + new_tree_Data.push(node); + } }); - let terminology_Data = []; - curGroupID.forEach((curItem) => { - res.samples.forEach((sample) => { - if (curItem == sample.group_id) terminology_Data.push(sample); + + new_tree_Data.forEach((node, index) => { + node.sampleList = []; + sample_Data.forEach((sample, index) => { + sample.Icon = '/static/images/wave/ChatImg.png'; + sample.BgColor = randomHexColor(); + if (node.group_id == sample.group_id) { + node.sampleList.push(sample); + } }); + if (node.p_group_id) { + node.group_name = `${node.group_name} (${node.sampleList.length})`; + } }); - terminologyData.value = terminology_Data; + + const byParentData = convertListToTree(new_tree_Data, { + ID: 'group_id', + ParentID: 'p_group_id', + Children: 'children', + }); + byParentData.forEach((item) => { + if (item.children && item.children.length > 0) { + item.children.forEach((child_node) => { + item.sampleList = item.sampleList.concat(child_node.sampleList); + }); + } + result.push(item); + + item.group_name = `${item.group_name} (${item.sampleList.length})`; + }); + listLeftData.value = byParentData; + const firstListTreeNode = byParentData[0]; + terminologyData.value = firstListTreeNode.sampleList; + currentNode.value = firstListTreeNode; }; + //闅忔満鐢熸垚棰滆壊 const randomHexColor = () => { return `#${Math.floor(Math.random() * 16777215) @@ -176,6 +180,7 @@ const changeExample = (item) => { openChatTest(item); }; + //#endregion //#region ====================== 琛ㄦ牸鏌ヨ銆佹帓搴忥紝search form init ====================== const queryParams = ref({ @@ -240,8 +245,8 @@ return res; }; //#endregion -onMounted(() => { - getListTreeData(); +onMounted(async () => { + initData(); }); </script> <style scoped lang="scss"> -- Gitblit v1.9.3