Merge pull request #13259 from dataease/pr@dev-v2_st

feat(系统设置): 增加资源默认排序方式的配置项
This commit is contained in:
xuwei-fit2cloud 2024-11-12 14:17:54 +08:00 committed by GitHub
commit a01e39294e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 49 additions and 7 deletions

View File

@ -6,3 +6,10 @@ export const getRoleRouters = async (): Promise<Array<AppCustomRouteRecordRaw>>
return res?.data
})
}
// 获取默认排序
export const getDefaultSettings = async (): Promise<IResponse> => {
return request.get({ url: '/sysParameter/defaultSettings' }).then(res => {
return res?.data
})
}

View File

@ -63,6 +63,8 @@ import { setupStore } from '@/store'
import { useEmbedded } from '@/store/modules/embedded'
import { setupElementPlus, setupElementPlusIcons } from '@/plugins/element-plus'
import { setupRouter } from '@/router/embedded'
import { getDefaultSettings } from '@/api/common'
import { useCache } from '@/hooks/web/useCache'
const setupAll = async (
dom: string,
@ -116,6 +118,9 @@ const setupAll = async (
const appearanceRes = await import('@/store/modules/appearance')
const appearanceStore = appearanceRes.useAppearanceStoreWithOut()
appearanceStore.setAppearance(true)
const defaultSort = await getDefaultSettings()
const { wsCache } = useCache()
wsCache.set('TreeSort-backend', defaultSort['basic.defaultSort'] ?? '1')
app.mount(dom)
return app
}

View File

@ -2,6 +2,7 @@ import router from './router'
import { useUserStoreWithOut } from '@/store/modules/user'
import { useAppStoreWithOut } from '@/store/modules/app'
import type { RouteRecordRaw } from 'vue-router'
import { getDefaultSettings } from '@/api/common'
import { useNProgress } from '@/hooks/web/useNProgress'
import { usePermissionStoreWithOut, pathValid, getFirstAuthMenu } from '@/store/modules/permission'
import { usePageLoading } from '@/hooks/web/usePageLoading'
@ -60,6 +61,8 @@ router.beforeEach(async (to, from, next) => {
}
await appearanceStore.setAppearance()
await appearanceStore.setFontList()
const defaultSort = await getDefaultSettings()
wsCache.set('TreeSort-backend', defaultSort['basic.defaultSort'] ?? '1')
if ((wsCache.get('user.token') || isDesktop) && !to.path.startsWith('/de-link/')) {
if (!userStore.getUid) {
await userStore.setUser()
@ -71,7 +74,7 @@ router.beforeEach(async (to, from, next) => {
if (permissionStore.getIsAddRouters) {
let str = ''
if (((from.query.redirect as string) || '?').split('?')[0] === to.path) {
str = ((from.query.redirect as string) || '?').split('?')[1]
str = ((window.location.hash as string) || '?').split('?').reverse()[0]
}
if (str) {
to.fullPath += '?' + str

View File

@ -233,14 +233,16 @@ const getTree = async () => {
) {
dvMainStore.resetDvInfo()
}
let curSortType = sortList[Number(wsCache.get('TreeSort-backend')) ?? 1].value
curSortType = wsCache.get(`TreeSort-${curCanvasType.value}`) ?? curSortType
if (nodeData.length && nodeData[0]['id'] === '0' && nodeData[0]['name'] === 'root') {
state.originResourceTree = nodeData[0]['children'] || []
sortTypeChange(state.curSortType)
sortTypeChange(curSortType)
afterTreeInit()
return
}
state.originResourceTree = nodeData
sortTypeChange(state.curSortType)
sortTypeChange(curSortType)
afterTreeInit()
}

View File

@ -283,6 +283,8 @@ const dtLoading = ref(false)
const isCreated = ref(false)
const getData = () => {
dtLoading.value = true
let curSortType = sortList[Number(wsCache.get('TreeSort-backend')) ?? 1].value
curSortType = wsCache.get('TreeSort-dataset') ?? curSortType
const request = { busiFlag: 'dataset' } as BusiTreeRequest
interactiveStore
.setInteractive(request)
@ -292,12 +294,12 @@ const getData = () => {
rootManage.value = nodeData[0]['weight'] >= 7
state.datasetTree = nodeData[0]['children'] || []
originResourceTree = cloneDeep(unref(state.datasetTree))
sortTypeChange(state.curSortType)
sortTypeChange(curSortType)
return
}
state.datasetTree = nodeData
originResourceTree = cloneDeep(unref(state.datasetTree))
sortTypeChange(state.curSortType)
sortTypeChange(curSortType)
})
.finally(() => {
dtLoading.value = false
@ -409,6 +411,15 @@ const exportData = () => {
useEmitt().emitter.emit('data-export-center', { activeName: 'IN_PROGRESS' })
}
const rowClick = (_, __, event) => {
const element = event.target.parentNode.parentNode
if ([...element.classList].includes('no-hide')) {
element.classList.remove('no-hide')
return
}
element.classList.add('no-hide')
}
const openMessageLoading = cb => {
const iconClass = `el-icon-loading`
const customClass = `de-message-loading de-message-export`
@ -1015,8 +1026,10 @@ const getMenuList = (val: boolean) => {
<template v-if="activeName === 'dataPreview'">
<el-table
v-loading="dataPreviewLoading"
class="dataset-preview_table"
header-class="header-cell"
:data="tableData"
@row-click="rowClick"
key="dataPreview"
border
style="width: 100%; height: 100%"
@ -1124,6 +1137,16 @@ const getMenuList = (val: boolean) => {
<style lang="less" scoped>
@import '@/style/mixin.less';
:deep(.dataset-preview_table) {
.ed-table__body {
.ed-table__row:not(.no-hide) {
.cell {
white-space: nowrap;
}
}
}
}
.ed-table {
--ed-table-header-bg-color: #f5f6f7;
}

View File

@ -471,6 +471,8 @@ const symmetricKey = ref('')
const listDs = () => {
rawDatasourceList.value = []
dsLoading.value = true
let curSortType = sortList[Number(wsCache.get('TreeSort-backend')) ?? 1].value
curSortType = wsCache.get('TreeSort-dataset') ?? curSortType
const request = { busiFlag: 'datasource' } as BusiTreeRequest
interactiveStore
.setInteractive(request)
@ -480,12 +482,12 @@ const listDs = () => {
rootManage.value = nodeData[0]['weight'] >= 7
state.datasourceTree = nodeData[0]['children'] || []
originResourceTree = cloneDeep(unref(state.datasourceTree))
sortTypeChange(state.curSortType)
sortTypeChange(curSortType)
return
}
originResourceTree = cloneDeep(unref(state.datasourceTree))
state.datasourceTree = nodeData
sortTypeChange(state.curSortType)
sortTypeChange(curSortType)
})
.finally(() => {
mounted.value = true