From 0bb7dffa90bfa3bd5ad04b75da9c31d21347c668 Mon Sep 17 00:00:00 2001 From: wujingjing <gersonwu@qq.com> Date: 星期一, 13 一月 2025 17:06:02 +0800 Subject: [PATCH] 用户管理页面调整 --- src/views/project/yw/systemManage/dimensionMgr/DimensionMgr.vue | 130 +++++++++++++++++++++++++++++++------------ 1 files changed, 94 insertions(+), 36 deletions(-) diff --git a/src/views/project/yw/systemManage/dimensionMgr/DimensionMgr.vue b/src/views/project/yw/systemManage/dimensionMgr/DimensionMgr.vue index 3816488..6ef8082 100644 --- a/src/views/project/yw/systemManage/dimensionMgr/DimensionMgr.vue +++ b/src/views/project/yw/systemManage/dimensionMgr/DimensionMgr.vue @@ -5,9 +5,29 @@ <el-form-item label="鍚嶇О" prop="title"> <el-input v-model="queryParams.title" style="width: 226.4px" placeholder="鍚嶇О" clearable @input="debounceQueryTable" /> </el-form-item> + <el-form-item label="涓婚鍩�" prop="metrics_group"> + <el-tree-select + filterable + style="width: 206.4px" + :props="{ + id: 'group_id', + label: 'group_name', + children: 'Children', + }" + v-model="queryParams.group" + node-key="group_id" + clearable + defaultExpandAll + :data="listTreeData" + placeholder="璇烽�夋嫨涓婚鍩�" + check-strictly + @change="selectGroupChange" + > + </el-tree-select> + </el-form-item> <el-form-item> - <el-button type="primary" icon="ele-Search" @click="handleQueryTable"> 鏌ヨ </el-button> + <!-- <el-button type="primary" icon="ele-Search" @click="handleQueryTable"> 鏌ヨ </el-button> --> <el-button icon="ele-Refresh" @click="resetQuery">閲嶇疆 </el-button> <!-- <el-button icon="ele-Plus" @click="openOptDlg()"> 娣诲姞 </el-button> --> </el-form-item> @@ -24,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> @@ -38,37 +58,37 @@ </div> </div> </template> + </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="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> + <template #default="scope"> + {{ themeDomainMap[scope.row.group]?.group_name }} + </template> </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 label="鍗曚綅" prop="unit" width="100" show-overflow-tooltip> </el-table-column> + <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" v-if="checkAliasExist(scope.row)"> <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> --> @@ -76,29 +96,49 @@ </template> <script setup lang="ts"> -import { useDraggable } from '@vueuse/core'; -import { debounce, deleteCurrentRow } from '/@/utils/util'; +import { convertListToTree, debounce, getItemMap } from '/@/utils/util'; -import { onMounted, ref } from 'vue'; +import { computed, onMounted, ref } from 'vue'; import { usePageDisplay } from '/@/hooks/usePageDisplay'; import { useQueryTable } from '/@/hooks/useQueryTable'; // import { useTableSort } from '/@/hooks/useTableSort'; // import { useValidateUniqueness } from '/@/hooks/useValidateUniqueness'; -import { ElMessage } from 'element-plus'; -import { nextTick } from 'vue'; -import OptDlg from './optDlg/OptDlg.vue'; +import { SupervisorPublished } from '../../lowCode/sqlAmis/types'; +import AliasDisplayDlg from './components/AliasDisplayDlg.vue'; import * as dimensionApi from '/@/api/dimension'; -import Chat from '/@/components/chat/Chat.vue'; -import { gotoRoute } from '/@/utils/route'; -import { useCompRef } from '/@/utils/types'; - -import axios, { CancelTokenSource } from 'axios'; +import { getSceneGroupTreeByPost } from '/@/api/scene'; import HMContainer from '/@/components/layout/HMContainer.vue'; -import { useUpdateData } from '/@/hooks/useUpdateData'; -import { SupervisorPublished, supervisorPublishedMap } from '../../lowCode/sqlAmis/types'; -import MetricPrompt from './optDlg/MetricPrompt.vue'; -import MetricName from './optDlg/MetricName.vue'; +import { OptClassificationMap, classificationEnum } from '/@/views/types/metrics'; +import { ElMessage } from 'element-plus'; +const themeDomainData = ref([]); +const initThemeDomainData = async () => { + const res = await getSceneGroupTreeByPost(); + themeDomainData.value = res.groups || []; +}; +const selectGroupChange = () => { + handleQueryTable(); +}; +const listTreeData = computed(() => { + const byParentData = convertListToTree(themeDomainData.value, { + ID: 'group_id', + Children: 'Children', + ParentID: 'p_group_id', + }); + const result = []; + byParentData.forEach((item) => { + if ( + item.group_type != OptClassificationMap[classificationEnum.Office] && + item.group_type != OptClassificationMap[classificationEnum.Knowledge] + ) { + result.push(item); + } + }); + return result; +}); +const themeDomainMap = computed(() => { + return getItemMap(themeDomainData.value, 'group_id'); +}); //#region ====================== 琛ㄦ牸鏁版嵁锛宼able init ====================== const tableLoading = ref(false); const tableData = ref([]); @@ -114,11 +154,12 @@ const queryParams = ref({ title: '', + group: '', }); const { resetQuery, handleQueryTable, displayTableData } = useQueryTable(tableData, queryParams, () => { displayTableData.value = tableData.value; }); -const debounceQueryTable = debounce(handleQueryTable,400) +const debounceQueryTable = debounce(handleQueryTable, 400); //#endregion @@ -200,8 +241,25 @@ // }, // }); //#endregion + +//#region ====================== 鍒悕寮圭獥 ====================== +const aliasDisplayDlgIsShow = ref(false); +const aliasDisplayDlgMapRow = ref(null); +const checkAliasExist = (row: any) => { + const isExist = row.alias && Object.keys(row.alias).length > 0; + return isExist; +}; +const openAliasDisplayDlg = (row) => { + + + aliasDisplayDlgMapRow.value = row; + aliasDisplayDlgIsShow.value = true; +}; + +//#endregion onMounted(() => { getTableData(); + initThemeDomainData(); }); </script> <style scoped lang="scss"></style> -- Gitblit v1.9.3