feat(projects): 新增同步租户参数配置功能

This commit is contained in:
xlsea
2025-10-29 09:33:15 +08:00
parent 5310d352b0
commit 901a65ad11
4 changed files with 74 additions and 32 deletions
+26 -26
View File
@@ -1082,8 +1082,8 @@ packages:
'@rolldown/pluginutils@1.0.0-beta.29':
resolution: {integrity: sha512-NIJgOsMjbxAXvoGq/X0gD7VPMQ8j9g0BiDaNjVNVjvl+iKXxL3Jre0v31RmBYeLEmkbj2s02v8vFTbUXi5XS2Q==}
'@rolldown/pluginutils@1.0.0-beta.44':
resolution: {integrity: sha512-g6eW7Zwnr2c5RADIoqziHoVs6b3W5QTQ4+qbpfjbkMJ9x+8Og211VW/oot2dj9dVwaK/UyC6Yo+02gV+wWQVNg==}
'@rolldown/pluginutils@1.0.0-beta.45':
resolution: {integrity: sha512-Le9ulGCrD8ggInzWw/k2J8QcbPz7eGIOWqfJ2L+1R0Opm7n6J37s2hiDWlh6LJN0Lk9L5sUzMvRHKW7UxBZsQA==}
'@rollup/rollup-android-arm-eabi@4.52.5':
resolution: {integrity: sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ==}
@@ -2704,8 +2704,8 @@ packages:
resolution: {integrity: sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==}
engines: {node: '>=12'}
dagre-d3-es@7.0.11:
resolution: {integrity: sha512-tvlJLyQf834SylNKax8Wkzco/1ias1OPw8DcUMDE7oUIoSEW25riQVuiu/0OWEFqT0cxHT3Pa9/D82Jr47IONw==}
dagre-d3-es@7.0.13:
resolution: {integrity: sha512-efEhnxpSuwpYOKRm/L5KbqoZmNNukHa/Flty4Wp62JRvgH2ojwVgPgdYyr4twpieZnyRDdIH7PY2mopX26+j2Q==}
data-view-buffer@1.0.2:
resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==}
@@ -2877,8 +2877,8 @@ packages:
echarts@6.0.0:
resolution: {integrity: sha512-Tte/grDQRiETQP4xz3iZWSvoHrkCQtwqd6hs+mifXcjrCuo2iKWbajFObuLJVBlDIJlOzgQPd1hsaKt/3+OMkQ==}
electron-to-chromium@1.5.240:
resolution: {integrity: sha512-OBwbZjWgrCOH+g6uJsA2/7Twpas2OlepS9uvByJjR2datRDuKGYeD+nP8lBBks2qnB7bGJNHDUx7c/YLaT3QMQ==}
electron-to-chromium@1.5.241:
resolution: {integrity: sha512-ILMvKX/ZV5WIJzzdtuHg8xquk2y0BOGlFOxBVwTpbiXqWIH0hamG45ddU4R3PQ0gYu+xgo0vdHXHli9sHIGb4w==}
emoji-regex@8.0.0:
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
@@ -3903,8 +3903,8 @@ packages:
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
engines: {node: '>= 8'}
mermaid@11.12.0:
resolution: {integrity: sha512-ZudVx73BwrMJfCFmSSJT84y6u5brEoV8DOItdHomNLz32uBjNrelm7mg95X7g+C6UoQH/W6mBLGDEDv73JdxBg==}
mermaid@11.12.1:
resolution: {integrity: sha512-UlIZrRariB11TY1RtTgUWp65tphtBv4CSq7vyS2ZZ2TgoMjs2nloq+wFqxiwcxlhHUvs7DPGgMjs2aeQxz5h9g==}
micromatch@3.1.0:
resolution: {integrity: sha512-3StSelAE+hnRvMs8IdVW7Uhk8CVed5tp+kLLGlBP6WiRAXS21GPGu/Nat4WNPXj2Eoc24B02SaeoyozPMfj0/g==}
@@ -3926,8 +3926,8 @@ packages:
resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
engines: {node: '>= 0.6'}
minimatch@10.0.3:
resolution: {integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==}
minimatch@10.1.1:
resolution: {integrity: sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==}
engines: {node: 20 || >=22}
minimatch@3.1.2:
@@ -4765,8 +4765,8 @@ packages:
stylis@4.3.6:
resolution: {integrity: sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==}
superjson@2.2.3:
resolution: {integrity: sha512-ay3d+LW/S6yppKoTz3Bq4mG0xrS5bFwfWEBmQfbC7lt5wmtk+Obq0TxVuA9eYRirBTQb1K3eEpBRHMQEo0WyVw==}
superjson@2.2.5:
resolution: {integrity: sha512-zWPTX96LVsA/eVYnqOM2+ofcdPqdS1dAF1LN4TS2/MWuUpfitd9ctTa87wt4xrYnZnkLtS69xpBdSxVBP5Rm6w==}
engines: {node: '>=16'}
supports-color@2.0.0:
@@ -6064,7 +6064,7 @@ snapshots:
'@rolldown/pluginutils@1.0.0-beta.29': {}
'@rolldown/pluginutils@1.0.0-beta.44': {}
'@rolldown/pluginutils@1.0.0-beta.45': {}
'@rollup/rollup-android-arm-eabi@4.52.5':
optional: true
@@ -6882,7 +6882,7 @@ snapshots:
jsbarcode: 3.12.1
katex: 0.16.25
lowlight: 3.3.0
mermaid: 11.12.0
mermaid: 11.12.1
nzh: 1.0.14
plyr: 3.8.3
pretty-bytes: 6.1.1
@@ -7080,7 +7080,7 @@ snapshots:
'@babel/core': 7.28.5
'@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.5)
'@babel/plugin-transform-typescript': 7.28.5(@babel/core@7.28.5)
'@rolldown/pluginutils': 1.0.0-beta.44
'@rolldown/pluginutils': 1.0.0-beta.45
'@vue/babel-plugin-jsx': 1.5.0(@babel/core@7.28.5)
vite: 7.1.5(@types/node@24.5.1)(jiti@2.6.1)(sass@1.92.1)(tsx@4.20.5)(yaml@2.8.1)
vue: 3.5.21(typescript@5.9.2)
@@ -7225,7 +7225,7 @@ snapshots:
mitt: 3.0.1
perfect-debounce: 1.0.0
speakingurl: 14.0.1
superjson: 2.2.3
superjson: 2.2.5
'@vue/devtools-kit@8.0.3':
dependencies:
@@ -7235,7 +7235,7 @@ snapshots:
mitt: 3.0.1
perfect-debounce: 2.0.0
speakingurl: 14.0.1
superjson: 2.2.3
superjson: 2.2.5
'@vue/devtools-shared@7.7.7':
dependencies:
@@ -7475,7 +7475,7 @@ snapshots:
dependencies:
baseline-browser-mapping: 2.8.20
caniuse-lite: 1.0.30001751
electron-to-chromium: 1.5.240
electron-to-chromium: 1.5.241
node-releases: 2.0.26
update-browserslist-db: 1.1.4(browserslist@4.27.0)
@@ -7938,7 +7938,7 @@ snapshots:
d3-transition: 3.0.1(d3-selection@3.0.0)
d3-zoom: 3.0.0
dagre-d3-es@7.0.11:
dagre-d3-es@7.0.13:
dependencies:
d3: 7.9.0
lodash-es: 4.17.21
@@ -8106,7 +8106,7 @@ snapshots:
tslib: 2.3.0
zrender: 6.0.0
electron-to-chromium@1.5.240: {}
electron-to-chromium@1.5.241: {}
emoji-regex@8.0.0: {}
@@ -8287,7 +8287,7 @@ snapshots:
eslint: 9.35.0(jiti@2.6.1)
eslint-import-context: 0.1.9(unrs-resolver@1.11.1)
is-glob: 4.0.3
minimatch: 10.0.3
minimatch: 10.1.1
semver: 7.7.3
stable-hash-x: 0.2.0
unrs-resolver: 1.11.1
@@ -8673,7 +8673,7 @@ snapshots:
dependencies:
foreground-child: 3.3.1
jackspeak: 4.1.1
minimatch: 10.0.3
minimatch: 10.1.1
minipass: 7.1.2
package-json-from-dist: 1.0.1
path-scurry: 2.0.0
@@ -9206,7 +9206,7 @@ snapshots:
merge2@1.4.1: {}
mermaid@11.12.0:
mermaid@11.12.1:
dependencies:
'@braintree/sanitize-url': 7.1.1
'@iconify/utils': 3.0.2
@@ -9217,7 +9217,7 @@ snapshots:
cytoscape-fcose: 2.2.0(cytoscape@3.33.1)
d3: 7.9.0
d3-sankey: 0.12.3
dagre-d3-es: 7.0.11
dagre-d3-es: 7.0.13
dayjs: 1.11.18
dompurify: 3.3.0
katex: 0.16.25
@@ -9265,7 +9265,7 @@ snapshots:
dependencies:
mime-db: 1.52.0
minimatch@10.0.3:
minimatch@10.1.1:
dependencies:
'@isaacs/brace-expansion': 5.0.0
@@ -10211,7 +10211,7 @@ snapshots:
stylis@4.3.6: {}
superjson@2.2.3:
superjson@2.2.5:
dependencies:
copy-anything: 4.0.5
+8
View File
@@ -56,6 +56,14 @@ export function fetchSyncTenantPackage(params: Api.System.TenantPackageSyncParam
});
}
/** 同步租户参数配置 */
export function fetchSyncTenantConfig() {
return request<boolean>({
url: '/system/tenant/syncTenantConfig',
method: 'get'
});
}
/** 动态切换租户 */
export function fetchChangeTenant(tenantId: CommonType.IdType) {
return request<boolean>({
@@ -125,7 +125,7 @@ watch(visible, () => {
<NInput v-model:value="model.testKey" placeholder="请输入 key 键" />
</NFormItem>
<NFormItem label="值" path="value">
<OssUpload v-model:value="model.value as string" upload-type="image" placeholder="请输入值" />
<NInput v-model:value="model.value" placeholder="请输入值" />
</NFormItem>
<NFormItem label="备注" path="remark">
<NInput v-model:value="model.remark" type="textarea" placeholder="请输入备注" />
+35 -1
View File
@@ -4,6 +4,7 @@ import { NButton, NDivider } from 'naive-ui';
import {
fetchBatchDeleteTenant,
fetchGetTenantList,
fetchSyncTenantConfig,
fetchSyncTenantDict,
fetchSyncTenantPackage
} from '@/service/api/system/tenant';
@@ -195,11 +196,34 @@ async function edit(id: CommonType.IdType) {
}
async function handleSyncTenantDict() {
window.$dialog?.warning({
title: '同步租户字典',
content: '确认同步租户字典吗?',
positiveText: '确认',
negativeText: '取消',
onPositiveClick: async () => {
const { error } = await fetchSyncTenantDict();
if (error) return;
window.$message?.success('同步租户字典成功');
await getData();
}
});
}
async function handleSyncTenantConfig() {
window.$dialog?.warning({
title: '同步租户参数配置',
content: '确认同步租户参数配置吗?',
positiveText: '确认',
negativeText: '取消',
onPositiveClick: async () => {
const { error } = await fetchSyncTenantConfig();
if (error) return;
window.$message?.success('同步租户参数配置成功');
await getData();
}
});
}
async function handleSyncTenantPackage(row: Api.System.Tenant) {
const params: Api.System.TenantPackageSyncParams = {
@@ -241,6 +265,12 @@ async function handleExport() {
</template>
同步租户字典
</NButton>
<NButton v-if="isSuperAdmin" ghost size="small" @click="handleSyncTenantConfig">
<template #icon>
<icon-material-symbols:sync-outline />
</template>
同步租户参数配置
</NButton>
</template>
</TableHeaderOperation>
</template>
@@ -267,4 +297,8 @@ async function handleExport() {
</div>
</template>
<style scoped></style>
<style scoped>
:deep(.n-card-header__main) {
min-width: 36px !important;
}
</style>