From 8d83544ff6e123df4facf40c446e7d9bf4a522b6 Mon Sep 17 00:00:00 2001
From: wujingjing <gersonwu@qq.com>
Date: 星期二, 31 十二月 2024 18:07:54 +0800
Subject: [PATCH] 序号

---
 src/views/project/yw/systemManage/chatLog/ChatLog.vue |  152 +++++++++++++++++++++++++++++++++++---------------
 1 files changed, 107 insertions(+), 45 deletions(-)

diff --git a/src/views/project/yw/systemManage/chatLog/ChatLog.vue b/src/views/project/yw/systemManage/chatLog/ChatLog.vue
index 1b015f7..971a131 100644
--- a/src/views/project/yw/systemManage/chatLog/ChatLog.vue
+++ b/src/views/project/yw/systemManage/chatLog/ChatLog.vue
@@ -5,8 +5,40 @@
 				<el-form-item label="鏃ユ湡鑼冨洿" prop="timeRange">
 					<TimeRange v-model="queryParams.timeRange" :quickActive="TimeRangeEnum.CurrentDay" @change="handleQueryTable" />
 				</el-form-item>
-				<el-form-item label="鎿嶄綔绫诲瀷" prop="type">
-					<el-input v-model="queryParams.type" style="width: 226.4px" placeholder="鎿嶄綔绫诲瀷" clearable @input="debounceQueryTable" />
+
+				<el-form-item label="涓氬姟鍦烘櫙" prop="group_type">
+					<el-select
+						multiple
+						v-model="queryParams.group_type"
+						style="width: 226.4px"
+						placeholder="涓氬姟鍦烘櫙"
+						clearable
+						@change="handleQueryTable"
+					>
+						<el-option v-for="item in groupTypeList" :key="item" :value="item" :label="item"></el-option>
+					</el-select>
+				</el-form-item>
+				<el-form-item label="闂鍐呭" prop="question">
+					<el-input
+						v-model="queryParams.question"
+						style="width: 226.4px"
+						placeholder="闂鍐呭"
+						clearable
+						@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" />
@@ -24,32 +56,50 @@
 					:data="tableData"
 					highlight-current-row
 				>
-					<el-table-column prop="time" label="鏃堕棿" width="185" fixed="left" show-overflow-tooltip> </el-table-column>
-					<el-table-column label="鐢ㄦ埛" prop="user" width="70" show-overflow-tooltip> </el-table-column>
-					<el-table-column label="绫诲瀷" prop="type" show-overflow-tooltip> </el-table-column>
+					<el-table-column label="鐢ㄦ埛" prop="user" width="120" fixed="left" show-overflow-tooltip> </el-table-column>
+					<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>
+						<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">
+							<div class="space-x-3 items-center flex">
+								<el-tooltip effect="dark" content="鍥炵瓟鍐呭" placement="top">
+									<i class="ywifont ywicon-xiaoxi1 !text-[15px] text-blue-400 cursor-pointer" @click="openShowAnswer(scope.row)"></i>
+								</el-tooltip>
+							</div> </template
+					></el-table-column>
 				</el-table>
 			</div>
 		</template>
+
+		<AnswerView v-model="infoDlgIsShow" :item="infoDlgMapRow"></AnswerView>
 	</HMContainer>
 </template>
 
 <script setup lang="ts">
-import { debounce, getItemMap } from '/@/utils/util';
+import { debounce, getItemMap, toMyFixed } from '/@/utils/util';
 
 import { onMounted, ref } from 'vue';
 
-
 import * as userApi from '/@/api/auth/user';
 
+import { ElMessage, ElMessageBox } from 'element-plus';
+import { computed, nextTick } from 'vue';
+import { getChatHistoryListByPost } from '/@/api/ai/chat';
 import { getRoleInfoListByPost } from '/@/api/auth/role';
-import HMContainer from '/@/components/layout/HMContainer.vue';
-import { ElMessageBox, ElMessage } from 'element-plus';
-import { computed } from 'vue';
 import TimeRange from '/@/components/chat/chatComponents/summaryCom/components/recordSet/components/TimeRange.vue';
 import { TimeRangeEnum } from '/@/components/chat/chatComponents/summaryCom/components/recordSet/components/types';
-import { getOperateLog } from '/@/api/auth/log';
-import { nextTick } from 'vue';
-
+import HMContainer from '/@/components/layout/HMContainer.vue';
+import { getSceneGroupTreeByPost } from '/@/api/scene';
+import AnswerView from './optDlg/AnswerView.vue';
 //#region ====================== 琛ㄦ牸鏁版嵁锛宼able init ======================
 const tableLoading = ref(false);
 const tableData = ref([]);
@@ -61,46 +111,57 @@
 
 const queryParams = ref({
 	timeRange: [],
-	type: '',
+	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([]);
+
+//鑾峰彇鍦烘櫙閫夋嫨鍒楄〃
+const getSceneGroupList = async () => {
+	const res = await getSceneGroupTreeByPost();
+	sceneGroupList.value = res?.groups ?? [];
+};
+
 const handleQueryTable = async () => {
-	const res = await getOperateLog({
+	const res = await getChatHistoryListByPost({
 		start_time: queryParams.value.timeRange[0],
 		end_time: queryParams.value.timeRange[1],
- 
-		type: queryParams.value.type,
+
+		group_type: queryParams.value.group_type.join(','),
 		user: queryParams.value.user,
+		question: queryParams.value.question,
+		state:queryParams.value.state
 	});
 
-	tableData.value = res?.values ?? [];
+	tableData.value = (res?.values ?? []).map((item) => {
+		let runSecond;
+		if (item.run_ms !== 0 && !item.run_ms) {
+			runSecond = null;
+		} else {
+			runSecond = toMyFixed(Number(item.run_ms) / 1000, 2);
+		}
+		return {
+			...item,
+			run_ms: runSecond,
+		};
+	});
 };
 
 const debounceQueryTable = debounce(handleQueryTable, 400);
 
 //#endregion
-
-//#region ====================== 娣诲姞淇敼鎿嶄綔 ======================
-const optDlgIsShow = ref(false);
-const optDlgMapRow = ref(null);
-const openOptDlg = (row?: any) => {
-	optDlgMapRow.value = row;
-	optDlgIsShow.value = true;
-};
-
-const updateOpt = (formValue) => {
-	const foundIndex = tableData.value.findIndex((item) => item.user_id === formValue.user_id);
-	if (foundIndex > -1) {
-		tableData.value[foundIndex] = {
-			...tableData.value[foundIndex],
-			...formValue,
-		};
-	}
-};
-
-const insertOpt = (newData) => {
-	tableData.value.push({ ...newData });
+//#region ====================== 鏌ョ湅 ======================
+const infoDlgIsShow = ref(false);
+const infoDlgMapRow = ref(null);
+const openShowAnswer = (row) => {
+	infoDlgMapRow.value = row;
+	infoDlgIsShow.value = true;
 };
 //#endregion
 
@@ -158,13 +219,14 @@
 
 //#endregion
 
-const roleList = ref([]);
-const roleMap = computed(() => getItemMap(roleList.value, 'id'));
-const getRoleList = async () => {
-	const res = await getRoleInfoListByPost();
+// const roleList = ref([]);
+// const roleMap = computed(() => getItemMap(roleList.value, 'id'));
+// const getRoleList = async () => {
+// 	const res = await getRoleInfoListByPost();
 
-	roleList.value = res?.values ?? [];
-};
+// 	roleList.value = res?.values ?? [];
+// };
+getSceneGroupList();
 onMounted(async () => {
 	nextTick(() => {
 		handleQueryTable();

--
Gitblit v1.9.3