forked from github/dataease
feat: 增加参数设置
This commit is contained in:
parent
f82c0ed78a
commit
3c78321c28
@ -90,6 +90,6 @@ public class MenuManage {
|
||||
}
|
||||
|
||||
private boolean isXpackMenu(CoreMenu coreMenu) {
|
||||
return coreMenu.getId().equals(7L) || coreMenu.getPid().equals(7L) || coreMenu.getId().equals(14L) || coreMenu.getId().equals(15L) || coreMenu.getPid().equals(15L);
|
||||
return coreMenu.getId().equals(7L) || coreMenu.getPid().equals(7L) || coreMenu.getId().equals(14L) || coreMenu.getId().equals(17L) || coreMenu.getId().equals(18L);
|
||||
}
|
||||
}
|
||||
|
@ -31,7 +31,7 @@ i18n_union_field_can_not_empty=\u5173\u8054\u5B57\u6BB5\u4E0D\u80FD\u4E3A\u7A7A
|
||||
i18n_table_duplicate=\u76F8\u540C\u8282\u70B9\u9700\u91CD\u65B0\u62D6\u5165\u624D\u80FD\u7EE7\u7EED\u65B0\u5EFA\u6570\u636E\u96C6
|
||||
i18n_no_column_permission=\u6CA1\u6709\u5217\u6743\u9650
|
||||
i18n_fetch_error=SQL\u6267\u884C\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u8868\u3001\u5B57\u6BB5\u3001\u5173\u8054\u5173\u7CFB\u7B49\u4FE1\u606F\u662F\u5426\u6B63\u786E\u5E76\u91CD\u65B0\u7F16\u8F91\u3002
|
||||
i18n_no_datasource_permission=\u65e0\u6570\u636e\u6e90\u8bbf\u95ee\u6743\u9650
|
||||
i18n_no_datasource_permission=\u65E0\u6570\u636E\u6E90\u8BBF\u95EE\u6743\u9650
|
||||
|
||||
i18n_field_circular_ref=\u5B57\u6BB5\u5B58\u5728\u5FAA\u73AF\u5F15\u7528
|
||||
|
||||
@ -51,4 +51,5 @@ i18n_login_name_pwd_err=\u7528\u6237\u540D\u6216\u5BC6\u7801\u9519\u8BEF
|
||||
i18n_error_login_type=\u767B\u5F55\u7C7B\u578B\u9519\u8BEF
|
||||
i18n_schema_is_empty=schema \u4E3A\u7A7A\uFF01
|
||||
i18n_table_name_repeat=\u540D\u79F0\u91CD\u590D:
|
||||
i18n_sql_not_empty=sql \u4e0d\u80fd\u4e3a\u7a7a
|
||||
i18n_sql_not_empty=sql \u4E0D\u80FD\u4E3A\u7A7A
|
||||
i18n_menu.parameter=\u7CFB\u7EDF\u53C2\u6570
|
||||
|
4
core/core-frontend/src/assets/svg/sys-parameter.svg
Normal file
4
core/core-frontend/src/assets/svg/sys-parameter.svg
Normal file
@ -0,0 +1,4 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M18.8742 6.99951C18.4302 8.72474 16.8641 9.99951 15.0002 9.99951C13.1364 9.99951 11.5703 8.72474 11.1263 6.99951H2.64122C2.41834 6.99951 2.33751 6.97631 2.25603 6.93273C2.17455 6.88915 2.1106 6.8252 2.06703 6.74372C2.02345 6.66224 2.00024 6.58142 2.00024 6.35854V5.64048C2.00024 5.4176 2.02345 5.33678 2.06703 5.2553C2.1106 5.17382 2.17455 5.10987 2.25603 5.06629C2.33751 5.02272 2.41834 4.99951 2.64122 4.99951H11.1263C11.5703 3.27428 13.1364 1.99951 15.0002 1.99951C16.8641 1.99951 18.4302 3.27428 18.8742 4.99951H21.3593C21.5822 4.99951 21.663 5.02272 21.7445 5.06629C21.8259 5.10987 21.8899 5.17382 21.9335 5.2553C21.977 5.33678 22.0002 5.4176 22.0002 5.64048V6.35854C22.0002 6.58142 21.977 6.66224 21.9335 6.74372C21.8899 6.8252 21.8259 6.88915 21.7445 6.93273C21.663 6.97631 21.5822 6.99951 21.3593 6.99951H18.8742ZM15.0002 7.99951C16.1048 7.99951 17.0002 7.10408 17.0002 5.99951C17.0002 4.89494 16.1048 3.99951 15.0002 3.99951C13.8957 3.99951 13.0002 4.89494 13.0002 5.99951C13.0002 7.10408 13.8957 7.99951 15.0002 7.99951Z" />
|
||||
<path d="M12.8742 18.9995C12.4302 20.7247 10.8641 21.9995 9.00024 21.9995C7.1364 21.9995 5.5703 20.7247 5.12626 18.9995H2.64122C2.41834 18.9995 2.33751 18.9763 2.25603 18.9327C2.17455 18.8892 2.1106 18.8252 2.06703 18.7437C2.02345 18.6622 2.00024 18.5814 2.00024 18.3585V17.6405C2.00024 17.4176 2.02345 17.3368 2.06703 17.2553C2.1106 17.1738 2.17455 17.1099 2.25603 17.0663C2.33751 17.0227 2.41834 16.9995 2.64122 16.9995H5.12626C5.5703 15.2743 7.1364 13.9995 9.00024 13.9995C10.8641 13.9995 12.4302 15.2743 12.8742 16.9995H21.3593C21.5822 16.9995 21.663 17.0227 21.7445 17.0663C21.8259 17.1099 21.8899 17.1738 21.9335 17.2553C21.977 17.3368 22.0002 17.4176 22.0002 17.6405V18.3585C22.0002 18.5814 21.977 18.6622 21.9335 18.7437C21.8899 18.8252 21.8259 18.8892 21.7445 18.9327C21.663 18.9763 21.5822 18.9995 21.3593 18.9995H12.8742ZM9.00024 19.9995C10.1048 19.9995 11.0002 19.1041 11.0002 17.9995C11.0002 16.8949 10.1048 15.9995 9.00024 15.9995C7.89567 15.9995 7.00024 16.8949 7.00024 17.9995C7.00024 19.1041 7.89567 19.9995 9.00024 19.9995Z" />
|
||||
</svg>
|
After Width: | Height: | Size: 2.1 KiB |
@ -65,6 +65,10 @@ const openLanguage = () => {
|
||||
const openPopover = () => {
|
||||
unref(popoverRef).popperRef?.delayHide?.()
|
||||
}
|
||||
|
||||
if (uid.value === '1') {
|
||||
linkLoaded([{ id: 4, link: '/sys-setting/parameter', label: t('commons.system_setting') }])
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@ -135,11 +139,6 @@ const openPopover = () => {
|
||||
|
||||
<AboutPage />
|
||||
<XpackComponent jsname="dWNlbnRlci1oYW5kbGVy" @loaded="linkLoaded" />
|
||||
<XpackComponent
|
||||
v-if="uid === '1'"
|
||||
jsname="c2V0dGluZy9zZXR0aW5nLWhhbmRsZXI="
|
||||
@loaded="linkLoaded"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<style lang="less">
|
||||
|
@ -2114,5 +2114,9 @@ export default {
|
||||
pwd_format_error: '请输入4位数字或字母',
|
||||
sure_bt: '确定',
|
||||
back_parent: '返回上一级'
|
||||
},
|
||||
online_map: {
|
||||
geometry: '地理信息',
|
||||
onlinemap: '在线地图'
|
||||
}
|
||||
}
|
||||
|
53
core/core-frontend/src/views/system/parameter/index.vue
Normal file
53
core/core-frontend/src/views/system/parameter/index.vue
Normal file
@ -0,0 +1,53 @@
|
||||
<template>
|
||||
<p class="router-title">系统参数</p>
|
||||
<el-tabs v-model="activeName" @tab-click="handleClick">
|
||||
<el-tab-pane v-for="item in tabArray" :key="item.name" :label="item.label" :name="item.name" />
|
||||
</el-tabs>
|
||||
<div class="sys-setting-p">
|
||||
<div class="container-sys-param">
|
||||
<map-setting v-if="activeName === 'map'" />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ref } from 'vue'
|
||||
import { useI18n } from '@/hooks/web/useI18n'
|
||||
import MapSetting from './map/MapSetting.vue'
|
||||
const { t } = useI18n()
|
||||
|
||||
const tabArray = [
|
||||
/* {label: '基础设置', name: 'basic'},
|
||||
{label: '邮件设置', name: 'email'}, */
|
||||
{ label: '地图设置', name: 'map' }
|
||||
/* {label: '引擎设置', name: 'engine'}, */
|
||||
]
|
||||
const activeName = ref('map')
|
||||
const handleClick = (tab, event: Event) => {
|
||||
console.log(tab, event)
|
||||
}
|
||||
</script>
|
||||
<style lang="less">
|
||||
.router-title {
|
||||
color: #1f2329;
|
||||
font-feature-settings: 'clig' off, 'liga' off;
|
||||
font-family: PingFang SC;
|
||||
font-size: 20px;
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
line-height: 28px;
|
||||
}
|
||||
.sys-setting-p {
|
||||
width: 100%;
|
||||
background: var(--ContentBG, #ffffff);
|
||||
height: calc(100% - 95px);
|
||||
box-sizing: border-box;
|
||||
margin-top: 12px;
|
||||
}
|
||||
|
||||
.container-sys-param {
|
||||
height: 100%;
|
||||
overflow-y: auto;
|
||||
}
|
||||
</style>
|
||||
<style lang="less" scoped></style>
|
145
core/core-frontend/src/views/system/parameter/map/Geometry.vue
Normal file
145
core/core-frontend/src/views/system/parameter/map/Geometry.vue
Normal file
@ -0,0 +1,145 @@
|
||||
<template>
|
||||
<el-container class="geometry-container">
|
||||
<el-aside width="200px" class="geonetry-aside">
|
||||
<div class="geo-title">
|
||||
<span>{{ t('online_map.geometry') }}</span>
|
||||
<span class="add-icon-span">
|
||||
<el-icon>
|
||||
<Icon name="icon_add_outlined"></Icon>
|
||||
</el-icon>
|
||||
</span>
|
||||
</div>
|
||||
<div class="geo-search">
|
||||
<el-input class="m16 w100" v-model="keyworkd" clearable :placeholder="t('commons.search')">
|
||||
<template #prefix>
|
||||
<el-icon>
|
||||
<Icon name="icon_search-outline_outlined"></Icon>
|
||||
</el-icon>
|
||||
</template>
|
||||
</el-input>
|
||||
</div>
|
||||
<div class="map-tree-container">
|
||||
<el-tree :data="data" :props="defaultProps" @node-click="handleNodeClick" />
|
||||
</div>
|
||||
</el-aside>
|
||||
<el-main>地理信息内容区域</el-main>
|
||||
</el-container>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ref } from 'vue'
|
||||
import { useI18n } from '@/hooks/web/useI18n'
|
||||
const { t } = useI18n()
|
||||
const keyworkd = ref('')
|
||||
|
||||
interface Tree {
|
||||
label: string
|
||||
children?: Tree[]
|
||||
}
|
||||
|
||||
const handleNodeClick = (data: Tree) => {
|
||||
console.log(data)
|
||||
}
|
||||
|
||||
const data: Tree[] = [
|
||||
{
|
||||
label: 'Level one 1',
|
||||
children: [
|
||||
{
|
||||
label: 'Level two 1-1',
|
||||
children: [
|
||||
{
|
||||
label: 'Level three 1-1-1'
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
label: 'Level one 2',
|
||||
children: [
|
||||
{
|
||||
label: 'Level two 2-1',
|
||||
children: [
|
||||
{
|
||||
label: 'Level three 2-1-1'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
label: 'Level two 2-2',
|
||||
children: [
|
||||
{
|
||||
label: 'Level three 2-2-1'
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
label: 'Level one 3',
|
||||
children: [
|
||||
{
|
||||
label: 'Level two 3-1',
|
||||
children: [
|
||||
{
|
||||
label: 'Level three 3-1-1'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
label: 'Level two 3-2',
|
||||
children: [
|
||||
{
|
||||
label: 'Level three 3-2-1'
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
const defaultProps = {
|
||||
children: 'children',
|
||||
label: 'label'
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.geometry-container {
|
||||
height: 100%;
|
||||
.geonetry-aside {
|
||||
width: 280px !important;
|
||||
border-right: 1px solid #1f232926;
|
||||
padding: 16px;
|
||||
.geo-title {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
height: 24px;
|
||||
line-height: 24px;
|
||||
span:first-child {
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
line-height: 24px;
|
||||
}
|
||||
.add-icon-span {
|
||||
color: #3370ff;
|
||||
height: 20px;
|
||||
width: 20px;
|
||||
i {
|
||||
left: 2px;
|
||||
}
|
||||
&:hover {
|
||||
background: #1f232926;
|
||||
cursor: pointer;
|
||||
}
|
||||
border-radius: 2px;
|
||||
}
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
.geo-search {
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
@ -0,0 +1,83 @@
|
||||
<template>
|
||||
<el-container class="map-setting-container">
|
||||
<el-aside class="map-setting-left">
|
||||
<div class="left-container">
|
||||
<div
|
||||
v-for="(item, index) in leftOptions"
|
||||
:key="item.id"
|
||||
class="left-menu-item"
|
||||
:class="{ active: activeIndex === item.id }"
|
||||
@click="selectHandler(index)"
|
||||
>
|
||||
<span>{{ t(item.name) }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</el-aside>
|
||||
<el-main class="map-setting-right">
|
||||
<div class="right-container">
|
||||
<OnlineMap v-if="activeIndex" />
|
||||
<geometry v-else />
|
||||
</div>
|
||||
</el-main>
|
||||
</el-container>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ref } from 'vue'
|
||||
import { useI18n } from '@/hooks/web/useI18n'
|
||||
import Geometry from './Geometry.vue'
|
||||
import OnlineMap from './OnlineMap.vue'
|
||||
|
||||
const { t } = useI18n()
|
||||
|
||||
const activeIndex = ref(0)
|
||||
const leftOptions = [
|
||||
{ id: 0, name: 'online_map.geometry' },
|
||||
{ id: 1, name: 'online_map.onlinemap' }
|
||||
]
|
||||
|
||||
const selectHandler = (index: number) => {
|
||||
activeIndex.value = index
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.map-setting-container {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
.map-setting-left {
|
||||
width: 200px !important;
|
||||
height: 100%;
|
||||
border-right: 1px solid #1f232926;
|
||||
.left-container {
|
||||
padding: 16px 16px 16px 16px;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
.left-menu-item {
|
||||
width: 168px;
|
||||
height: 40px;
|
||||
padding: 9px 8px;
|
||||
line-height: 22px;
|
||||
border-radius: 4px;
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
cursor: pointer;
|
||||
&:hover {
|
||||
background: #1f232926;
|
||||
}
|
||||
}
|
||||
.active {
|
||||
background: #3370ff1a;
|
||||
color: #3370ff;
|
||||
font-weight: 500;
|
||||
}
|
||||
}
|
||||
}
|
||||
.map-setting-right {
|
||||
padding: 0 !important;
|
||||
.right-container {
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
@ -0,0 +1,76 @@
|
||||
<template>
|
||||
<el-container class="online-map-container">
|
||||
<el-aside width="200px" class="online-map-aside">
|
||||
<div class="geo-title">
|
||||
<span>{{ t('online_map.onlinemap') }}</span>
|
||||
</div>
|
||||
<div class="online-form-item">
|
||||
<div class="map-item">
|
||||
<div class="map-item-label">
|
||||
<span class="form-label">Key</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="map-item">
|
||||
<el-input v-model="key" />
|
||||
</div>
|
||||
</div>
|
||||
<el-button type="primary" :disabled="!key" @click="saveHandler">{{
|
||||
t('commons.save')
|
||||
}}</el-button>
|
||||
</el-aside>
|
||||
<el-main>
|
||||
<div class="de-map-container" :id="domId" />
|
||||
</el-main>
|
||||
</el-container>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ref } from 'vue'
|
||||
import { useI18n } from '@/hooks/web/useI18n'
|
||||
const { t } = useI18n()
|
||||
const key = ref('')
|
||||
|
||||
const domId = ref('de-map-container')
|
||||
const saveHandler = () => {
|
||||
console.log(111)
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.de-map-container {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
.online-map-container {
|
||||
height: 100%;
|
||||
.online-map-aside {
|
||||
width: 280px !important;
|
||||
border-right: 1px solid #1f232926;
|
||||
padding: 16px;
|
||||
.geo-title {
|
||||
height: 24px;
|
||||
line-height: 24px;
|
||||
margin-bottom: 16px;
|
||||
span:first-child {
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
line-height: 24px;
|
||||
}
|
||||
}
|
||||
.online-form-item {
|
||||
height: 64px;
|
||||
margin-bottom: 16px;
|
||||
.map-item {
|
||||
height: 32px;
|
||||
.map-item-label {
|
||||
height: 22px;
|
||||
line-height: 22px;
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: #1f2329;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
2
de-xpack
2
de-xpack
@ -1 +1 @@
|
||||
Subproject commit 0a8337cd2b6ea435977c22614c2a24bc9460c6c9
|
||||
Subproject commit c8412a7a9c59d95b844cf420fa548f85284bf7f7
|
Loading…
Reference in New Issue
Block a user