From 3cb993333cbb2f80d5a31b48027766262af92a75 Mon Sep 17 00:00:00 2001
From: wujingjing <gersonwu@qq.com>
Date: 星期二, 31 十二月 2024 18:25:34 +0800
Subject: [PATCH] 数据库类型、别名弹窗,指标名称

---
 src/views/project/yw/systemManage/dimensionMgr/DimensionMgr.vue               |   51 +++++++++-------
 src/views/project/yw/systemManage/dimensionMgr/components/AliasDisplayDlg.vue |   69 +++++++++++++++++++++++
 src/views/project/yw/systemManage/dataSourceMgr/DataSourceMgr.vue             |    1 
 src/views/project/yw/systemManage/metricMgr/MetricDetail.vue                  |    7 +-
 4 files changed, 102 insertions(+), 26 deletions(-)

diff --git a/src/views/project/yw/systemManage/dataSourceMgr/DataSourceMgr.vue b/src/views/project/yw/systemManage/dataSourceMgr/DataSourceMgr.vue
index eced396..272fac5 100644
--- a/src/views/project/yw/systemManage/dataSourceMgr/DataSourceMgr.vue
+++ b/src/views/project/yw/systemManage/dataSourceMgr/DataSourceMgr.vue
@@ -52,6 +52,7 @@
 						</template>
 					</el-table-column>
 					<el-table-column prop="title" label="鍚嶇О" fixed="left" show-overflow-tooltip> </el-table-column>
+					<el-table-column label="鏁版嵁搴撶被鍨�" prop="db_type" width="100" show-overflow-tooltip> </el-table-column>
 
 					<el-table-column label="绫诲瀷" prop="type" width="100" show-overflow-tooltip> </el-table-column>
 
diff --git a/src/views/project/yw/systemManage/dimensionMgr/DimensionMgr.vue b/src/views/project/yw/systemManage/dimensionMgr/DimensionMgr.vue
index d748b61..ff8a2bf 100644
--- a/src/views/project/yw/systemManage/dimensionMgr/DimensionMgr.vue
+++ b/src/views/project/yw/systemManage/dimensionMgr/DimensionMgr.vue
@@ -44,7 +44,7 @@
 					:data="displayTableData"
 					highlight-current-row
 				>
-					<el-table-column type="expand" fixed="left">
+					<!-- <el-table-column type="expand" fixed="left">
 						<template #default="scope">
 							<div class="ml-16" v-if="scope.row.alias && Object.keys(scope.row.alias).length > 0">
 								<h3>鍒悕</h3>
@@ -58,10 +58,10 @@
 								</div>
 							</div>
 						</template>
-					</el-table-column>
+					</el-table-column> -->
 					<el-table-column type="index" label="搴忓彿" width="55" fixed="left" align="center"></el-table-column>
 
-					<el-table-column prop="id" label="缁村害缂栧彿" width="125"  fixed="left"></el-table-column>
+					<el-table-column prop="id" label="缁村害缂栧彿" width="125" fixed="left"></el-table-column>
 					<el-table-column prop="title" label="缁村害鍚嶇О" width="120" fixed="left" show-overflow-tooltip> </el-table-column>
 					<el-table-column label="缁村害瀹氫箟" prop="prompt" show-overflow-tooltip> </el-table-column>
 					<el-table-column prop="metrics_group" label="涓婚鍩�" width="130" show-overflow-tooltip>
@@ -73,32 +73,22 @@
 
 					<el-table-column label="绫诲瀷" prop="type" width="100" show-overflow-tooltip> </el-table-column>
 
-					<el-table-column label="鎿嶄綔" width="200" fixed="right" show-overflow-tooltip>
+					<el-table-column label="鎿嶄綔" width="150" 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-bianji !text-[15px] text-blue-400 cursor-pointer" @click="openOptDlg(scope.row)"></i>
-								</el-tooltip>
-								<el-tooltip effect="dark" content="鍒犻櫎" placement="top">
+								<el-tooltip effect="dark" content="鍒悕" placement="top">
 									<i
-										class="ywifont ywicon-shanchu !text-[17px] text-red-400 cursor-pointer"
-										@click="
-											() => {
-												deleteCurrentRow(scope.row, '椤甸潰', metricApi.deleteSupervisor, () => {
-													const foundIndex = tableData.findIndex((item) => item === scope.row);
-													foundIndex > -1 && tableData.splice(foundIndex, 1);
-												});
-											}
-										"
+										class="ywifont ywicon-gongsijieshao !text-[15px] text-blue-400 cursor-pointer"
+										@click="openAliasDisplayDlg(scope.row)"
 									></i>
-								</el-tooltip> -->
+								</el-tooltip>
 							</div>
 						</template>
 					</el-table-column>
 				</el-table>
 			</div>
 		</template>
-
+		<AliasDisplayDlg v-model="aliasDisplayDlgIsShow" :item="aliasDisplayDlgMapRow"></AliasDisplayDlg>
 		<!-- <OptDlg v-model="optDlgIsShow" :item="optDlgMapRow" @insert="insertOpt" @update="updateOpt" :groupId="currentListID"></OptDlg> -->
 		<!-- <MetricPrompt v-model="infoDlgIsShow" :metricItem="infoDlgMapRow"></MetricPrompt>
 		<MetricName v-model="metricNameIsShow" :metricItem="metricNameMapRow"></MetricName> -->
@@ -113,12 +103,13 @@
 import { useQueryTable } from '/@/hooks/useQueryTable';
 // import { useTableSort } from '/@/hooks/useTableSort';
 // import { useValidateUniqueness } from '/@/hooks/useValidateUniqueness';
-import * as dimensionApi from '/@/api/dimension';
-
 import { SupervisorPublished } from '../../lowCode/sqlAmis/types';
+import AliasDisplayDlg from './components/AliasDisplayDlg.vue';
+import * as dimensionApi from '/@/api/dimension';
 import { getSceneGroupTreeByPost } from '/@/api/scene';
 import HMContainer from '/@/components/layout/HMContainer.vue';
 import { OptClassificationMap, classificationEnum } from '/@/views/types/metrics';
+import { ElMessage } from 'element-plus';
 
 const themeDomainData = ref([]);
 const initThemeDomainData = async () => {
@@ -127,7 +118,6 @@
 };
 const selectGroupChange = () => {
 	handleQueryTable();
-	
 };
 const listTreeData = computed(() => {
 	const byParentData = convertListToTree(themeDomainData.value, {
@@ -164,7 +154,7 @@
 
 const queryParams = ref({
 	title: '',
-	group:''
+	group: '',
 });
 const { resetQuery, handleQueryTable, displayTableData } = useQueryTable(tableData, queryParams, () => {
 	displayTableData.value = tableData.value;
@@ -251,6 +241,21 @@
 // 	},
 // });
 //#endregion
+
+//#region ====================== 鍒悕寮圭獥 ======================
+const aliasDisplayDlgIsShow = ref(false);
+const aliasDisplayDlgMapRow = ref(null);
+const openAliasDisplayDlg = (row) => {
+	if (!row.alias || Object.keys(row.alias).length === 0) {
+		ElMessage.warning('璇ョ淮搴︽病鏈夊埆鍚�');
+		return;
+	}
+
+	aliasDisplayDlgMapRow.value = row;
+	aliasDisplayDlgIsShow.value = true;
+};
+
+//#endregion
 onMounted(() => {
 	getTableData();
 	initThemeDomainData();
diff --git a/src/views/project/yw/systemManage/dimensionMgr/components/AliasDisplayDlg.vue b/src/views/project/yw/systemManage/dimensionMgr/components/AliasDisplayDlg.vue
new file mode 100644
index 0000000..51997b2
--- /dev/null
+++ b/src/views/project/yw/systemManage/dimensionMgr/components/AliasDisplayDlg.vue
@@ -0,0 +1,69 @@
+<template>
+	<yw-dialog v-model="isShow" :showFooter="false" width="500" :title="title">
+		<div v-if="item.alias && Object.keys(item.alias).length > 0">
+			<div v-for="key in Object.keys(item.alias)" :key="key">
+				<span>{{ key }}锛�</span>
+				<span>{{ item.alias[key].join(',') }}</span>
+			</div>
+		</div>
+	</yw-dialog>
+</template>
+
+<script setup lang="ts" name="AliasDisplayDlg">
+import _ from 'lodash';
+import { computed, ref, watch } from 'vue';
+import * as metricApi from '/@/api/metrics';
+import ywDialog from '/@/components/dialog/yw-dialog.vue';
+
+const props = defineProps(['item']);
+const isShow = defineModel({
+	type: Boolean,
+});
+
+const tableData = ref([]);
+const title = computed(() => props.item?.title + '鈥斺�斿埆鍚�');
+
+// 闇�瑕佸悎骞跺崟鍏冩牸鐨� prop
+const GROUP_PROP = ['title', 'full_name', 'metrics_define', 'calcu_method'];
+const objectSpanMethod = ({ row, column, rowIndex, columnIndex }) => {
+	if (GROUP_PROP.includes(column.property)) {
+		return {
+			rowspan: row.rowspan,
+			colspan: 1,
+		};
+	}
+};
+
+const parseData = (data: any[]) => {
+	const finalData = (data ?? []).reduce((pre, cur) => {
+		const dimensions = cur.dimensions;
+		pre.push(
+			...dimensions.map((item, index) => ({
+				..._.omit(cur, 'dimensions'),
+				id: cur.id + '_dimension_' + item.id,
+				dimension: item,
+				rowspan: index === 0 ? dimensions.length : undefined,
+			}))
+		);
+		return pre;
+	}, []);
+	return finalData;
+};
+
+watch(
+	() => isShow.value,
+	async (val) => {
+		if (!val) return;
+
+		const res = await metricApi.getMetricNameListByPost({
+			agent_id: props.item.id,
+		});
+		tableData.value = parseData(res?.values);
+	}
+);
+</script>
+<style scoped lang="scss">
+:deep(.el-card__body) {
+	position: relative;
+}
+</style>
diff --git a/src/views/project/yw/systemManage/metricMgr/MetricDetail.vue b/src/views/project/yw/systemManage/metricMgr/MetricDetail.vue
index ffdd5be..152d9d8 100644
--- a/src/views/project/yw/systemManage/metricMgr/MetricDetail.vue
+++ b/src/views/project/yw/systemManage/metricMgr/MetricDetail.vue
@@ -129,9 +129,10 @@
 					<div class="set-detail">
 						<el-divider />
 						<div class="section___vePzi">
-							<div class="item___title">
-								<i class="ywifont ywicon-zhibiao size-[18px] !text-[15px]"></i>
-								<span>{{state.metricBasicInfo.descriptionQuotaItems.title ? state.metricBasicInfo.descriptionQuotaItems.title : '-'}}</span>
+						
+							<div class="item___txXyB">
+								<div class="item_name">鎸囨爣鍚嶇О:</div>
+								<div class="item_value">{{state.metricBasicInfo.descriptionQuotaItems.title ? state.metricBasicInfo.descriptionQuotaItems.title : '-'}}</div>
 							</div>
 							<div class="item___txXyB">
 								<div class="item_name">閲嶈鎬�:</div>

--
Gitblit v1.9.3