From abd89192254835985128e7d648fc065a53c964d0 Mon Sep 17 00:00:00 2001 From: ibuler Date: Mon, 17 Jul 2023 10:11:54 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BF=AE=E6=94=B9=E5=B9=B3=E5=8F=B0=20?= =?UTF-8?q?protocols=20=E7=9A=84=E4=B8=8B=E6=8B=89=E9=80=89=E6=8B=A9?= =?UTF-8?q?=EF=BC=8C=E5=8F=AF=E4=BB=A5=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FormFields/ProtocolSelector/index.vue | 23 +++++++++---------- src/store/modules/common.js | 11 ++++++++- .../assets/Platform/PlatformCreateUpdate.vue | 3 --- 3 files changed, 21 insertions(+), 16 deletions(-) diff --git a/src/components/FormFields/ProtocolSelector/index.vue b/src/components/FormFields/ProtocolSelector/index.vue index 4fd6bdb63..d5b6665b3 100644 --- a/src/components/FormFields/ProtocolSelector/index.vue +++ b/src/components/FormFields/ProtocolSelector/index.vue @@ -262,18 +262,17 @@ export default { }, setPrimaryIfNeed(items) { // 如果没有设置主协议,设置第一个为主协议 - if (!this.settingReadonly) { - const primaryProtocols = items.filter(item => item.primary) - if (primaryProtocols.length === 0) { - items[0].primary = true - items[0].default = true - items[0].required = true - items[0].public = true - } else if (primaryProtocols.length > 1) { - primaryProtocols.slice(1, primaryProtocols.length).forEach(item => { - item.primary = false - }) - } + if (this.settingReadonly) { + return items + } + const primaryProtocols = items.filter(item => item.primary) + if (primaryProtocols.length === 0) { + items[0].default = true + items[0].public = true + } else if (primaryProtocols.length > 1) { + primaryProtocols.slice(1, primaryProtocols.length).forEach(item => { + item.primary = false + }) } return items }, diff --git a/src/store/modules/common.js b/src/store/modules/common.js index 577a65b67..9b1cef79b 100644 --- a/src/store/modules/common.js +++ b/src/store/modules/common.js @@ -3,6 +3,7 @@ import { optionUrlMeta } from '@/api/common' const getDefaultState = () => { return { metaMap: {}, + metaPromiseMap: {}, isRouterAlive: true, sqlQueryCounter: [] } @@ -38,14 +39,22 @@ const actions = { resolve(meta) }) } - return new Promise((resolve, reject) => { + let promise = state.metaPromiseMap[url] + if (promise) { + return promise + } + promise = new Promise((resolve, reject) => { optionUrlMeta(url).then(meta => { commit('SET_URL_META', { url, meta }) resolve(meta) }).catch(error => { reject(error) + }).finally(() => { + state.metaPromiseMap[url] = null }) }) + state.metaPromiseMap[url] = promise + return promise }, digestSQLQuery({ commit, state }, resp) { if (!resp || !resp.status.toString().startsWith('20')) { diff --git a/src/views/assets/Platform/PlatformCreateUpdate.vue b/src/views/assets/Platform/PlatformCreateUpdate.vue index fffb37b5f..2659c1ebc 100644 --- a/src/views/assets/Platform/PlatformCreateUpdate.vue +++ b/src/views/assets/Platform/PlatformCreateUpdate.vue @@ -172,9 +172,6 @@ export default { .el-cascader { width: 100%; } - .el-select { - width: 100%; - } } >>> .itemMethodKey.el-form-item {