From 0201e9bed3d3e9245f8c3dc67971978f1215de32 Mon Sep 17 00:00:00 2001 From: homiexie <624128114@qq.com> Date: Tue, 14 Jan 2020 14:18:16 +0800 Subject: [PATCH 01/16] add eslint --- cmdb-ui/package.json | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/cmdb-ui/package.json b/cmdb-ui/package.json index b44dacf9d..3fb45d906 100644 --- a/cmdb-ui/package.json +++ b/cmdb-ui/package.json @@ -5,12 +5,8 @@ "scripts": { "start": "vue-cli-service serve", "build": "vue-cli-service build", - "plugin": "vue-cli-service build --mode plugin" - }, - "husky": { - "hooks": { - "pre-commit": "lint-staged" - } + "plugin": "vue-cli-service build --mode plugin", + "precommit": "lint-staged" }, "lint-staged": { "*.{js,json,css,md,vue}": [ From af723e2aec7a1e5dc44baa558052172305e3cf68 Mon Sep 17 00:00:00 2001 From: homiexie <624128114@qq.com> Date: Tue, 14 Jan 2020 14:21:47 +0800 Subject: [PATCH 02/16] add eslint --- cmdb-ui/package.json | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/cmdb-ui/package.json b/cmdb-ui/package.json index 3fb45d906..b44dacf9d 100644 --- a/cmdb-ui/package.json +++ b/cmdb-ui/package.json @@ -5,8 +5,12 @@ "scripts": { "start": "vue-cli-service serve", "build": "vue-cli-service build", - "plugin": "vue-cli-service build --mode plugin", - "precommit": "lint-staged" + "plugin": "vue-cli-service build --mode plugin" + }, + "husky": { + "hooks": { + "pre-commit": "lint-staged" + } }, "lint-staged": { "*.{js,json,css,md,vue}": [ From 20c43e1ac4ca261a013cd8c95cada0449a484b2f Mon Sep 17 00:00:00 2001 From: homiexie <624128114@qq.com> Date: Tue, 14 Jan 2020 14:38:05 +0800 Subject: [PATCH 03/16] add eslint --- cmdb-ui/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmdb-ui/package.json b/cmdb-ui/package.json index b44dacf9d..3e17dec40 100644 --- a/cmdb-ui/package.json +++ b/cmdb-ui/package.json @@ -25,9 +25,7 @@ "core-js": "^2.6.11", "d3-graphviz": "^2.6.1", "highlight.js": "^9.15.8", - "husky": "^1.3.1", "less-loader": "^4.1.0", - "lint-staged": "^8.1.5", "mermaid": "^8.1.0", "moment": "^2.24.0", "view-design": "^4.0.2", @@ -70,6 +68,8 @@ "file-loader": "^1.1.4", "friendly-errors-webpack-plugin": "^1.6.1", "html-webpack-plugin": "^2.30.1", + "husky": "^4.0.7", + "lint-staged": "^9.5.0", "node-notifier": "^5.1.2", "node-sass": "^4.13.0", "optimize-css-assets-webpack-plugin": "^3.2.0", From 3b97ba5f83d559c54e717e7338b84e2fc5f0352f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=A3=AE=E5=B3=B0?= <729346129@qq.com> Date: Tue, 14 Jan 2020 15:00:09 +0800 Subject: [PATCH 04/16] add eslint --- cmdb-ui/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmdb-ui/package.json b/cmdb-ui/package.json index b44dacf9d..3e17dec40 100644 --- a/cmdb-ui/package.json +++ b/cmdb-ui/package.json @@ -25,9 +25,7 @@ "core-js": "^2.6.11", "d3-graphviz": "^2.6.1", "highlight.js": "^9.15.8", - "husky": "^1.3.1", "less-loader": "^4.1.0", - "lint-staged": "^8.1.5", "mermaid": "^8.1.0", "moment": "^2.24.0", "view-design": "^4.0.2", @@ -70,6 +68,8 @@ "file-loader": "^1.1.4", "friendly-errors-webpack-plugin": "^1.6.1", "html-webpack-plugin": "^2.30.1", + "husky": "^4.0.7", + "lint-staged": "^9.5.0", "node-notifier": "^5.1.2", "node-sass": "^4.13.0", "optimize-css-assets-webpack-plugin": "^3.2.0", From 227faa22100c63186f12acaa2f17d78642ad80a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=A3=AE=E5=B3=B0?= <729346129@qq.com> Date: Tue, 14 Jan 2020 15:01:27 +0800 Subject: [PATCH 05/16] add eslint --- cmdb-ui/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmdb-ui/package.json b/cmdb-ui/package.json index 3e17dec40..6f7f1fc94 100644 --- a/cmdb-ui/package.json +++ b/cmdb-ui/package.json @@ -15,7 +15,7 @@ "lint-staged": { "*.{js,json,css,md,vue}": [ "prettier --write", - "eslint --fix", + "eslint --fix", "git add" ] }, From 65a764ffebd51520fab42926613fe687a1962103 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=A3=AE=E5=B3=B0?= <729346129@qq.com> Date: Tue, 14 Jan 2020 15:18:57 +0800 Subject: [PATCH 06/16] add eslint --- cmdb-ui/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmdb-ui/package.json b/cmdb-ui/package.json index 6f7f1fc94..3e17dec40 100644 --- a/cmdb-ui/package.json +++ b/cmdb-ui/package.json @@ -15,7 +15,7 @@ "lint-staged": { "*.{js,json,css,md,vue}": [ "prettier --write", - "eslint --fix", + "eslint --fix", "git add" ] }, From c1dc247292efc9c54fa62bc00d0b52aecaba0813 Mon Sep 17 00:00:00 2001 From: xuxuzhesi Date: Tue, 14 Jan 2020 18:06:04 +0800 Subject: [PATCH 07/16] #560 get All Zone Link Group By Idc --- .../controller/ui/helper/UIWrapperService.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/cmdb-core/src/main/java/com/webank/cmdb/controller/ui/helper/UIWrapperService.java b/cmdb-core/src/main/java/com/webank/cmdb/controller/ui/helper/UIWrapperService.java index a172c1069..d888e88bb 100644 --- a/cmdb-core/src/main/java/com/webank/cmdb/controller/ui/helper/UIWrapperService.java +++ b/cmdb-core/src/main/java/com/webank/cmdb/controller/ui/helper/UIWrapperService.java @@ -966,15 +966,16 @@ public List getAllZoneLinkGroupByIdc() { List zoneData = queryCiData(uiProperties.getCiTypeIdOfZone(), defaultQueryObject().addEqualsFilter("data_center", idcGuid)).getContents(); List zoneList = new ArrayList<>(); - for (Object zone : zoneData) { - zoneList.add(idc.getData().get(CmdbConstants.GUID).toString()); + for (CiData zone : zoneData) { + zoneList.add(zone.getData().get(CmdbConstants.GUID).toString()); } if (zoneList.size() != 0) { - List zoneLinkData = queryCiData(uiProperties.getCiTypeIdOfZoneLink(), - defaultQueryObject() - .addInFilter("network_zone_1", zoneList) - .addInFilter("network_zone_2", zoneList) - .setFiltersRelationship("or")) + QueryRequest setFiltersRelationship = defaultQueryObject() + .addInFilter("network_zone_1", zoneList) + .addInFilter("network_zone_2", zoneList) + .setFiltersRelationship("or"); + setFiltersRelationship.getDialect().setShowCiHistory(true); + List zoneLinkData = queryCiData(uiProperties.getCiTypeIdOfZoneLink(),setFiltersRelationship) .getContents(); result.setLinkList(zoneLinkData); } From 508b25872604a1418bef4f2c27a8d26ab70ce30a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=A3=AE=E5=B3=B0?= <729346129@qq.com> Date: Wed, 15 Jan 2020 12:00:26 +0800 Subject: [PATCH 08/16] #560 reconsitution params in component physical-graph --- cmdb-ui/src/api/server.js | 156 +++++++++--------- .../designing/application-architecture.vue | 8 +- .../designing/application-deployment.vue | 14 +- .../src/pages/designing/physical-graph.vue | 2 +- 4 files changed, 93 insertions(+), 87 deletions(-) diff --git a/cmdb-ui/src/api/server.js b/cmdb-ui/src/api/server.js index 6028f3a88..794c17f11 100755 --- a/cmdb-ui/src/api/server.js +++ b/cmdb-ui/src/api/server.js @@ -26,14 +26,15 @@ export const addUser = data => req.post(`/admin/users/create`, data) export const addUsersToRole = (users, roleName) => req.post(`/admin/roles/${roleName}/users`, users) export const romoveUsersFromRole = (users, roleName) => req.delete(`/admin/roles/${roleName}/users`, { data: users }) export const addMenusToRole = (menuCodes, roleName) => req.post(`/admin/roles/${roleName}/menu-permissions`, menuCodes) -export const removeMenusFromRole = (menuCodes, roleName) => - req.delete(`/admin/roles/${roleName}/menu-permissions`, { - data: menuCodes - }) +export const removeMenusFromRole = (menuCodes, roleName) => req.delete(`/admin/roles/${roleName}/menu-permissions`, {data: menuCodes}) export const addDataPermissionAction = (roleName, ciTypeId, actionCode) => - req.post(`/admin/roles/${roleName}/citypes/${ciTypeId}/actions/${actionCode}`) + req.post( + `/admin/roles/${roleName}/citypes/${ciTypeId}/actions/${actionCode}` + ) export const removeDataPermissionAction = (roleName, ciTypeId, actionCode) => - req.delete(`/admin/roles/${roleName}/citypes/${ciTypeId}/actions/${actionCode}`) + req.delete( + `/admin/roles/${roleName}/citypes/${ciTypeId}/actions/${actionCode}` + ) export const getRoleCiTypeCtrlAttributesByRoleCiTypeId = roleCitypeId => req.get(`/admin/role-citypes/${roleCitypeId}/ctrl-attributes`) export const createRoleCiTypeCtrlAttributes = (roleCitypeId, data) => @@ -61,24 +62,26 @@ export const getSpecialConnector = () => req.get('/static-data/special-connector // CI design export const implementCiType = (id, op) => req.post(`/ci-types/${id}/implement?operation=${op}`) -export const implementCiAttr = (ciTypeId, ciAttrId, op) => - req.post(`/ci-types/${ciTypeId}/attributes/${ciAttrId}/implement?operation=${op}`) +export const implementCiAttr = (ciTypeId, ciAttrId, op) => req.post(`/ci-types/${ciTypeId}/attributes/${ciAttrId}/implement?operation=${op}`) export const getAllCITypes = () => req.get('/ci-types') export const getAllEnumCategoryTypes = () => req.get('/enum/category-types') export const getAllEnumCategories = () => req.get('/enum/category-types/categories') export const createEnumCategory = data => req.post(`/enum/category-types/${data.catTypeId}/categories/create`, data) -export const updateEnumCategory = data => - req.put(`/enum/category-types/${data.catTypeId}/categories/${data.catId}`, data) +export const updateEnumCategory = data => req.put(`/enum/category-types/${data.catTypeId}/categories/${data.catId}`, data) export const getAllCITypesByLayerWithAttr = data => { const status = data.toString() - return req.get(`/ci-types?group-by=layer&with-attributes=yes&status=${status}`) + return req.get( + `/ci-types?group-by=layer&with-attributes=yes&status=${status}` + ) } export const getAllLayers = () => req.get('/ci-type-layers') export const createLayer = data => req.post('/ci-type-layers/create', data) export const deleteLayer = id => req.delete(`/ci-type-layers/${id}`) export const updateLayer = data => req.post(`/enum/codes/update`, data) export const swapLayerPosition = (layerId, targetLayerId) => - req.post(`/ci-type-layers/${layerId}/swap-position?target-layer-id=${targetLayerId}`) + req.post( + `/ci-type-layers/${layerId}/swap-position?target-layer-id=${targetLayerId}` + ) export const deleteCITypeByID = id => req.delete(`/ci-types/${id}`) export const deleteAttr = (ciTypeId, attrId) => req.delete(`/ci-types/${ciTypeId}/attributes/${attrId}`) export const applyCiTypes = id => req.post(`/ci-types/${id}/apply`) @@ -89,11 +92,15 @@ export const updateCIAttr = (attrId, ciTypeId, data) => req.put(`/ci-types/${ciT export const applyCIAttr = (ciTypeId, attrIds) => req.post(`/ci-types/${ciTypeId}/ci-type-attributes/apply`, attrIds) export const swapCiTypeAttributePosition = (ciTypeId, attrId, targetAttrId) => { - return req.post(`/ci-types/${ciTypeId}/attributes/${attrId}/swap-position?target-attribute-id=${targetAttrId}`) + return req.post( + `/ci-types/${ciTypeId}/attributes/${attrId}/swap-position?target-attribute-id=${targetAttrId}` + ) } export const getAllInputTypes = () => req.get('/static-data/available-ci-type-attribute-input-types') export const getEnumByCIType = id => - req.get(`/enum/category-types/categories/query-by-multiple-types?ci-type-id=${id}&types=common-private`) + req.get( + `/enum/category-types/categories/query-by-multiple-types?ci-type-id=${id}&types=common-private` + ) export const getCiTypes = data => req.get(`/ci-types?${data.key}=${data.value}`) export const getAllIdcDesignData = () => req.get(`/ci-data/all-idc-design`) export const getIdcDesignTreeByGuid = data => req.post(`/data-tree/query-idc-design-tree`, data) @@ -103,78 +110,79 @@ export const getIdcImplementTreeByGuid = data => req.post(`/data-tree/query-idc- export const getPlanningDesignTabs = () => req.get('/planning-designs/tabs') export const getResourcePlanningTabs = () => req.get('/resource-planning/tabs') export const getPlanningDesignsCiData = data => - req.post(`/planning-designs/ci-data?code-id=${data.id}&idcs-guid=${data.idcGuid}`, data.queryObject) + req.post( + `/planning-designs/ci-data?code-id=${data.id}&idcs-guid=${data.idcGuid}`, + data.queryObject + ) export const getResourcePlanningCiData = data => - req.post(`/resource-planning/ci-data?code-id=${data.id}&idcs-guid=${data.idcGuid}`, data.queryObject) + req.post( + `/resource-planning/ci-data?code-id=${data.id}&idcs-guid=${data.idcGuid}`, + data.queryObject + ) export const getAllZoneLinkGroupByIdc = () => req.get(`/all-zone-link`) export const getSystemDesigns = () => req.get('/system-designs') export const getSystems = () => req.get('/system') export const getAllDesignTreeFromSystemDesign = id => - req.get(`/trees/all-design-trees/from-system-design?system-design-guid=${id}`) + req.get( + `/trees/all-design-trees/from-system-design?system-design-guid=${id}` + ) export const saveAllDesignTreeFromSystemDesign = id => - req.post(`/trees/all-design-trees/from-system-design/save?system-design-guid=${id}`) + req.post( + `/trees/all-design-trees/from-system-design/save?system-design-guid=${id}` + ) export const getArchitectureDesignTabs = () => req.get('/architecture-designs/tabs') export const getArchitectureCiDatas = (tabId, sysId, payload) => - req.post(`/architecture-designs/tabs/ci-data?code-id=${tabId}&system-design-guid=${sysId}`, payload) -export const getApplicationFrameworkDesignDataTree = guid => - req.get(`/data-tree/application-framework-design?system-design-guid=${guid}`) + req.post( + `/architecture-designs/tabs/ci-data?code-id=${tabId}&system-design-guid=${sysId}`, + payload + ) +export const getApplicationFrameworkDesignDataTree = guid => req.get(`/data-tree/application-framework-design?system-design-guid=${guid}`) export const getDeployCiData = (data, payload) => - req.post(`/deploy-designs/tabs/ci-data?code-id=${data.codeId}&system-guid=${data.systemGuid}`, payload) + req.post( + `/deploy-designs/tabs/ci-data?code-id=${data.codeId}&system-guid=${data.systemGuid}`, + payload + ) export const getDeployDesignTabs = () => req.get(`/deploy-designs/tabs`) -export const previewDeployGraph = data => { - return req.post(`/process/definitions/preview`, data) -} +export const previewDeployGraph = data => req.post(`/process/definitions/preview`, data) export const getAllDeployTreesFromSystemCi = guid => req.get(`/trees/all-deploy-trees/from-system?system-guid=${guid}`) -export const startProcessInstancesWithCiDataInbatch = data => { - return req.post(`/process/inbatch/instances`, data) -} +export const startProcessInstancesWithCiDataInbatch = data => req.post(`/process/inbatch/instances`, data) export const getApplicationDeploymentDataTree = guid => req.get(`/data-tree/application-deployment?system-guid=${guid}`) export const queryEnumCategories = data => req.post(`/enum/categories/query`, data) export const queryEnumCodes = (catTypeId, catId, data) => - req.post(`/enum/category-types/${catTypeId}/categories/${catId}/codes/query`, data) - + req.post( + `/enum/category-types/${catTypeId}/categories/${catId}/codes/query`, + data + ) export const getTableStatus = () => req.get('/static-data/available-ci-type-table-status') // basic data page -export const getAllSystemEnumCodes = data => { - return req.post(`/enum/system/codes`, data) -} +export const getAllSystemEnumCodes = data => req.post(`/enum/system/codes`, data) export const getSystemCategories = () => req.get(`/enum/system-categories`) -export const getAllNonSystemEnumCodes = data => { - return req.post(`/enum/non-system/codes`, data) -} +export const getAllNonSystemEnumCodes = data => req.post(`/enum/non-system/codes`, data) export const getNonSystemCategories = () => req.get(`/enum/non-system-categories`) export const getEffectiveStatus = () => req.get(`/static-data/effective-status`) export const createEnumCode = data => { - return req.post(`/enum/category-types/0/categories/${data.catId}/codes/create`, data) -} -export const updateEnumCode = data => { - return req.post(`/enum/codes/update`, data) + return req.post( + `/enum/category-types/0/categories/${data.catId}/codes/create`, + data + ) } +export const updateEnumCode = data => req.post(`/enum/codes/update`, data) export const getGroupListByCodeId = id => req.get(`/enum/categories/${id}/group-list`) -export const deleteEnumCodes = data => { - return req.post(`/enum/codes/delete`, data) -} -export const queryCiData = data => { - return req.post(`/ci-types/${data.id}/ci-data/query`, data.queryObject) -} +export const deleteEnumCodes = data => req.post(`/enum/codes/delete`, data) +export const queryCiData = data => req.post(`/ci-types/${data.id}/ci-data/query`, data.queryObject) export const queryCiDataByType = data => { - return req.post(`/ci-types/${data.id}/ci-data/query-by-type`, data.queryObject) -} -export const getCiTypeAttributes = id => { - return req.get(`/ci-types/${id}/attributes`) -} -export const deleteCiDatas = data => { - return req.post(`/ci-types/${data.id}/ci-data/batch-delete`, data.deleteData) -} -export const createCiDatas = data => { - return req.post(`/ci-types/${data.id}/ci-data/batch-create`, data.createData) -} -export const updateCiDatas = data => { - return req.post(`/ci-types/${data.id}/ci-data/batch-update`, data.updateData) + return req.post( + `/ci-types/${data.id}/ci-data/query-by-type`, + data.queryObject + ) } +export const getCiTypeAttributes = id => req.get(`/ci-types/${id}/attributes`) +export const deleteCiDatas = data => req.post(`/ci-types/${data.id}/ci-data/batch-delete`, data.deleteData) +export const createCiDatas = data => req.post(`/ci-types/${data.id}/ci-data/batch-create`, data.createData) +export const updateCiDatas = data => req.post(`/ci-types/${data.id}/ci-data/batch-update`, data.updateData) export const operateCiState = (ciTypeId, guid, op) => { const payload = [{ ciTypeId, guid }] @@ -182,28 +190,14 @@ export const operateCiState = (ciTypeId, guid, op) => { } // ci integrate query -export const getQueryNames = id => { - return req.get(`/intQuery/ciType/${id}/search`) -} -export const queryIntHeader = id => { - return req.get(`/intQuery/${id}/header`) -} -export const excuteIntQuery = (id, data) => { - return req.post(`/intQuery/${id}/execute`, data) -} - -export const fetchIntQueryById = (ciTypeId, queryId) => { - return req.get(`/intQuery/ciType/${ciTypeId}/${queryId}`) -} -export const saveIntQuery = (ciTypeId, queryName, data) => { - return req.post(`/intQuery/ciType/${ciTypeId}/${queryName}/save`, data) -} -export const updateIntQuery = (queryId, data) => { - return req.post(`/intQuery/${queryId}/update`, data) -} -export const deleteIntQuery = (ciTypeId, queryId) => { - return req.post(`/intQuery/ciType/${ciTypeId}/${queryId}/delete`) -} +export const getQueryNames = id => req.get(`/intQuery/ciType/${id}/search`) +export const queryIntHeader = id => req.get(`/intQuery/${id}/header`) +export const excuteIntQuery = (id, data) => req.post(`/intQuery/${id}/execute`, data) + +export const fetchIntQueryById = (ciTypeId, queryId) => req.get(`/intQuery/ciType/${ciTypeId}/${queryId}`) +export const saveIntQuery = (ciTypeId, queryName, data) => req.post(`/intQuery/ciType/${ciTypeId}/${queryName}/save`, data) +export const updateIntQuery = (queryId, data) => req.post(`/intQuery/${queryId}/update`, data) +export const deleteIntQuery = (ciTypeId, queryId) => req.post(`/intQuery/ciType/${ciTypeId}/${queryId}/delete`) // filterRules export const queryReferenceEnumCodes = data => req.post(`/referenceEnumCodes/${data.attrId}/query`, data.params) export const queryReferenceCiData = data => req.post(`/referenceCiData/${data.attrId}/query`, data.queryObject) diff --git a/cmdb-ui/src/pages/designing/application-architecture.vue b/cmdb-ui/src/pages/designing/application-architecture.vue index 7756f30b3..f29378a30 100755 --- a/cmdb-ui/src/pages/designing/application-architecture.vue +++ b/cmdb-ui/src/pages/designing/application-architecture.vue @@ -539,7 +539,13 @@ export default { } if (links.statusCode === 'OK') { const found = links.data.find(_ => _.idcGuid === foundIdcGuid) - this.physicalGraphLinks = found ? found.linkList : [] + this.physicalGraphLinks = found ? found.linkList.map(_ => { + return { + ..._, + from: _.data.network_zone_design_1, + to: _.data.network_zone_design_2 + } + }) : [] } }, graphCallback () { diff --git a/cmdb-ui/src/pages/designing/application-deployment.vue b/cmdb-ui/src/pages/designing/application-deployment.vue index ed0d1e0d8..c650788a7 100755 --- a/cmdb-ui/src/pages/designing/application-deployment.vue +++ b/cmdb-ui/src/pages/designing/application-deployment.vue @@ -284,9 +284,9 @@ export default { const node = this.systemLines[guid] if (this.graphNodes[node.from] && this.graphNodes[node.to]) { let color = '#000' - // if (!_.fixedDate) { - // color = stateColor[node.state] - // } + if (!node.fixedDate) { + color = stateColor[node.state] + } result.push( `n_${node.from}->n_${node.to}`, `[id="gl_${node.id}",`, @@ -417,7 +417,13 @@ export default { } } if (links.statusCode === 'OK') { - this.physicalGraphLinks = links.data || [] + this.physicalGraphLinks = links.data.map(_ => { + return { + ..._, + from: _.data.network_zone_1, + to: _.data.network_zone_2 + } + }) || [] } }, graphCallback () { diff --git a/cmdb-ui/src/pages/designing/physical-graph.vue b/cmdb-ui/src/pages/designing/physical-graph.vue index 5b70e6c9b..5ffd7e7a0 100755 --- a/cmdb-ui/src/pages/designing/physical-graph.vue +++ b/cmdb-ui/src/pages/designing/physical-graph.vue @@ -126,7 +126,7 @@ export default { genLink () { let result = '' this.links.forEach(link => { - result += `g_${link.data.network_zone_design_1.guid}->g_${link.data.network_zone_design_2.guid}[arrowhead="none"];` + result += `g_${link.from.guid}->g_${link.to.guid}[arrowhead="none"];` }) return result }, From a05800a2c46588bc25f2ca463f9d55fde91687bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=A3=AE=E5=B3=B0?= <729346129@qq.com> Date: Wed, 15 Jan 2020 15:40:53 +0800 Subject: [PATCH 09/16] #560 reconsitution params in component physical-graph --- cmdb-ui/bin/npm | 1 - cmdb-ui/bin/npx | 1 - .../designing/application-deployment.vue | 5 +- cmdb-ui/vue.config.js | 80 +++++++++---------- 4 files changed, 43 insertions(+), 44 deletions(-) delete mode 120000 cmdb-ui/bin/npm delete mode 120000 cmdb-ui/bin/npx diff --git a/cmdb-ui/bin/npm b/cmdb-ui/bin/npm deleted file mode 120000 index 3c8e29961..000000000 --- a/cmdb-ui/bin/npm +++ /dev/null @@ -1 +0,0 @@ -../lib/node_modules/npm/bin/npm-cli.js \ No newline at end of file diff --git a/cmdb-ui/bin/npx b/cmdb-ui/bin/npx deleted file mode 120000 index d224c2920..000000000 --- a/cmdb-ui/bin/npx +++ /dev/null @@ -1 +0,0 @@ -../lib/node_modules/npm/bin/npx-cli.js \ No newline at end of file diff --git a/cmdb-ui/src/pages/designing/application-deployment.vue b/cmdb-ui/src/pages/designing/application-deployment.vue index c650788a7..863182b59 100755 --- a/cmdb-ui/src/pages/designing/application-deployment.vue +++ b/cmdb-ui/src/pages/designing/application-deployment.vue @@ -417,13 +417,14 @@ export default { } } if (links.statusCode === 'OK') { - this.physicalGraphLinks = links.data.map(_ => { + const found = links.data.find(_ => _.idcGuid === this.systemVersion) + this.physicalGraphLinks = found ? found.links.data.map(_ => { return { ..._, from: _.data.network_zone_1, to: _.data.network_zone_2 } - }) || [] + }) : [] } }, graphCallback () { diff --git a/cmdb-ui/vue.config.js b/cmdb-ui/vue.config.js index d7c8619fa..6aea4e548 100755 --- a/cmdb-ui/vue.config.js +++ b/cmdb-ui/vue.config.js @@ -1,4 +1,4 @@ -const CompressionPlugin = require("compression-webpack-plugin"); +const CompressionPlugin = require('compression-webpack-plugin') module.exports = { devServer: { // hot: true, @@ -6,75 +6,75 @@ module.exports = { open: true, port: 3000, proxy: { - "/process": { - target: " http://localhost:9080" + '/process': { + target: 'http://localhost:9080' }, - "/admin": { - target: " http://localhost:9080" + '/admin': { + target: 'http://localhost:9080' }, - "/wecmdb": { - target: "http://localhost:9080" + '/wecmdb': { + target: 'http://localhost:9080' }, - "/logout": { - target: "http://localhost:9080" + '/logout': { + target: 'http://localhost:9080' }, - "/plugin": { - target: "http://localhost:9080" + '/plugin': { + target: 'http://localhost:9080' }, - "/artifact": { - target: "http://localhost:9080" + '/artifact': { + target: 'http://localhost:9080' }, - "/batch-job": { - target: "http://localhost:9080" + '/batch-job': { + target: 'http://localhost:9080' } } }, runtimeCompiler: true, - publicPath: "/wecmdb/", + publicPath: '/wecmdb/', chainWebpack: config => { - if (process.env.PLUGIN !== "plugin") { + if (process.env.PLUGIN !== 'plugin') { // remove the old loader - const img = config.module.rule("images"); - img.uses.clear(); + const img = config.module.rule('images') + img.uses.clear() // add the new one img - .use("file-loader") - .loader("file-loader") + .use('file-loader') + .loader('file-loader') .options({ - outputPath: "img" - }); + outputPath: 'img' + }) } - config.when(process.env.PLUGIN === "plugin", config => { + config.when(process.env.PLUGIN === 'plugin', config => { config - .entry("app") + .entry('app') .clear() - .add("./src/main-plugin.js"); //作为插件时 - }); + .add('./src/main-plugin.js') // 作为插件时 + }) config.when(!process.env.PLUGIN, config => { config - .entry("app") + .entry('app') .clear() - .add("./src/main.js"); //独立运行时 - }); + .add('./src/main.js') // 独立运行时 + }) }, - productionSourceMap: process.env.PLUGIN !== "plugin", + productionSourceMap: process.env.PLUGIN !== 'plugin', configureWebpack: config => { - if (process.env.PLUGIN === "plugin") { + if (process.env.PLUGIN === 'plugin') { config.optimization.splitChunks = {} - return; + return } - if (process.env.NODE_ENV === "production") { + if (process.env.NODE_ENV === 'production') { return { plugins: [ new CompressionPlugin({ - algorithm: "gzip", - test: /\.js$|\.html$|.\css/, //匹配文件名 - threshold: 10240, //对超过10k的数据压缩 - deleteOriginalAssets: false //不删除源文件 + algorithm: 'gzip', + test: /\.js$|\.html$|.\css/, // 匹配文件名 + threshold: 10240, // 对超过10k的数据压缩 + deleteOriginalAssets: false // 不删除源文件 }) ] - }; + } } } -}; +} From 4fb4597e1cd515e717c2340dce7f52875a38397a Mon Sep 17 00:00:00 2001 From: homiexie <624128114@qq.com> Date: Wed, 15 Jan 2020 16:19:19 +0800 Subject: [PATCH 10/16] #640 bug fix for css --- .../src/pages/admin/cmdb-model-management.vue | 906 ++++++++++++------ .../src/pages/admin/permission-management.vue | 112 ++- cmdb-ui/src/pages/components/table.js | 117 ++- cmdb-ui/src/pages/designing/planning.vue | 2 +- 4 files changed, 785 insertions(+), 352 deletions(-) diff --git a/cmdb-ui/src/pages/admin/cmdb-model-management.vue b/cmdb-ui/src/pages/admin/cmdb-model-management.vue index 0bac539c6..f90f1b000 100755 --- a/cmdb-ui/src/pages/admin/cmdb-model-management.vue +++ b/cmdb-ui/src/pages/admin/cmdb-model-management.vue @@ -16,7 +16,13 @@ {{ $t('state') }} - @@ -43,7 +49,12 @@ - +

@@ -67,51 +78,98 @@ - - -

- {{ item.name }} - - - - - - - - -
-
-
- - - - - - - - - - - - - - - - -
-
- - - -
+
+ + +
+ {{ item.name }} + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + +
+
+
+
+ +
@@ -128,7 +186,13 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
+ + +
+ {{ + item.name + }} + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - Yes - No - - - - - Yes - No - - - - - Yes - No - - - - - Yes - No - - - - - Yes - No - - - - - Yes - No - - - - - Yes - No - - - - - - - - - - - - - -
-
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Yes - No - - - - - Yes - No - - - - - Yes - No - - - - - Yes - No - - - - - Yes - No - - - - - Yes - No - - - - - Yes - No - - - - - - - - -
-
+ + + + + Yes + No + + + + + Yes + No + + + + + Yes + No + + + + + Yes + No + + + + + Yes + No + + + + + Yes + No + + + + + Yes + No + + + + + + + + + + + + + +
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Yes + No + + + + + Yes + No + + + + + Yes + No + + + + + Yes + No + + + + + Yes + No + + + + + Yes + No + + + + + Yes + No + + + + + + + + +
+
- + - + @@ -411,7 +684,34 @@ import * as d3 from 'd3-selection' import * as d3Graphviz from 'd3-graphviz' import { addEvent } from '../util/event.js' import { formatString } from '../util/format.js' -import { getAllCITypesByLayerWithAttr, getAllLayers, createLayer, deleteCITypeByID, deleteAttr, updateCIType, applyCiTypes, createNewCIType, updateLayer, swapLayerPosition, createNewCIAttr, updateCIAttr, deleteLayer, swapCiTypeAttributePosition, getAllCITypes, getAllInputTypes, getEnumByCIType, getAllSystemEnumCodes, getTableStatus, applyCIAttr, getAllEnumCategoryTypes, getAllEnumCategories, implementCiType, implementCiAttr, getEnumCategoriesByTypeId, getSpecialConnector } from '@/api/server' +import { + getAllCITypesByLayerWithAttr, + getAllLayers, + createLayer, + deleteCITypeByID, + deleteAttr, + updateCIType, + applyCiTypes, + createNewCIType, + updateLayer, + swapLayerPosition, + createNewCIAttr, + updateCIAttr, + deleteLayer, + swapCiTypeAttributePosition, + getAllCITypes, + getAllInputTypes, + getEnumByCIType, + getAllSystemEnumCodes, + getTableStatus, + applyCIAttr, + getAllEnumCategoryTypes, + getAllEnumCategories, + implementCiType, + implementCiAttr, + getEnumCategoriesByTypeId, + getSpecialConnector +} from '@/api/server' import STATUS_LIST from '@/const/graph-status-list.js' import { PROPERTY_TYPE_MAP } from '@/const/data-types.js' import { setHeaders, baseURL } from '@/api/base.js' @@ -571,7 +871,10 @@ export default { this.source.forEach(_ => { _.ciTypes && _.ciTypes.forEach(async i => { - let imgFileSource = i.imageFileId === 0 || i.imageFileId === undefined ? defaultCiTypePNG.substring(0, defaultCiTypePNG.length - 4) : `${baseURL}/files/${i.imageFileId}` + let imgFileSource = + i.imageFileId === 0 || i.imageFileId === undefined + ? defaultCiTypePNG.substring(0, defaultCiTypePNG.length - 4) + : `${baseURL}/files/${i.imageFileId}` this.$set(i, 'form', { ...i, imgSource: imgFileSource, @@ -609,7 +912,13 @@ export default { data.forEach(_ => { if (_.ciTypes) nodes = nodes.concat(_.ciTypes) }) - var dots = ['digraph {', 'bgcolor="transparent";', 'Node [fontname=Arial, shape="ellipse", fixedsize="true", width="1.1", height="1.1", color="transparent" ,fontsize=12];', 'Edge [fontname=Arial, minlen="1", color="#7f8fa6", fontsize=10];', 'ranksep = 1.1; nodesep=.7; size = "11,8"; rankdir=TB'] + var dots = [ + 'digraph {', + 'bgcolor="transparent";', + 'Node [fontname=Arial, shape="ellipse", fixedsize="true", width="1.1", height="1.1", color="transparent" ,fontsize=12];', + 'Edge [fontname=Arial, minlen="1", color="#7f8fa6", fontsize=10];', + 'ranksep = 1.1; nodesep=.7; size = "11,8"; rankdir=TB' + ] let layerTag = `node [];` // generate group @@ -621,12 +930,16 @@ export default { } else { layerTag += `"layer_${_.layerId}"` } - tempClusterObjForGraph[index] = [`{ rank=same; "layer_${_.layerId}"[id="layerId_${_.layerId}",class="layer",label="${_.name}",tooltip="${_.name}"];`] + tempClusterObjForGraph[index] = [ + `{ rank=same; "layer_${_.layerId}"[id="layerId_${_.layerId}",class="layer",label="${_.name}",tooltip="${_.name}"];` + ] nodes.length > 0 && nodes.forEach((node, nodeIndex) => { if (node.layerId === _.layerId) { let fontcolor = node.status === 'notCreated' ? '#10a34e' : 'black' - tempClusterObjForGraph[index].push(`"ci_${node.ciTypeId}"[id="${node.ciTypeId}",label="${node.name}",tooltip="${node.name}",class="ci",fontcolor="${fontcolor}", image="${node.form.imgSource}.png", labelloc="b"]`) + tempClusterObjForGraph[index].push( + `"ci_${node.ciTypeId}"[id="${node.ciTypeId}",label="${node.name}",tooltip="${node.name}",class="ci",fontcolor="${fontcolor}", image="${node.form.imgSource}.png", labelloc="b"]` + ) } if (nodeIndex === nodes.length - 1) { tempClusterObjForGraph[index].push('} ') @@ -793,10 +1106,16 @@ export default { }, async getEnum (isNewAdd = false) { const SYS_ENUM_TYPE_ID = 1 - const res = this.selectedCIAttrIsSystem && !isNewAdd ? await getEnumCategoriesByTypeId(SYS_ENUM_TYPE_ID) : await getEnumByCIType(this.currentSelectedCI.ciTypeId) + const res = + this.selectedCIAttrIsSystem && !isNewAdd + ? await getEnumCategoriesByTypeId(SYS_ENUM_TYPE_ID) + : await getEnumByCIType(this.currentSelectedCI.ciTypeId) if (res.statusCode === 'OK') { let enumList = [] - enumList = this.selectedCIAttrIsSystem && !isNewAdd ? res.data : enumList.concat(res.data.private || []).concat(res.data.common || []) + enumList = + this.selectedCIAttrIsSystem && !isNewAdd + ? res.data + : enumList.concat(res.data.private || []).concat(res.data.common || []) this.currentSelectedCIAttrEnum = enumList } }, @@ -951,7 +1270,10 @@ export default { title: this.$t('delete_confirm'), 'z-index': 1000000, onOk: async () => { - let res = status === 'notCreated' ? await deleteAttr(this.currentSelectedCI.ciTypeId, id) : await implementCiAttr(this.currentSelectedCI.ciTypeId, id, 'deco') + let res = + status === 'notCreated' + ? await deleteAttr(this.currentSelectedCI.ciTypeId, id) + : await implementCiAttr(this.currentSelectedCI.ciTypeId, id, 'deco') if (res.statusCode === 'OK') { this.$Notice.success({ title: status === 'notCreated' ? 'Delete CI Attr Successful' : 'Deprecate CI Attr Successful', @@ -1100,7 +1422,11 @@ export default { this.addNewAttrForm = {} }, async saveAttr (ciTypeAttrId, form) { - const isSelectOrRef = form.inputType === 'select' || form.inputType === 'ref' || form.inputType === 'multiSelect' || form.inputType === 'multiRef' + const isSelectOrRef = + form.inputType === 'select' || + form.inputType === 'ref' || + form.inputType === 'multiSelect' || + form.inputType === 'multiRef' let payload = { ...form, length: form.length || 1, @@ -1124,7 +1450,11 @@ export default { } }, async applyAttr (ciTypeAttrId, form) { - const isSelectOrRef = form.inputType === 'select' || form.inputType === 'ref' || form.inputType === 'multiSelect' || form.inputType === 'multiRef' + const isSelectOrRef = + form.inputType === 'select' || + form.inputType === 'ref' || + form.inputType === 'multiSelect' || + form.inputType === 'multiRef' let updateRes = await updateCIAttr(this.currentSelectedCI.ciTypeId, ciTypeAttrId, { ...form, length: form.length || 1, @@ -1265,6 +1595,10 @@ export default { From bc73cb68e37be2e9abaf7229297228ae902b2bc0 Mon Sep 17 00:00:00 2001 From: homiexie <624128114@qq.com> Date: Wed, 15 Jan 2020 17:44:14 +0800 Subject: [PATCH 12/16] #640 removed unused files --- cmdb-ui/src/pages/images/endEvent.png | Bin 12587 -> 0 bytes cmdb-ui/src/pages/images/errEndEvent.png | Bin 14434 -> 0 bytes .../src/pages/images/eventBasedGateway.png | Bin 20551 -> 0 bytes cmdb-ui/src/pages/images/exclusiveGateway.png | Bin 13787 -> 0 bytes .../pages/images/intermediateCatchEvent.png | Bin 16446 -> 0 bytes cmdb-ui/src/pages/images/serviceTask.png | Bin 930 -> 0 bytes cmdb-ui/src/pages/images/startEvent.png | Bin 12624 -> 0 bytes cmdb-ui/src/pages/util/admin.js | 235 ------------------ 8 files changed, 235 deletions(-) delete mode 100755 cmdb-ui/src/pages/images/endEvent.png delete mode 100755 cmdb-ui/src/pages/images/errEndEvent.png delete mode 100755 cmdb-ui/src/pages/images/eventBasedGateway.png delete mode 100755 cmdb-ui/src/pages/images/exclusiveGateway.png delete mode 100755 cmdb-ui/src/pages/images/intermediateCatchEvent.png delete mode 100755 cmdb-ui/src/pages/images/serviceTask.png delete mode 100755 cmdb-ui/src/pages/images/startEvent.png delete mode 100755 cmdb-ui/src/pages/util/admin.js diff --git a/cmdb-ui/src/pages/images/endEvent.png b/cmdb-ui/src/pages/images/endEvent.png deleted file mode 100755 index efc84e62ba6cfda7631247506b70721dc6abbbee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12587 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 diff --git a/cmdb-ui/src/pages/images/eventBasedGateway.png b/cmdb-ui/src/pages/images/eventBasedGateway.png deleted file mode 100755 index 33dcbf965007204126112be9bb6c3ba815fa6d3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20551 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 CJf=zj diff --git a/cmdb-ui/src/pages/images/exclusiveGateway.png b/cmdb-ui/src/pages/images/exclusiveGateway.png deleted file mode 100755 index 741267dde34df17f5f8b05e80ba0b8aded9bdf71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13787 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 diff --git a/cmdb-ui/src/pages/images/intermediateCatchEvent.png b/cmdb-ui/src/pages/images/intermediateCatchEvent.png deleted file mode 100755 index 5ffb7c35a7e1b4ed71fa725fb978ea6432320311..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16446 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 diff --git a/cmdb-ui/src/pages/images/serviceTask.png b/cmdb-ui/src/pages/images/serviceTask.png deleted file mode 100755 index 97a7c4ebaf8d93bfcc4f4377a470f7357094280f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 930 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSjKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qt-49w=9E{-7;ac}QF%)RBn;9h9fzogX1Q~ zoC6#u*)}ldOvrICJHa8@C@Ar8)&A7QD^`URK0lIm|F`G&qbp0U-Tf^2t2I(^7UKa) zhB+h?cUCaQ=uI!OntST<<={viu~f6!mTnS}r{9*{Ui-~K{(OAa z`j~9z!vc#QF{fgN`Sa(e?v1;jSFru|)W;tq?Ck7*)h`sg`C`q}y8ZgI&pz9BF7mUX zQU;g8YOJ2qX5{QR`&ri^1L!_10`PxA8e?$(pOl>c0_HEM01 zx?}e%hN3I{{`+SC|15N{K6cm-WIp|oUn#Mg=|qd9-2cm`C(qw|!Z~uWCWEhj{L#(gKfNLj zGyG%L{hi40pOLx2n89LD5e(9GHoqP|T)4kz{xXI?KYzUR{q*_cOr6Pc{m1`xE&KH6 z&z-kN^R~ZUe`mQ?Lr#s_-MsC8MSW9u#*|eT+Rgv1{e30ZgQA^Ne%9PG*?8;i_uqN^ zpZ@KSTmSd!?~wXQ(rWQKVpk`xzW3pwzVdwLtWfp|zVU0r?((j={`y_Wh4Uw#rJvpW zZT8t^`=gdyHT?Lcb;7g2YVNQ7FLulDwcnmRpMAsEFS%R_`{uDoY8spW{P*wON`oew zxB2<`cW3d*|1kRWr2pfqTt0;&<)1zVbJ+UcOGiGQR{rn38)w1We?)vS#=iKw1 zweBCdch=fWvv*hT?&|8QdY+m{B?U27>mNup!kW^%fCcLid0)e2rNn#BIBOc=h(^L_kv;qOb`UaO2ks<~U zGbmzNrOeY6{V{jS-ygGRhaB^m~o?$ku6^11WY?{w4M?&bF5+U+ac z?us`W$m^P~v;i~+pR1(8ARC2hE#FMb?EKOl6(~fr3ll&glF1l<`Ihtr1JsepoPrG_bQSKktUaKDosCqRfJ}u@s}}0a z(V`n#&(R`bo0Qle=)nv!A&8?MeIwM2a-dE5q&rmL{np4mQiuU86o>4H@VOsLhzREV zTW@a~9rAI2>Ww*HtN-R0$=|JWC&`*(oW^+aekV(?{mtuQ>?>pFo2b8ds1B22b>Aq| zf7RGGUzq0R6Y^WHCpseZH_--- zw6IU6Mot!a?1l)kCV~zf(@wF4Zz{re!m!S`*Wy@Vh+!uAW=&()FTOP1s*#suGQpI} z?QTj;r||pFDUmAE96ZLen2tJp{cY%M+xNq@1cYN%a{ZC-n-XXf)$W&tiD;6=!maOW z_j&3{C@MQElmv8{o5Uz~ep)-)*3wW)jMk@4sP5WB95a-96^M5*MyLl-7Rb;g#H_3a znch;CE_r<@YT)LRK716>i7#m!EbR@lNLht5a`u$2o5w|?4STE77dI#yjit)&xv}Wk zff$+YbEbk0&kcpt1VCbKSg^Lhj^>}O-*?Q6iGfMt19hRWb~?XmB-^|sAl1XU$WPz| z^dZTo-nn`aCCK%A$%gcD!Xf2}uO<8!Kgc8A3Nz3I+#)rmno#Hv+@VolrnTTZ^mQ6iaFQSyKMFBQ zX0(<)Ft@&H^qK1|EGe(h(wM%ZjM=y<`d$@XHGvRa_C3d4D#`jr>N5{H+vlIVKJ%8~ zr!UXbn4f}(d&Ui@Yn*=@R$$lE7;6!_VSLQ*B`@FOx~3zD{aQFq{r)226(jEZm(qj6 zmCoVLh38dQ6F`8{6NatV635Mn>Q>d*DKC~M3p)1;1;Hr z?=_X_Gh%=}?uv0xw@VNi2=zy&{rYw4cpk)#v?V82{Svzl^9!n`9>UpiA-sDsZB2+h zEwxr0_1PO?D6&`(A{1O0fXqVdrVYDLk30r({z0Y$F6)u0L7ffyWkC2Fr3>a!n4TM1 zAt2|+8wY${c=z>#eXydipa%*Z1}rJ5OGw~1GK~oSjVKSY7byhH$bM33DY(SYEiz28 zz%lVIk+S$XDaJZ%OEEtoR8s1AXDM7KLeGFJGUoVOny_gl@>z(h&|uyR4dEAY)k#YW zCY_M4dE0wV4RE$XxA}~Fh*uCVV)cB*DKN4DFCJF?&lMK`m|#kSG%ZxBz8&KfEspsB z4&&pqS08LuBj4X2Gb7j>a8BSf9gwr5F3-t)1iFx`2i!Lq?`WUsUO=aVf*5ueGg31?GwQ{a#kXS)Y`FE(X7yv7X<3|ygtqLw z7VQ2m+k4Li{v49O^v06LcE8!Pbz2A+7+PZ3k~aP}aGcJcNVLQ^OEYhszbG-S#_pr* zm$7M_KlnCx%3zF>q25zwm}PYRDdW?i7JWstj=K)p68BQ!5<}CXx%0$Vt3&$?qyGd3T_; zHM{QeD{b%SH1o7$>b~yn!Nw+;Q>k<7R#e+VTa+GGo7)%C7(_gB{27*=V!~fvjx{#s zw{8p=oNZQq4;X(M6d*L`Vsc(7b2R_y>vZeL?67v?H`q6695iSY=N5;X&6Mpk!8>8C z?@~=u{YKwbf1*>bGjuhh!~UMdhw8y+bLQ{m)WU@3&hpXnq4{p=w&tn(%-WFPlz-am zB1lBYqbDe!4}1#og^7l_g@3`{!byJLK)pBYF?im4zC7p-zYKdB)C@;2szs_z`bi`? zZ$7VMGHf#3u*oo}Cd)8xar}tyM*pVX;nqR>?#CHdrqDRw_&EXt8E-yoKHD@4D@PsY zgfNkgKJelA9F1ogxP{!|XlP*R#i+Bs>Qf-TXU;#Ar% z3p2ZpY+IpBwT!HhT%Ot1O2>F9<0|56ZhvHWlWHQvhqRADG;`{!^oZQ(N*WIfrPD|o zEx)R7v4&jdhhL65`wh-Bzlw3?1X)Gx;p~3~GKgq+&1YAjb-?Pw*h4ci^m6`8?4B)L z<{n2J>d@f($gQPCKUp8)1Gta5KpU6wqQ(n+j zkZo5NgLJ! z!HMySZHdkG(`Ljp95gA(`kBY9-up*`rpl%tch;TnoOyS2CiK{EfAHOOR9+_BFJ6Ac z`OQT0d9t3x>+gy9toVJjpY~Cg$MuHh=OX_(eLLl@nvTcAz3L1)7kU$Hu5QE!vr9~$ zNDt{`Y#YGS&No|;M4=6yak@R@t=BCTO(Xkco}Xsl{sw^`j< z1<#q5w=c-)&eVNvY;rm-cV(N;D!-{(?Z|G^uhrMa(wu4fVb?c;^4?0kapAD{@MbP! zfw|JZUb*Icq_{@@R|X@ermbJMc*pkq{9Yv^3M$Ina>TMs6aP|n)AJbWEAf|)zuYvA zpIT(=WLrO4-j+&q|NP0n}g1Y}2~sUV7}*vwc%_t|wU?qR->Vv2if5(6Yd! z8`r(+N`C#bGDFp#&K}W@zg5rS@xGd}8+BFNBh{h#BKxKD;Bn`c@MZg{+E?cDb^<&G z8k2yWpU3x%wdX6Yd;9lZBk!l)s|z-Ht=#or4*y*(Ssm?GyzksCz1lbUJn$aQe^$`h z>t-{@&|m*3XJzeD_r_;$pf0tT*}e0^Z|*}px5KOJ-@_kVDfaS!7ukJ18GF3Cje|G$ zh5DA*H%s~&xC7Y!8^RmqO|{_?J8UC7x9{6alFX28L{cY=Zj0tB0ZB+y^y9M3|D)g`vqPzQIw|KJj2`lHTRKyi^=e z{1W(%hLC_@g`54#@uS=gCulI5eOERG{qLfIYygtpEhpsjNH@4I&zr5<#A?%M|J`OLgZ`(Bi#0!)mb?;F)ZWPy%E83W#6l*31cgHRoJ`DkRm3Fz zTO9b0pUlF=#etWZ+1=fp$(@bK-pQQ#0}l@mGYcy-D=Q<=gVEX3&c)D!(axFtzXth# z#t}1hHg>XfaIv(vgZ>-W(8%7^g`bS<-;4g|^I!8c^|1WEZ?bd#?_~iCWd8Sr`2!OR z^Z$$ui1Pir%d2GRVQQl#W@&3`=M20N2_WzRP;QZf`|Le(r zOY$-QTfqNX(0^&`KX(Cj2_W$?|Bvbgko=|I!~wfOWGSYo27E*QZ4K}V04|#U{s!6@ z%vHS8mLL%NqqLZ?ng{qO3qA%%9er?DDeB4yTu4|8l^525O&}wqfvbg`^1xt0m{x;` zOhUg&MWBly%t3Q=#b#j`pekZfNMH;I-O!II*_HszH}h!&1uZMbN4Lkf$IE|SWtrTY z*N(jH{q5~eI-4)eSQ(f?AP^`Bl8P}DVAv7^=LZW$uR-i#5yB7x!4kn5;1NkVfMJC| zVPIYm1iB6d^{op9y#)kVkSD?DATT@_4-Otv7X(HRFbqHq03mQA^ssQpuR{<5K*%sI zAXuRuVNlqQKv-O0JOjL37(f&i5JshF0mcLMfrtT72SC^X`r{2S9v<8t2q7RK7=#=Q zgUAGo2TTS2|GQHm&F6KvInsW3zFo7tJ^7QIl_d|H2AB07Ft5)Y3-L#{7==u3;nvnx zmxn7$UgsU;XP~Fc$qG-#PmTp$(a^WJ#YO{B%8{6qB`*8ZYE3rUWlDLFKOUQ3)Jjz- z+wONVN_85o)Cwd}+P1%bDzTW#$DqWY7z{Fu=xKR8SOs|#^L0a0+^?ex*j@$!CobyvRW z=+~)>?a}?}?w1Rv_78PN??^n>!B)#njQn@&!8c>Q-^TOEHGz$7frRsPSA6cy7I-{j z8yOj?ONHOL8tcxUtHd=4dY&Pj-<#9-@wgd$`!i<8R54#N zj^yg7enRDZW8l}G+L#x(4}CJ=bfq<^SUy97&1|gZGcnvON~PC7{`lFoNMoM$)a z0eNjDNKVfh@nr-WN}acicK!HWYrG%L+$H5GtEu7te7!JZ+x$nOdDV-4u0lJhOtV@+ zy-cmP6UV;gFWho;tx}$d=4$eU{a4ee^UXoq>fvB`wCOJ2M;m*Y^Rjo6Wq{R9=81-1 zw0`7BJ?(z=^SYkXEHxgCEwzO1H1@I-N`d>|I$rHfT}?^8FDeO@oztk&U38AzRCkqqK*5+gJe>#_3sxgE)UaY6y*4vvc#p--{IGhEnF1Z=|JDdTY4~cD> zTle`-!kfAuyJgH8nzcsaRx`yY!~XJ~ugq*PSff>X?G}I)HW&>cJ?v!ITb!v!6mIK{$HdIEMe%+{gRH(RP|d3W~LWosxQdg19oc${R&Uowq1{JMKnQSjM>xfF*{ zM{J{K+dTp1bAiN{{6HA^2R+xPgUxGlnM7DlyA_K@`?Xc05Lp9N3&U{N4yw zkr1$_;~l7nFaO-_r;)~L>SM~|vNx&b!iD47%R<3D)-h~$ZYjL>t`#uK`4B`b20#99 z264UqgoE)l#d2vz9Cj(K6mS!TbCi8VK|n%pROXtW!T6>6=09N z`PbR97ftZV;CyN;Bw6+bv!4f^QVZg|JKo4`<11oJ{|onIL!_$n@G*~z^lFWF= zbsCMY9{N99`&U^UsHn?zTb&ST(Zj8x>rX;97QZXzWKaHfa-lywtnNk~U@Oi~s^vr` zavVzJLeS?TFlBrIH1geuPstn!!NG$+nq0?|#5`7oco{~k7G;)fDue~Dx(#w)>Sw=wZA6N1NHPtG6i!O9TsZ|O zp*c)A-pG%)r{BF#J5!yUoMuO5Vt1vUNR}1;6n7y8cN%q0qISqw*|&>VT=TW`1}-=e{=%<(meB8t#& zEl8rXs>(}bPIME4R!so6R;30XyHf%OGErcpiFD8F^IY(cTH^gsTz#ccQ5G-Q{y_OB zq6YEIKNM;9p-9*b%^{*pWzKoPsuyP(&Qdh>Bk7R%QY9gouhU5XP6o$K3rUER%6p?$zgkcbXuXpu{EGRf&6V8K zw~*GUOTT?(auz;q4|81&(%^M%H3uUT69)wLQWJTcs2D@71`7<=lNIe>IxAVrjn?14 zh8y@GI$Sv{7wOBc19=R!KyDE>mnsv|42fqLm3(?hDu$MbnCa}yEs_4$cN@a^H<*$5 zeZc-prlqCPjncOdesnt$>cPflM9@>n^?QD3Vw>4sxOntjX>nw?n9O|=;C%6-K<+zk zUbB0xwYHc@=ZOAIDo&1skKPg#klB-*^evsNmaM+Mz7$A=2plg>dIh%A_&n>p5T}6n zS0l*u@SX+Cd`>74M?&mik7X}##ReC-G=?axj^q9-or40brz`|jhHUf~e(8gbJ7dBW zN+pm*a^kM|MlL6>pJskA4)bb)?oTTV^`JpI+;ivKYmEmVrc9O&5w2r|bv3x`R!Zv1 z>i%lAyV<5Ngb3wAAwa6psJF+{=O%1)W6ohUoBOBTy?q3qI^IonOEowVG0L#4>*413 zP_?`S4weZW?}Jf@%&nN@eWmtZO{m*X=(ya*Y$0vC+i`w6hqaX$DGY=TLamrhq2MhE zI2X4R`}qod-`D5cDkllVknv>4@Wm8u+scG5yfNfNu>xqsylR!<^qN)3gQCw1qe|m= z+$BhnFp_)9v4qsCn3s%G&kD@GAY+>phQS!7>kQ^&4#gHNp zfz{OI(%B<{E>~HNLNdXY5XH!1)g`vzc2`TJb#p=ky9;laV zU@Il@ybm2=8M+YuijmH0*bBR%noOWP6d!|=JM?3k@NJ*-oOUy!Tyen zH9`AP$qt0!aqoR9+^gNZ56DJe8m0Mhm~^G|+FTIR8JFTPz=+ROr0eYBsLzfpxL+&` zSb<(kuDbUZ+xtL976=yaJEw&DAEi57ZVtwMe|dh)K%rwe(E@f@(=+YwJ5wzQcCY7T z8?&c{lZUxHQTWaG0_<#Xm8w`@G0a}cqnu6~MiCv|9st+%CHCYUQeTZ>AKZpPbrr9A zi-X~#QnZgGI1q}UR;Ct-O2W6dbd^Xc%U7iAQaNc4-rQwh`Qg6mIq2&3Q?~+0XhQ!w zP7Weqd7QNFsOeO)K zbIHB=5dlwB2uoBLP>bO}P88S56kCbvfcfhFg9d6q0JbGd2l9eo06W;J-G1Rfe!MwWJtq9t z=4m`jQ@|F8K53VovA1PXVfeermT<0Ab3JGDyQbaHYgY1GV33i*LTgDRs>_^d{x5_OV#%p z#zilIg?*x8aoUnfLA{JwI4w@9n$YU&p*>Ppf=3}pW`|V+K}w-4W@C6MsLs3tYV0{` zS+4*!^7@KEjOGT=A@l!ekmIbkHDBf)2Xk@|_C*rYm7=gd*kPBtDCc{N;SM*F$)JQY zQKgN&qry(FN^<#78ljLN6B9dhtW>(!lB~iDN2@pW=%4*;U!S$OTXB7Ied1p2-nqu% zymM54TR-nLZ(e!%=d^vbF{t01O8|(N>Z_9YY!hhS{K{Zh!y7 z++I?2bO^ab%p^e{oB4RdKj9juZ5hTAey^(fYw(H{=V3P6 zrlzYa=jrJw(_PhZAwx$)qqOt`1lvnB*=+y$pBqh?W76;Vw$x->-tcy&2Y4YZZQfF& zHNAGG_epDiGqKD^ya1u!u>TNwz1c4njmJ67&&r!WzofVs5@^x?GoS*%Z_sJ8Tg^sv zy*yYK5hDvhZ6E+JE)b8#p)Cipit_o?+`3#4N(DBYr7;k1EeB(Xw>g_7z7WV{IKAx& zhsIMvPzX5-0UM&1O=bRpgiS|t+{<30gO|>3DdLn?BmYv)Xt!Z+(cO(`ZrOQDG$i{m4?TDdb1bJusEa#oDgY`eq}5zDH-C$(ReG`?e}bP zu{A7X(czQM)PBVJpLsGsfG!1`wo5eS?GFd#jZ`!#Z{FA%{DGN$7w)1NEB}p!loD4z zNazGnE{j*)8YQ@r-n~+9okFktt^0aUVC#FtGZ3r_LJSd)iY%VZvr7Ggh7k}ZX4_n? zx5cO5;OYv!#bNj_g_BKIe&R|O@NKK(U1gBU;&oM73bi$8WO=$-ws!%5KV2G;^Vo+5 z+hxxGo>^U&8KAq717LPy)LAZx(@Zun<)Oj`nNB0L4UU@{ZXKjYpjiiRN%Q)aW4a#IUbN)c+C=tI6EJuLZ2ai=E!?jLW(N;xc%!YJgc< z04GAmEEo;Rv5r2O&iDY z7jIGJwNrY?0whC96AK881^GuY0yLApc8JZl#4oDKQVCdae;W57{u}*~{hvM+Oro8A z$cJ@VV3NAr($I<(ix7#*WI>p99_I<)f-0#e!T?l;b^&YOE;Rl_;N|#7#lxdnRYm?3 zfSb&4u%8hD|lBEs`2IXTsp^F;F0LuJZ1 z2p*xKp-Y?9ia7!aUoiyMB!B}=8JVbdgWk!8Df2${1OG z5Bp2`bc!@v(r+*k_Au`@qM1vy>&@DBD6o=QaWUq$LRb)BW;Dx?+C*fmz)$_n~qAC%$2P-}zQUH;KMd+VG!;?36_U3VvKVmp3F7pC7G-)) zamN}L^fS`=FRHWJQ{rV?vOc;e!dfO&R`KrF^r6a%rNlmkBq$gg7EnMX$(k%@!u$Z1 zw5Sqqs4|$y(*I(Z+Ims)$B?uk`dM}7O?tIO2kRO%js=ZpE1u?x&}WPcEO?2u@$;XF zd+271r}i@QUM%o!v-g}b4#;!;QB$zIqd|p*LnYd?)(@PBbij;Gaz-A`-Z1Xti*4L3 z|9942Ox&Jg@dN*XQv&)y67Pz^WhT?G&N$o#?!`q5wME#i$e^pv zoSglc@2PqQ{eq7Ac!mByWAHc2`%E3qh{XHbaZU~~*S{fl4GwnRu9koDp*YUW^4an~ z37!TlT56_P{^K71-211YD5mZwrxbjFIF>*l;!}=$-2up^@e^sFCIu*Zl$Ns>O3a+` z-9=Me=DTKv)`wchu;$4&J~*RgPVH;Di~@kZsQR_ukEJNb*O{2Kpr=ra0k_{jSFTBo zTK-pB`dA>veAa0jeVegi>C2adzyE3rQS?>0iHVq>EA?v(z>X$VpFPPeiG~TGFyGC` zzWsglOGG2R_86@ct{k$$0>?gVJF+vcZ5ja4pOb^UysO{nqL%#!A{Nyh$-9b&?9uwk zBK+0|uAKM##C~^wyB>3z_uHc=Y}<`!kwuL9BQUz)!z22fC-_rwC{`PC0{AQw1+E^Q zflA8nwUz+>m`WA|$=HW2@A#oy0)8)-o<9K_b@J-~13FYvz1c>&DkB8I?hB+0Y*Anzk0CW*bjMM z&vi~6|C+H{Jp!@l>Q@NM(;%g)<2qJMCjbMf`Sm(7*dR|@Q`VEY!V>wDrK;5S0F%yh z`6n!j6q&XYdYj}&U7UD>c?>^{3IR$g7C)bd;QKvZUmmN8QHJwy(Zf{EOi!Tq6DPOs zKw8Ehd#_n0_JofEUficiNPfEcH2o4rXooPWes~zjQn;UQ*cWEX*HWfYd2oJ@V<|K6 zX^{fjPR^#?ko+zb3auaVn|ak`tu86YAyGWK@$EkP~J#U=3PaN0)-o1wz;3$ z&1(8|NhzIhtD=VFWma7|*EwEfP+z+PBpM&jA%ylLEWnC?o1*(UE6_Wq_s|8rc(?9V zZ}scpIijY-niQi>!80!UVe6i(*D`>kp{$0($YFyOUJ6{om@O+R%0nU5ELn%t= z>R@j4Q@z=jxb#h1y4U_Rrq7CniV?t)EMA;>Yf9AtaL|Df!9LMI?PwtB(X8;5 z`s{r0J)xkbRHw?`WFAa5`aO{@I$TbV$}dxmOtcb2Iq2Oa;pzVOoEwTG-<5x*96rR5 zX`pb@;}ONZUaDk9j@TQI-~8MPgv3L~h#DdIdWOWrJ|~K+&co80nn^--i+IgWuWKQE z;Eb()YIQ0)ysMiRKoAwO$nk%<@7WTuT}(uA=Z{C5L|m5_uY>59oHR zsnA;7_%T2=V|T>K-hgpri#7xD*kb1uxq2(sq$kSo0gz9aV9RO*BPYbA1 zV#ey>F#tH^P9xBRRXJr~&pC1lV4|cp?(ihGp_gC?dKe4?#2g_aTF>x6QZScIdsZb8@MB@U-9$vHy=QB-e*@hP9b zp|}yL2h%{wHC(KQ~^A|z%jbV_IH>e1e?MHxMO14&*uLtGd6t3ZuI$ zsz1Wda-d#=bC&o)KcaMjS`wp|r+XalgEfv;*7bVAhyvCmJ~y$tXi&(Hsu!A>483+Y zN;@_&C_u4&)8bMpt_^)ZL@t3EFVYbnXu_HR)2y>csVjpSz(OG{cGO%!tyO0ty)m^5 zfXb4Rk_fkx6-#mYSndr30RLfUIsU|tj1<+*8y;<~JVQ~~1CH08V^qi-;BBxpF^SeG zY9Ab)AFlsX{s!i)@g(>+1giv~l>4a#5_B777_{~dG8GOh_2y{9QIgVikUD^VQY(^4=}!W;LQ0ei;Qp0gxxLhl zt_vfAenVTOLA~o{-TCTJ12I4`A!upBJ@OEAIIc(RN(h)7Xp#F2Aw%qdCAKV9TVNyL z0kg*YD{6-BkOU~{m!EjKP)`KVLU_*_9FPH6husam&KrmX(2}@|$A?{^02w;ef1aX4 zXCVU_vh;?JLD#9k2*DZ8Q5t~(7(fd{zyuD=g(!r#a-`XS1RDb!+L$v^HiVY{e@t!t b6|_M)(Bfuz8VvmK1tcx5AXX(}5cGclRFum_ diff --git a/cmdb-ui/src/pages/util/admin.js b/cmdb-ui/src/pages/util/admin.js deleted file mode 100755 index ab150e627..000000000 --- a/cmdb-ui/src/pages/util/admin.js +++ /dev/null @@ -1,235 +0,0 @@ -const getCiTypeEnabledAction = (name, actions) => { - if (!actions) { - return false - } else { - if (actions.enabledActions) { - return !!actions.enabledActions.find(_ => _ === name) - } - } -} - -const getCiTypeAttribute = (ciTypeAttributeId, attributePermissions) => { - if (!attributePermissions) { - return [] - } else { - const ciTypeAttribute = attributePermissions.find(_ => _.ciTypeAttributeId === ciTypeAttributeId) - return ciTypeAttribute ? ciTypeAttribute.enabledOptions : [] - } -} - -export const formatDataPermissionTree = ( - checkable, - data, - setPermissionAction, - setCITypeAttrsAttr, - selectedPermission = [] -) => { - const tagsDefaultStyle = { border: '#515a61 1px dashed' } - const tagsDefaultProps = { - checkable: checkable || false, - color: 'success' - } - return data.ciPermissionEntryPoints.map(_ => { - const ciType = selectedPermission.find(c => _.ciTypeId === c.ciTypeId) - return { - title: _.ciTypeName, - id: _.ciTypeId, - expand: true, - render: (h, { root, node, data }) => { - return h( - 'div', - { - style: { - display: 'inline-block', - width: '100%' - } - }, - [ - h('span', data.title), - h( - 'div', - { - style: { - display: 'inline-block', - float: 'right', - marginRight: '32px' - } - }, - [ - h( - 'Tag', - { - props: { - name: 'CREATE', - ...tagsDefaultProps, - checked: getCiTypeEnabledAction('CREATE', ciType) - }, - style: tagsDefaultStyle, - on: { - 'on-change': (checked, name) => { - setPermissionAction(checked, name, data.id) - } - } - }, - this.$t('permission_management_data_creation') - ), - h( - 'Tag', - { - props: { - name: 'REMOVE', - ...tagsDefaultProps, - checked: getCiTypeEnabledAction('REMOVE', ciType) - }, - style: tagsDefaultStyle, - on: { - 'on-change': (checked, name) => { - setPermissionAction(checked, name, data.id) - } - } - }, - this.$t('permission_management_data_removal') - ), - h( - 'Tag', - { - props: { - name: 'MODIFY', - ...tagsDefaultProps, - checked: getCiTypeEnabledAction('MODIFY', ciType) - }, - style: tagsDefaultStyle, - on: { - 'on-change': (checked, name) => { - setPermissionAction(checked, name, data.id) - } - } - }, - this.$t('permission_management_data_modification') - ), - h( - 'Tag', - { - props: { - name: 'QUERY', - ...tagsDefaultProps, - checked: getCiTypeEnabledAction('QUERY', ciType) - }, - style: tagsDefaultStyle, - on: { - 'on-change': (checked, name) => { - setPermissionAction(checked, name, data.id) - } - } - }, - this.$t('permission_management_data_enquiry') - ), - h( - 'Tag', - { - props: { - name: 'PERFORM', - ...tagsDefaultProps, - checked: getCiTypeEnabledAction('PERFORM', ciType) - }, - style: tagsDefaultStyle, - on: { - 'on-change': (checked, name) => { - setPermissionAction(checked, name, data.id) - } - } - }, - this.$t('permission_management_data_execution') - ), - h( - 'Tag', - { - props: { - name: 'GRANT', - ...tagsDefaultProps, - checked: getCiTypeEnabledAction('GRANT', ciType) - }, - style: tagsDefaultStyle, - on: { - 'on-change': (checked, name) => { - setPermissionAction(checked, name, data.id) - } - } - }, - this.$t('permission_management_data_empower') - ) - ] - ) - ] - ) - }, - children: _.attributeAuthenticationEntryPoints - ? _.attributeAuthenticationEntryPoints.map(j => { - return { - title: j.ciTypeAttributeName, - id: j.ciTypeAttributeId, - expand: true, - render: (h, { root, node, data }) => { - return h( - 'div', - { - style: { - display: 'inline-block', - width: '100%' - } - }, - [ - h('span', data.title), - h( - 'div', - { - style: { - display: 'inline-block', - float: 'right', - marginRight: '35px', - maxWidth: '200px' - } - }, - [ - h( - 'Select', - { - props: { - disabled: !checkable, - multiple: true, - size: 'small', - value: ciType ? getCiTypeAttribute(data.id, ciType.attributePermissions) : [] - }, - style: { - overflow: 'hidden' - }, - on: { - 'on-change': value => { - setCITypeAttrsAttr(value, j.ciTypeAttributeId) - } - } - }, - j.options.map(o => { - return h( - 'Option', - { - props: { - key: o.key, - value: o.key - } - }, - o.value - ) - }) - ) - ] - ) - ] - ) - } - } - }) - : [] - } - }) -} From 8bbb27923397f0b7393e5dc89c2281c4f891db18 Mon Sep 17 00:00:00 2001 From: homiexie <624128114@qq.com> Date: Thu, 16 Jan 2020 11:20:47 +0800 Subject: [PATCH 13/16] #646 removed unused code --- cmdb-ui/src/api/server.js | 102 ++++++-------------------- cmdb-ui/src/pages/components/table.js | 6 +- cmdb-ui/src/router.js | 8 +- 3 files changed, 31 insertions(+), 85 deletions(-) diff --git a/cmdb-ui/src/api/server.js b/cmdb-ui/src/api/server.js index 794c17f11..8c8b809e2 100755 --- a/cmdb-ui/src/api/server.js +++ b/cmdb-ui/src/api/server.js @@ -9,14 +9,11 @@ if (window.request) { put: (url, ...params) => pluginErrorMessage(window.request.put(baseURL + url, ...params)) } } - export const getMyMenus = () => req.get('/my-menus') - // admin export const getAllUsers = () => req.get('/admin/users') export const getAllRoles = () => req.get('/admin/roles') export const getAllMenus = () => req.get('/admin/menus') -export const getAllPermissionEntryPoints = () => req.get('/admin/permission-entry-points') export const getRolesByUser = username => req.get(`/admin/users/${username}/roles`) export const getUsersByRole = roleName => req.get(`/admin/roles/${roleName}/users`) export const getPermissionsByRole = roleName => req.get(`/admin/roles/${roleName}/permissions`) @@ -26,15 +23,12 @@ export const addUser = data => req.post(`/admin/users/create`, data) export const addUsersToRole = (users, roleName) => req.post(`/admin/roles/${roleName}/users`, users) export const romoveUsersFromRole = (users, roleName) => req.delete(`/admin/roles/${roleName}/users`, { data: users }) export const addMenusToRole = (menuCodes, roleName) => req.post(`/admin/roles/${roleName}/menu-permissions`, menuCodes) -export const removeMenusFromRole = (menuCodes, roleName) => req.delete(`/admin/roles/${roleName}/menu-permissions`, {data: menuCodes}) +export const removeMenusFromRole = (menuCodes, roleName) => + req.delete(`/admin/roles/${roleName}/menu-permissions`, { data: menuCodes }) export const addDataPermissionAction = (roleName, ciTypeId, actionCode) => - req.post( - `/admin/roles/${roleName}/citypes/${ciTypeId}/actions/${actionCode}` - ) + req.post(`/admin/roles/${roleName}/citypes/${ciTypeId}/actions/${actionCode}`) export const removeDataPermissionAction = (roleName, ciTypeId, actionCode) => - req.delete( - `/admin/roles/${roleName}/citypes/${ciTypeId}/actions/${actionCode}` - ) + req.delete(`/admin/roles/${roleName}/citypes/${ciTypeId}/actions/${actionCode}`) export const getRoleCiTypeCtrlAttributesByRoleCiTypeId = roleCitypeId => req.get(`/admin/role-citypes/${roleCitypeId}/ctrl-attributes`) export const createRoleCiTypeCtrlAttributes = (roleCitypeId, data) => @@ -45,43 +39,35 @@ export const deleteRoleCiTypeCtrlAttributes = (roleCitypeId, data) => req.post(`/admin/role-citypes/${roleCitypeId}/ctrl-attributes/delete`, data) export const editPassword = data => req.post('/admin/users/password/change', data) export const resetPassword = data => req.post('/admin/users/password/reset', data) - // enum export const getEnumCodesByCategoryId = (catTypeId, catId) => req.get(`/enum/category-types/${catTypeId}/categories/${catId}/codes`) - export const getEnumCategoriesByTypeId = catTypeId => req.get(`/enum/category-types/${catTypeId}/categories`) - // CI -export const updateCIRecord = (ciTypeId, data) => req.put(`/ci-types/${ciTypeId}/ci-data/${data.guid}`, data) export const getRefCiTypeFrom = id => req.get(`/ci-types/${id}/references/by`) export const getRefCiTypeTo = id => req.get(`/ci-types/${id}/references/to`) export const getCiTypeAttr = id => req.get(`/ci-types/${id}/attributes`) export const getSpecialConnector = () => req.get('/static-data/special-connector') - // CI design - export const implementCiType = (id, op) => req.post(`/ci-types/${id}/implement?operation=${op}`) -export const implementCiAttr = (ciTypeId, ciAttrId, op) => req.post(`/ci-types/${ciTypeId}/attributes/${ciAttrId}/implement?operation=${op}`) +export const implementCiAttr = (ciTypeId, ciAttrId, op) => + req.post(`/ci-types/${ciTypeId}/attributes/${ciAttrId}/implement?operation=${op}`) export const getAllCITypes = () => req.get('/ci-types') export const getAllEnumCategoryTypes = () => req.get('/enum/category-types') export const getAllEnumCategories = () => req.get('/enum/category-types/categories') export const createEnumCategory = data => req.post(`/enum/category-types/${data.catTypeId}/categories/create`, data) -export const updateEnumCategory = data => req.put(`/enum/category-types/${data.catTypeId}/categories/${data.catId}`, data) +export const updateEnumCategory = data => + req.put(`/enum/category-types/${data.catTypeId}/categories/${data.catId}`, data) export const getAllCITypesByLayerWithAttr = data => { const status = data.toString() - return req.get( - `/ci-types?group-by=layer&with-attributes=yes&status=${status}` - ) + return req.get(`/ci-types?group-by=layer&with-attributes=yes&status=${status}`) } export const getAllLayers = () => req.get('/ci-type-layers') export const createLayer = data => req.post('/ci-type-layers/create', data) export const deleteLayer = id => req.delete(`/ci-type-layers/${id}`) export const updateLayer = data => req.post(`/enum/codes/update`, data) export const swapLayerPosition = (layerId, targetLayerId) => - req.post( - `/ci-type-layers/${layerId}/swap-position?target-layer-id=${targetLayerId}` - ) + req.post(`/ci-type-layers/${layerId}/swap-position?target-layer-id=${targetLayerId}`) export const deleteCITypeByID = id => req.delete(`/ci-types/${id}`) export const deleteAttr = (ciTypeId, attrId) => req.delete(`/ci-types/${ciTypeId}/attributes/${attrId}`) export const applyCiTypes = id => req.post(`/ci-types/${id}/apply`) @@ -90,18 +76,12 @@ export const createNewCIType = data => req.post(`/ci-types/create`, data) export const createNewCIAttr = (id, data) => req.post(`/ci-types/${id}/attributes/create`, data) export const updateCIAttr = (attrId, ciTypeId, data) => req.put(`/ci-types/${ciTypeId}/attributes/${attrId}`, data) export const applyCIAttr = (ciTypeId, attrIds) => req.post(`/ci-types/${ciTypeId}/ci-type-attributes/apply`, attrIds) - export const swapCiTypeAttributePosition = (ciTypeId, attrId, targetAttrId) => { - return req.post( - `/ci-types/${ciTypeId}/attributes/${attrId}/swap-position?target-attribute-id=${targetAttrId}` - ) + return req.post(`/ci-types/${ciTypeId}/attributes/${attrId}/swap-position?target-attribute-id=${targetAttrId}`) } export const getAllInputTypes = () => req.get('/static-data/available-ci-type-attribute-input-types') export const getEnumByCIType = id => - req.get( - `/enum/category-types/categories/query-by-multiple-types?ci-type-id=${id}&types=common-private` - ) -export const getCiTypes = data => req.get(`/ci-types?${data.key}=${data.value}`) + req.get(`/enum/category-types/categories/query-by-multiple-types?ci-type-id=${id}&types=common-private`) export const getAllIdcDesignData = () => req.get(`/ci-data/all-idc-design`) export const getIdcDesignTreeByGuid = data => req.post(`/data-tree/query-idc-design-tree`, data) export const getAllZoneLinkDesignGroupByIdcDesign = () => req.get(`/all-zone-link-design`) @@ -110,92 +90,59 @@ export const getIdcImplementTreeByGuid = data => req.post(`/data-tree/query-idc- export const getPlanningDesignTabs = () => req.get('/planning-designs/tabs') export const getResourcePlanningTabs = () => req.get('/resource-planning/tabs') export const getPlanningDesignsCiData = data => - req.post( - `/planning-designs/ci-data?code-id=${data.id}&idcs-guid=${data.idcGuid}`, - data.queryObject - ) + req.post(`/planning-designs/ci-data?code-id=${data.id}&idcs-guid=${data.idcGuid}`, data.queryObject) export const getResourcePlanningCiData = data => - req.post( - `/resource-planning/ci-data?code-id=${data.id}&idcs-guid=${data.idcGuid}`, - data.queryObject - ) + req.post(`/resource-planning/ci-data?code-id=${data.id}&idcs-guid=${data.idcGuid}`, data.queryObject) export const getAllZoneLinkGroupByIdc = () => req.get(`/all-zone-link`) export const getSystemDesigns = () => req.get('/system-designs') export const getSystems = () => req.get('/system') export const getAllDesignTreeFromSystemDesign = id => - req.get( - `/trees/all-design-trees/from-system-design?system-design-guid=${id}` - ) + req.get(`/trees/all-design-trees/from-system-design?system-design-guid=${id}`) export const saveAllDesignTreeFromSystemDesign = id => - req.post( - `/trees/all-design-trees/from-system-design/save?system-design-guid=${id}` - ) + req.post(`/trees/all-design-trees/from-system-design/save?system-design-guid=${id}`) export const getArchitectureDesignTabs = () => req.get('/architecture-designs/tabs') export const getArchitectureCiDatas = (tabId, sysId, payload) => - req.post( - `/architecture-designs/tabs/ci-data?code-id=${tabId}&system-design-guid=${sysId}`, - payload - ) -export const getApplicationFrameworkDesignDataTree = guid => req.get(`/data-tree/application-framework-design?system-design-guid=${guid}`) + req.post(`/architecture-designs/tabs/ci-data?code-id=${tabId}&system-design-guid=${sysId}`, payload) +export const getApplicationFrameworkDesignDataTree = guid => + req.get(`/data-tree/application-framework-design?system-design-guid=${guid}`) export const getDeployCiData = (data, payload) => - req.post( - `/deploy-designs/tabs/ci-data?code-id=${data.codeId}&system-guid=${data.systemGuid}`, - payload - ) + req.post(`/deploy-designs/tabs/ci-data?code-id=${data.codeId}&system-guid=${data.systemGuid}`, payload) export const getDeployDesignTabs = () => req.get(`/deploy-designs/tabs`) -export const previewDeployGraph = data => req.post(`/process/definitions/preview`, data) export const getAllDeployTreesFromSystemCi = guid => req.get(`/trees/all-deploy-trees/from-system?system-guid=${guid}`) export const startProcessInstancesWithCiDataInbatch = data => req.post(`/process/inbatch/instances`, data) export const getApplicationDeploymentDataTree = guid => req.get(`/data-tree/application-deployment?system-guid=${guid}`) -export const queryEnumCategories = data => req.post(`/enum/categories/query`, data) -export const queryEnumCodes = (catTypeId, catId, data) => - req.post( - `/enum/category-types/${catTypeId}/categories/${catId}/codes/query`, - data - ) export const getTableStatus = () => req.get('/static-data/available-ci-type-table-status') - // basic data page export const getAllSystemEnumCodes = data => req.post(`/enum/system/codes`, data) export const getSystemCategories = () => req.get(`/enum/system-categories`) - export const getAllNonSystemEnumCodes = data => req.post(`/enum/non-system/codes`, data) export const getNonSystemCategories = () => req.get(`/enum/non-system-categories`) - export const getEffectiveStatus = () => req.get(`/static-data/effective-status`) export const createEnumCode = data => { - return req.post( - `/enum/category-types/0/categories/${data.catId}/codes/create`, - data - ) + return req.post(`/enum/category-types/0/categories/${data.catId}/codes/create`, data) } export const updateEnumCode = data => req.post(`/enum/codes/update`, data) export const getGroupListByCodeId = id => req.get(`/enum/categories/${id}/group-list`) export const deleteEnumCodes = data => req.post(`/enum/codes/delete`, data) export const queryCiData = data => req.post(`/ci-types/${data.id}/ci-data/query`, data.queryObject) export const queryCiDataByType = data => { - return req.post( - `/ci-types/${data.id}/ci-data/query-by-type`, - data.queryObject - ) + return req.post(`/ci-types/${data.id}/ci-data/query-by-type`, data.queryObject) } export const getCiTypeAttributes = id => req.get(`/ci-types/${id}/attributes`) export const deleteCiDatas = data => req.post(`/ci-types/${data.id}/ci-data/batch-delete`, data.deleteData) export const createCiDatas = data => req.post(`/ci-types/${data.id}/ci-data/batch-create`, data.createData) export const updateCiDatas = data => req.post(`/ci-types/${data.id}/ci-data/batch-update`, data.updateData) - export const operateCiState = (ciTypeId, guid, op) => { const payload = [{ ciTypeId, guid }] return req.post(`/ci/state/operate?operation=${op}`, payload) } - // ci integrate query export const getQueryNames = id => req.get(`/intQuery/ciType/${id}/search`) export const queryIntHeader = id => req.get(`/intQuery/${id}/header`) export const excuteIntQuery = (id, data) => req.post(`/intQuery/${id}/execute`, data) - export const fetchIntQueryById = (ciTypeId, queryId) => req.get(`/intQuery/ciType/${ciTypeId}/${queryId}`) -export const saveIntQuery = (ciTypeId, queryName, data) => req.post(`/intQuery/ciType/${ciTypeId}/${queryName}/save`, data) +export const saveIntQuery = (ciTypeId, queryName, data) => + req.post(`/intQuery/ciType/${ciTypeId}/${queryName}/save`, data) export const updateIntQuery = (queryId, data) => req.post(`/intQuery/${queryId}/update`, data) export const deleteIntQuery = (ciTypeId, queryId) => req.post(`/intQuery/ciType/${ciTypeId}/${queryId}/delete`) // filterRules @@ -204,6 +151,5 @@ export const queryReferenceCiData = data => req.post(`/referenceCiData/${data.at // log export const queryLogHeader = () => req.get('/log/queryHeader') export const queryLog = data => req.post('/log/query', data) - // wecube api export const getWecubeRoles = () => window.request.get('platform/v1/roles/retrieve') diff --git a/cmdb-ui/src/pages/components/table.js b/cmdb-ui/src/pages/components/table.js index 93532e5b3..afe93c97f 100755 --- a/cmdb-ui/src/pages/components/table.js +++ b/cmdb-ui/src/pages/components/table.js @@ -90,9 +90,9 @@ export default { // } // }) // }) - this.$nextTick(() => { - this.setCheckoutStatus(disable) - }) + // this.$nextTick(() => { + this.setCheckoutStatus(disable) + // }) }, setCheckoutStatus (disable) { let objData = this.$refs.table.$refs.tbody.objData diff --git a/cmdb-ui/src/router.js b/cmdb-ui/src/router.js index fdf0e583c..f9d97e374 100755 --- a/cmdb-ui/src/router.js +++ b/cmdb-ui/src/router.js @@ -11,28 +11,28 @@ export default new Router({ component: () => import('@/pages/index'), children: [ { - path: 'homepage', + path: '/homepage', name: 'homepage', component: () => import('@/pages/home-page'), params: {}, props: true }, { - path: '404', + path: '/404', name: '404', component: () => import('@/pages/404'), params: {}, props: true }, { - path: 'coming-soon', + path: '/coming-soon', name: 'comingsoon', component: () => import('@/pages/coming-soon'), params: {}, props: true }, { - path: 'setting/change-password', + path: '/setting/change-password', name: 'changePassword', component: () => import('@/pages/change-password') }, From 9be600ed844848a2a9488e3a1916857604b5c868 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=A3=AE=E5=B3=B0?= <729346129@qq.com> Date: Thu, 16 Jan 2020 11:30:49 +0800 Subject: [PATCH 14/16] :art: :fire: #646 delete useless core --- cmdb-ui/src/pages/components/auto-fill.js | 50 +++++++++---------- cmdb-ui/src/pages/components/auto-fill.scss | 2 +- .../src/pages/designing/physical-graph.vue | 6 +-- 3 files changed, 26 insertions(+), 32 deletions(-) diff --git a/cmdb-ui/src/pages/components/auto-fill.js b/cmdb-ui/src/pages/components/auto-fill.js index bf58cac92..9f185deea 100644 --- a/cmdb-ui/src/pages/components/auto-fill.js +++ b/cmdb-ui/src/pages/components/auto-fill.js @@ -167,7 +167,7 @@ export default { type, value: JSON.stringify([{ ciTypeId: this.rootCiTypeId }]) }) - this.optionsDisplay = false + this.showRuleOptions(this.autoFillArray.length - 1 + '', '0') break case 'delimiter': this.autoFillArray.push({ @@ -300,7 +300,7 @@ export default { const isRef = _.inputType === 'ref' || _.inputType === 'multiRef' const ciTypeName = isRef ? this.ciTypesObj[_.referenceId].name : this.ciTypesObj[_.ciTypeId].name const attrName = this.ciTypeAttrsObj[_.ciTypeAttrId].name - const nodeName = isRef ? `->(${ciTypeName})${attrName}` : `->${attrName}` + const nodeName = isRef ? `->(${ciTypeName})${attrName}` : `.${attrName}` const nodeObj = { ciTypeId: isRef ? _.referenceId : _.ciTypeId, parentRs: { @@ -499,7 +499,8 @@ export default { ) }) } else { - const ref = _.parentRs.isReferedFromParent === 1 ? '->' : '<-' + const inputType = this.ciTypeAttrsObj[_.parentRs.attrId].inputType + const ref = _.parentRs.isReferedFromParent === 1 ? (inputType === 'ref' || inputType === 'multiRef') ? '->' : '.' : '<-' const attrName = this.ciTypeAttrsObj[_.parentRs.attrId].name const enumCode = _.enumCodeAttr ? `.${_.enumCodeAttr}` : '' if (this.ciTypeAttrsObj[_.parentRs.attrId].inputType === 'ref' || this.ciTypeAttrsObj[_.parentRs.attrId].inputType === 'multiRef') { @@ -557,8 +558,7 @@ export default { // type === delimiter 时,连接符 let result = null if (this.activeDelimiterIndex === i + '') { - this.activeDelimiterValue = val - result = this.confirmDelimiter(i)} on-on-enter={() => this.$refs.delimiterInput.blur()} onInput={v => this.onDelimiterInput(v)} value={val} /> + result = this.confirmDelimiter(i)} on-on-enter={() => this.$refs.delimiterInput.blur()} onInput={v => this.onDelimiterInput(v, i)} value={val} /> } else { result = [ , @@ -589,11 +589,10 @@ export default { }, // 连接符输入框失焦或按回车时,需要更新 this.autoFillArray confirmDelimiter (i) { - if (this.activeDelimiterValue === '') { + if (this.autoFillArray[i].value === '') { // 如果输入框没有值,则在 this.autoFillArray 中删掉该项 this.autoFillArray.splice(i, 1) } else { - this.autoFillArray[i].value = this.activeDelimiterValue // 将相邻两项 type === delimiter 合并为一项 if (this.autoFillArray[i + 1] && this.autoFillArray[i + 1].type === 'delimiter') { this.autoFillArray[i].value += this.autoFillArray[i + 1].value @@ -605,11 +604,10 @@ export default { } } this.activeDelimiterIndex = '' - this.activeDelimiterValue = '' this.handleInput() }, - onDelimiterInput (v) { - this.activeDelimiterValue = v + onDelimiterInput (v, i) { + this.autoFillArray[i].value = v }, renderAddRule () { return [, !this.autoFillArray.length && {this.$t('auto_fill_filter_placeholder')}] @@ -715,29 +713,27 @@ export default { this.filterIndex = [] }, handleInput () { - this.$nextTick(() => { - const value = this.autoFillArray.length ? JSON.stringify(this.autoFillArray) : '' - let isLegal = true - this.autoFillArray.forEach(_ => { - if (_.type === 'rule') { - const ruleArray = JSON.parse(_.value) - const lastNode = ruleArray[ruleArray.length - 1] - const lastAttrId = ruleArray[ruleArray.length - 1].parentRs ? ruleArray[ruleArray.length - 1].parentRs.attrId : 0 - if (lastNode.parentRs) { - if (this.ciTypeAttrsObj[lastAttrId].inputType === 'ref' || this.ciTypeAttrsObj[lastAttrId].inputType === 'multiRef') { + const value = this.autoFillArray.length ? JSON.stringify(this.autoFillArray) : '' + let isLegal = true + this.autoFillArray.forEach(_ => { + if (_.type === 'rule') { + const ruleArray = JSON.parse(_.value) + const lastNode = ruleArray[ruleArray.length - 1] + const lastAttrId = ruleArray[ruleArray.length - 1].parentRs ? ruleArray[ruleArray.length - 1].parentRs.attrId : 0 + if (lastNode.parentRs) { + if (this.ciTypeAttrsObj[lastAttrId].inputType === 'ref' || this.ciTypeAttrsObj[lastAttrId].inputType === 'multiRef') { + isLegal = false + } else if (this.ciTypeAttrsObj[lastAttrId].inputType === 'select' || this.ciTypeAttrsObj[lastAttrId].inputType === 'multiSelect') { + if (!lastNode.enumCodeAttr) { isLegal = false - } else if (this.ciTypeAttrsObj[lastAttrId].inputType === 'select' || this.ciTypeAttrsObj[lastAttrId].inputType === 'multiSelect') { - if (!lastNode.enumCodeAttr) { - isLegal = false - } } } } - }) - if (isLegal) { - this.$emit('input', value) } }) + if (isLegal) { + this.$emit('input', value) + } } }, mounted () { diff --git a/cmdb-ui/src/pages/components/auto-fill.scss b/cmdb-ui/src/pages/components/auto-fill.scss index 2c0bca039..49b96f1d3 100644 --- a/cmdb-ui/src/pages/components/auto-fill.scss +++ b/cmdb-ui/src/pages/components/auto-fill.scss @@ -3,7 +3,7 @@ word-break: break-all; &-span { - border-bottom: 1px solid #fff; + border-bottom: 1px solid transparent; &:hover { cursor: pointer; diff --git a/cmdb-ui/src/pages/designing/physical-graph.vue b/cmdb-ui/src/pages/designing/physical-graph.vue index 5ffd7e7a0..c451cf0f2 100755 --- a/cmdb-ui/src/pages/designing/physical-graph.vue +++ b/cmdb-ui/src/pages/designing/physical-graph.vue @@ -235,10 +235,8 @@ export default { } }, mounted () { - this.$nextTick(() => { - this.initEvent() - this.callback() - }) + this.initEvent() + this.callback() } } From 7e13d8e6e0b246ce458a8a6c9070d8a3b6a9ef65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=A3=AE=E5=B3=B0?= <729346129@qq.com> Date: Thu, 16 Jan 2020 11:38:39 +0800 Subject: [PATCH 15/16] :art: :fire: #646 delete useless core --- cmdb-ui/src/pages/components/auto-fill.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/cmdb-ui/src/pages/components/auto-fill.js b/cmdb-ui/src/pages/components/auto-fill.js index 9f185deea..772b99803 100644 --- a/cmdb-ui/src/pages/components/auto-fill.js +++ b/cmdb-ui/src/pages/components/auto-fill.js @@ -719,11 +719,12 @@ export default { if (_.type === 'rule') { const ruleArray = JSON.parse(_.value) const lastNode = ruleArray[ruleArray.length - 1] - const lastAttrId = ruleArray[ruleArray.length - 1].parentRs ? ruleArray[ruleArray.length - 1].parentRs.attrId : 0 + const lastAttrId = lastNode.parentRs ? lastNode.parentRs.attrId : 0 + const inputType = this.ciTypeAttrsObj[lastAttrId].inputType if (lastNode.parentRs) { - if (this.ciTypeAttrsObj[lastAttrId].inputType === 'ref' || this.ciTypeAttrsObj[lastAttrId].inputType === 'multiRef') { + if (inputType === 'ref' || inputType === 'multiRef') { isLegal = false - } else if (this.ciTypeAttrsObj[lastAttrId].inputType === 'select' || this.ciTypeAttrsObj[lastAttrId].inputType === 'multiSelect') { + } else if (inputType === 'select' || inputType === 'multiSelect') { if (!lastNode.enumCodeAttr) { isLegal = false } From 3e0466a2f929733ae869f8ac2ceb59ee61e0f789 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=A3=AE=E5=B3=B0?= <729346129@qq.com> Date: Thu, 16 Jan 2020 11:40:55 +0800 Subject: [PATCH 16/16] :art: :fire: #646 delete useless core --- cmdb-ui/src/pages/change-password.vue | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/cmdb-ui/src/pages/change-password.vue b/cmdb-ui/src/pages/change-password.vue index 0d0c7fc67..3358ed7c4 100644 --- a/cmdb-ui/src/pages/change-password.vue +++ b/cmdb-ui/src/pages/change-password.vue @@ -72,9 +72,7 @@ export default { this.$refs[name].resetFields() }, focusOnInput () { - this.$nextTick(() => { - this.$refs['oldPassword'].focus() - }) + this.$refs['oldPassword'].focus() } }, mounted () {