diff --git a/rsbuild.config.ts b/rsbuild.config.ts index e39e567504b2106c44947b839e21a9bc287b70b5..6c90c9b3092b801ed2530163de4b9dc63b2b53e9 100644 --- a/rsbuild.config.ts +++ b/rsbuild.config.ts @@ -107,14 +107,18 @@ function getPages(pageList) { entry = `${communityModule}/${moduleName}/${filename}.js`; } else if (commercialModuleList.includes(filename)) { entry = `${commercialModule}/${moduleName}/${filename}.js`; - } - pages[filename] = { - entry, - template: `public/index.html`, - filename: `${filename}.html`, - title: pageLogin, - chunks: [`chunk-vendors`, `chunk-common`, filename] - }; + } + const entryPath = path.resolve(__dirname, entry); + const needEntry = glob.sync(entryPath); + if (needEntry.length > 0) { + pages[filename] = { + entry, + template: `public/index.html`, + filename: `${filename}.html`, + title: pageLogin, + chunks: [`chunk-vendors`, `chunk-common`, filename] + }; + } }); return pages; diff --git a/src/resources/api/common/index.js b/src/resources/api/common/index.js index 04c8344ada67dfd8894bd8376a786ecccf3bf2fa..2bb8016fce69dd911fd6f099f02088bf2013de90 100644 --- a/src/resources/api/common/index.js +++ b/src/resources/api/common/index.js @@ -166,6 +166,10 @@ const common = { updateCmdbMenu(params) { return axios.post('/api/rest/cmdb/ci/citype/search', params); }, + //后去ALERT的视图列表 + updateAlertMenu() { + return axios.post('/api/rest/alert/view/list', {}); + }, // 获取工单中心分类 updateProcessMenu(params) { return axios.post('/api/rest/workcenter/list', params); diff --git a/src/resources/api/framework/extramenu/extramenu.js b/src/resources/api/framework/extramenu/extramenu.js index 1adf72bcbd605dbe5f1c54ecfbacfc8bb40b0e3a..b51432c11c9ac9ad6183b333cdf5b20f61a0b5c0 100644 --- a/src/resources/api/framework/extramenu/extramenu.js +++ b/src/resources/api/framework/extramenu/extramenu.js @@ -21,6 +21,9 @@ const extramenu = { }, moveExtramenu(params) { //拖拽排序 return axios.post('/api/rest/extramenu/move', params); + }, + listExtarmenuItem(params) { + return axios.post('/api/rest/extramenu/item/list', params); } }; export default extramenu; diff --git a/src/resources/assets/languages/page/en.json b/src/resources/assets/languages/page/en.json index 67a16552c9562ab07ad05dbfed6abc6016804436..74d6ce9ca769f59cf2b0d1a1269ddfae1848180e 100644 --- a/src/resources/assets/languages/page/en.json +++ b/src/resources/assets/languages/page/en.json @@ -1084,5 +1084,6 @@ "dataconfig": "data configuration", "datachange": "data conversion", "childmenucount": "Number of submenus", - "systemmenuauth": "System menu permissions" + "systemmenuauth": "System menu permissions", + "defaulthomepage": "default page" } \ No newline at end of file diff --git a/src/resources/assets/languages/page/zh.json b/src/resources/assets/languages/page/zh.json index 3faa76327d7e0867d3b3172df626bd93d7765503..8581427190e2ff31c60edac5706d98062c0c564f 100644 --- a/src/resources/assets/languages/page/zh.json +++ b/src/resources/assets/languages/page/zh.json @@ -1086,5 +1086,6 @@ "dataconfig": "数据配置", "datachange": "数据转换", "childmenucount": "子菜单数量", - "systemmenuauth": "系统菜单权限" + "systemmenuauth": "系统菜单权限", + "defaulthomepage": "默认首页" } \ No newline at end of file diff --git a/src/resources/assets/languages/term/en.json b/src/resources/assets/languages/term/en.json index f0d56b6155e40081ad16c886df7d543b980275b3..3d4b45e63a542309e1b77b72238ec3414bd67d2c 100644 --- a/src/resources/assets/languages/term/en.json +++ b/src/resources/assets/languages/term/en.json @@ -2896,7 +2896,9 @@ "last5dump": "Last 5 snapshots", "threaddump": "Thread snapshot", "pid": "Process ID", - "servicetopo": "Service Relationship Diagram" + "servicetopo": "Service Relationship Diagram", + "healthstate": "health status", + "comm": "command" }, "infromant": { "report": "analysis report" diff --git a/src/resources/assets/languages/term/zh.json b/src/resources/assets/languages/term/zh.json index de31e51c94977ec85c352a64b51e0c442b6c38b7..5789eefa76289698ed7427446be32bb0dea84c2a 100644 --- a/src/resources/assets/languages/term/zh.json +++ b/src/resources/assets/languages/term/zh.json @@ -2893,7 +2893,9 @@ "last5dump": "最近5次快照", "threaddump": "线程快照", "pid": "进程id", - "servicetopo": "服务关系图" + "servicetopo": "服务关系图", + "healthstate": "健康状态", + "comm": "命令" }, "infromant": { "report": "分析报告" diff --git a/src/resources/components/TsContain/TsContain.vue b/src/resources/components/TsContain/TsContain.vue index 6d62e22eb9c70ff2964f66fcf7e91798b0f51fc2..3c2ba4d8d232e6813e1eaa6d57873e160e2c7917 100644 --- a/src/resources/components/TsContain/TsContain.vue +++ b/src/resources/components/TsContain/TsContain.vue @@ -235,7 +235,7 @@ export default { // 提取重复的宽度计算逻辑 const getDefaultWidth = (width, defaultValue) => width || defaultValue; const threeEqualWidths = `${getDefaultWidth(this.topLeftWidth, '33.33%')} ${getDefaultWidth(this.topCenterWidth, '33.33%')} ${getDefaultWidth(this.topRightWidth, '33.33%')}`; - const twoEqualWidths = `${getDefaultWidth(this.topLeftWidth, '50%')} 0px ${getDefaultWidth(this.topRightWidth, '50%')}`; + const twoEqualWidths = `minmax(0, ${getDefaultWidth(this.topLeftWidth, '50%')}) 0px minmax(0, ${getDefaultWidth(this.topRightWidth, '50%')})`; if (hasLeft && hasCenter && hasRight) { //左中右 diff --git a/src/resources/plugins/TsSheet/form/component/formtableinputer/index.vue b/src/resources/plugins/TsSheet/form/component/formtableinputer/index.vue index 3a61e3faa68d4a7099cf7b818d323b30f81cdec4..2ee218b467da78b4cfff2fa5e54a0780886f9c4b 100644 --- a/src/resources/plugins/TsSheet/form/component/formtableinputer/index.vue +++ b/src/resources/plugins/TsSheet/form/component/formtableinputer/index.vue @@ -104,7 +104,7 @@ { diff --git a/src/resources/plugins/TsSheet/form/component/formtableinputer/table-import-export-mixin.js b/src/resources/plugins/TsSheet/form/component/formtableinputer/table-import-export-mixin.js index 8130438e77749b0c0dad08b2d067db67cde4b4a5..c40b14a4f3a55d4f44e1713cd74e266b208b925a 100644 --- a/src/resources/plugins/TsSheet/form/component/formtableinputer/table-import-export-mixin.js +++ b/src/resources/plugins/TsSheet/form/component/formtableinputer/table-import-export-mixin.js @@ -520,7 +520,7 @@ export default { return [handleSingleValue(value)]; } } else { - return [handleSingleValue(value)]; + return handleSingleValue(value); } } return typeof value == 'number' ? String(value) : value; diff --git a/src/resources/store/modules/topMenu.js b/src/resources/store/modules/topMenu.js index aa301f05dd3286a1799b4ce914981834ca3e61a6..0f0fb2bc68de5863435b7fea7d39c1174e65bc3c 100644 --- a/src/resources/store/modules/topMenu.js +++ b/src/resources/store/modules/topMenu.js @@ -93,6 +93,32 @@ const actions = { dispatch('updateReportMenu', { forceUpdate }); dispatch('updateCmdbMenu', { forceUpdate }); dispatch('updateInspectMenu', { forceUpdate }); + dispatch('updateAlertMenu', { forceUpdate }); + }, + + // alert + async updateAlertMenu({ commit, state, rootState }, { forceUpdate = true } = {}) { + await state.gettingModuleList; + const alertModule = state.moduleList.find(item => item.moduleId === 'alert'); + if (!alertModule || (!forceUpdate && state.dynamicMenu.hasOwnProperty('alert')) || !hasCustomMenuAuthority('alert', 'alert-manage')) { + return; + } + const res = await commonApi.updateAlertMenu(); + if (!res.Return || res.Return.length === 0) return; + const alertViewList = res.Return.map(view => ({ + name: view.label, + path: `/alert-manage/${view.name}`, + url: `/alert-manage/${view.name}`, + icon: 'tsfont-dot' + })); + const newMenuGroup = [ + { + menuTypeName: '告警视图', + menuList: alertViewList + } + ]; + commit('updateMenu', { module: alertModule, startIndex: 0, newMenuGroup }); + return res; }, // process diff --git a/src/views/pages/autoexec/autoexec.js b/src/views/pages/autoexec/autoexec.js index 2dfc6b50defe9ad5b737e5893ac16806242287fb..dda5cf60a6a2103e608c5507a2aed683468e46cd 100644 --- a/src/views/pages/autoexec/autoexec.js +++ b/src/views/pages/autoexec/autoexec.js @@ -9,6 +9,7 @@ import api from '@/resources/api/api.js'; import toolCatalogUtils from './utils/tools-catalog'; import LocalStore from '@/resources/assets/js/localStore.js'; import State from '@/resources/assets/js/state.js'; +import commonRouters from '@/views/pages/common/router.js'; //公共的全局组件、样式等 import '@/resources/base.js'; @@ -20,7 +21,7 @@ Vue.use(CompareUtil);//必须要在use router之后执行 import {config} from './config.js'; MODULEID = config.module; -MENULIST = routers; +MENULIST = [...commonRouters, ...routers]; MENUTYPE = config.menuType; let router = initRouter(VueRouter, store);//路由拦截处理 diff --git a/src/views/pages/autoexec/components/param/edit/input.vue b/src/views/pages/autoexec/components/param/edit/input.vue index 69aaab19a217d07217675b6de6adf258e2cf676d..e3dbe8213b3f8932b2f563f978dd5b755cdfabcf 100644 --- a/src/views/pages/autoexec/components/param/edit/input.vue +++ b/src/views/pages/autoexec/components/param/edit/input.vue @@ -6,7 +6,7 @@ :disabled="disabled" v-bind="getSetting" border="border" - @on-change="updateval" + @on-blur="updateval" > diff --git a/src/views/pages/autoexec/components/param/edit/text.vue b/src/views/pages/autoexec/components/param/edit/text.vue index 80cefacf1c9dc16790c30ffcdfc3a1046abd0727..de5a01e02d7c36318993bcfe8ebcf389ea384ee0 100644 --- a/src/views/pages/autoexec/components/param/edit/text.vue +++ b/src/views/pages/autoexec/components/param/edit/text.vue @@ -24,7 +24,7 @@ :class="type==='textarea'?'pre':''" border="border" :maxlength="config && config.maxlength ?config.maxlength : type==='textarea'? 6114:2048" - @on-change="updateval" + @on-blur="updateval" > diff --git a/src/views/pages/autoexec/components/param/edit/textarea.vue b/src/views/pages/autoexec/components/param/edit/textarea.vue index 5fe19f13dc0d1136ef382a68beba834bc99798a5..a73a926ebef0c27be443fbe8fc28c7400b5dab72 100644 --- a/src/views/pages/autoexec/components/param/edit/textarea.vue +++ b/src/views/pages/autoexec/components/param/edit/textarea.vue @@ -8,7 +8,7 @@ border="border" type="textarea" :maxlength="maxlength" - @on-change="updateval" + @on-blur="updateval" > - diff --git a/src/views/pages/autoexec/components/script/item/condition/tool.vue b/src/views/pages/autoexec/components/script/item/condition/tool.vue index 135fefba61bf0870c9131daba2e4d425a1ea53ac..eca01399757c46b4c41221458f91731c73b923c1 100644 --- a/src/views/pages/autoexec/components/script/item/condition/tool.vue +++ b/src/views/pages/autoexec/components/script/item/condition/tool.vue @@ -6,7 +6,7 @@
- + >
- diff --git a/src/views/pages/extramenu/extramenu.js b/src/views/pages/extramenu/extramenu.js deleted file mode 100644 index 3ffe652b4fbacf20c8ea74bfb031f744cad23a32..0000000000000000000000000000000000000000 --- a/src/views/pages/extramenu/extramenu.js +++ /dev/null @@ -1,39 +0,0 @@ -import Vue from 'vue'; -import VueRouter from 'vue-router'; -import extramenu from './extramenu.vue'; -import routers from './router.js'; -import store from '@/resources/store'; -import VueI18n from 'vue-i18n'; -import CompareUtil from '@/resources/assets/js/compareUtil.js'; -import api from '@/resources/api/api.js'; -import LocalStore from '@/resources/assets/js/localStore.js'; -import State from '@/resources/assets/js/state.js'; - -//公共的全局组件、样式等 -import '@/resources/base.js'; -import {initRouter, initI18n} from '@/resources/init.js'; - -Vue.use(VueRouter); -Vue.use(VueI18n); -Vue.use(CompareUtil);//必须要在use router之后执行 - -import {config} from './config.js'; -MODULEID = config.module; -MENULIST = routers; -MENUTYPE = config.menuType; - -let router = initRouter(VueRouter, store);//路由拦截处理 -let i18n = initI18n(VueI18n, {});//语言包配置 - -Vue.prototype.$tsrouter = router; -Vue.config.productionTip = false; -Vue.prototype.$api = api; -Vue.prototype.$localStore = new LocalStore('extramenu', router); -Vue.prototype.$state = new State('extramenu'); - -new Vue({ - router, - store, - i18n, - render: h => h(extramenu) -}).$mount('#index'); diff --git a/src/views/pages/extramenu/extramenu.vue b/src/views/pages/extramenu/extramenu.vue deleted file mode 100644 index c09a72162aed476860e0d6f3daa3784fadea5bf2..0000000000000000000000000000000000000000 --- a/src/views/pages/extramenu/extramenu.vue +++ /dev/null @@ -1,56 +0,0 @@ - - diff --git a/src/views/pages/extramenu/router.js b/src/views/pages/extramenu/router.js deleted file mode 100644 index 51e4d3e043f5d4f41dc493ae5c9829cf7de64c55..0000000000000000000000000000000000000000 --- a/src/views/pages/extramenu/router.js +++ /dev/null @@ -1,56 +0,0 @@ -const refresh = () => import('@/views/pages/common/refresh.vue'); -const noAuthority = () => import('@/views/pages/common/no-authority.vue'); -const welcome = () => import('@/views/pages/common/welcome.vue'); -const detail = () => import('@/views/pages/extramenu/detail.vue'); -import { $t } from '@/resources/init.js'; - -export default [ - { - path: '/', - beforeEnter: (to, from, next) => { - let defaultPage = ''; - try { - const moduleList = JSON.parse(localStorage.getItem('moduleList')); - defaultPage = - moduleList.find(module => { - return module.moduleId === MODULEID; - }).defaultPage || '/welcome'; - } catch { - defaultPage = '/welcome'; - } - if (from.path === defaultPage) { - //通过跳转到中间路由,并立刻返回原路由,实现刷新路由页面的效果 - next({ name: 'refresh', replace: true, query: { path: defaultPage } }); - } else { - next({ path: defaultPage, replace: true }); - } - } - }, - { - path: '/refresh', - name: 'refresh', - component: refresh - }, - { - path: '/no-authority', - name: 'no-authority', - component: noAuthority, - meta: { - title: $t('router.common.pagenoexist') - } - }, - { - path: '/welcome', - name: 'welcome', - component: welcome - }, - { - path: '/detail', - name: 'detail', - component: detail, - meta: { - title: 'detail' - } - } - -]; diff --git a/src/views/pages/framework/extramenu/extramenu-manage-bak.vue b/src/views/pages/framework/extramenu/extramenu-manage-bak.vue deleted file mode 100644 index 7192b6ceeff8a8d58daa5d56a7682aedc7b322ab..0000000000000000000000000000000000000000 --- a/src/views/pages/framework/extramenu/extramenu-manage-bak.vue +++ /dev/null @@ -1,595 +0,0 @@ - - - diff --git a/src/views/pages/framework/extramenu/menu-edit-bak.vue b/src/views/pages/framework/extramenu/menu-edit-bak.vue deleted file mode 100644 index 246e73631f4b24bb53fa8174015d40318395ced5..0000000000000000000000000000000000000000 --- a/src/views/pages/framework/extramenu/menu-edit-bak.vue +++ /dev/null @@ -1,138 +0,0 @@ - - - diff --git a/src/views/pages/framework/framework.js b/src/views/pages/framework/framework.js index 0c56b6b9b1b43a49968bbc443b649e8773ba5e57..6357d3a80eb6f0d7e7f22c418f5f4db9960ccb4c 100644 --- a/src/views/pages/framework/framework.js +++ b/src/views/pages/framework/framework.js @@ -10,6 +10,7 @@ import md5 from 'js-md5'; import frameworkUtils from '@/views/pages/framework/matrix/utils/utils'; import LocalStore from '@/resources/assets/js/localStore.js'; import State from '@/resources/assets/js/state.js'; +import commonRouters from '@/views/pages/common/router.js'; //公共的全局组件、样式等 import '@/resources/base.js'; @@ -21,7 +22,7 @@ Vue.use(CompareUtil); //必须要在use router之后执行 import { config } from './config.js'; MODULEID = config.module; -MENULIST = routers; +MENULIST = [...commonRouters, ...routers]; MENUTYPE = config.menuType; let router = initRouter(VueRouter, store); //路由拦截处理 diff --git a/src/views/pages/framework/homepage/edit-homepage-dialog.vue b/src/views/pages/framework/homepage/edit-homepage-dialog.vue index d59b698790834981582279c3297687ab2355669d..14bc0a840a149f813fad40bfead03a798162ff79 100644 --- a/src/views/pages/framework/homepage/edit-homepage-dialog.vue +++ b/src/views/pages/framework/homepage/edit-homepage-dialog.vue @@ -1,9 +1,9 @@