新增:影响域分析录入和修复editor问题
This commit is contained in:
420
cdTMP/package-lock.json
generated
420
cdTMP/package-lock.json
generated
@@ -32,7 +32,7 @@
|
||||
"vue": "^3.5.27",
|
||||
"vue-clipboard3": "^2.0.0",
|
||||
"vue-color-kit": "^1.0.6",
|
||||
"vue-data-ui": "^3.14.5",
|
||||
"vue-data-ui": "^3.14.7",
|
||||
"vue-router": "^5.0.2",
|
||||
"vuedraggable": "^2.24.3"
|
||||
},
|
||||
@@ -40,17 +40,17 @@
|
||||
"@tailwindcss/postcss": "^4.1.18",
|
||||
"@tailwindcss/vite": "^4.1.18",
|
||||
"@types/lodash-es": "^4.17.12",
|
||||
"@types/node": "^25.2.0",
|
||||
"@types/node": "^25.2.1",
|
||||
"@types/nprogress": "^0.2.3",
|
||||
"@types/qs": "^6.14.0",
|
||||
"@vitejs/plugin-vue": "^6.0.4",
|
||||
"@vitejs/plugin-vue-jsx": "^5.1.4",
|
||||
"@vue/babel-plugin-jsx": "^2.0.1",
|
||||
"browserslist": "^4.28.1",
|
||||
"eslint": "^9.39.2",
|
||||
"eslint": "^10.0.0",
|
||||
"eslint-plugin-vue": "^10.7.0",
|
||||
"less": "^4.5.1",
|
||||
"less-loader": "^12.3.0",
|
||||
"less-loader": "^12.3.1",
|
||||
"postcss": "^8.5.6",
|
||||
"prettier": "^3.8.1",
|
||||
"rollup-plugin-visualizer": "^6.0.5",
|
||||
@@ -968,9 +968,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@eslint-community/regexpp": {
|
||||
"version": "4.12.1",
|
||||
"resolved": "https://registry.npmmirror.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz",
|
||||
"integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==",
|
||||
"version": "4.12.2",
|
||||
"resolved": "https://registry.npmmirror.com/@eslint-community/regexpp/-/regexpp-4.12.2.tgz",
|
||||
"integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
@@ -978,118 +978,68 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@eslint/config-array": {
|
||||
"version": "0.21.1",
|
||||
"resolved": "https://registry.npmmirror.com/@eslint/config-array/-/config-array-0.21.1.tgz",
|
||||
"integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==",
|
||||
"version": "0.23.1",
|
||||
"resolved": "https://registry.npmmirror.com/@eslint/config-array/-/config-array-0.23.1.tgz",
|
||||
"integrity": "sha512-uVSdg/V4dfQmTjJzR0szNczjOH/J+FyUMMjYtr07xFRXR7EDf9i1qdxrD0VusZH9knj1/ecxzCQQxyic5NzAiA==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@eslint/object-schema": "^2.1.7",
|
||||
"@eslint/object-schema": "^3.0.1",
|
||||
"debug": "^4.3.1",
|
||||
"minimatch": "^3.1.2"
|
||||
"minimatch": "^10.1.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||
"node": "^20.19.0 || ^22.13.0 || >=24"
|
||||
}
|
||||
},
|
||||
"node_modules/@eslint/config-helpers": {
|
||||
"version": "0.4.2",
|
||||
"resolved": "https://registry.npmmirror.com/@eslint/config-helpers/-/config-helpers-0.4.2.tgz",
|
||||
"integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==",
|
||||
"version": "0.5.2",
|
||||
"resolved": "https://registry.npmmirror.com/@eslint/config-helpers/-/config-helpers-0.5.2.tgz",
|
||||
"integrity": "sha512-a5MxrdDXEvqnIq+LisyCX6tQMPF/dSJpCfBgBauY+pNZ28yCtSsTvyTYrMhaI+LK26bVyCJfJkT0u8KIj2i1dQ==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@eslint/core": "^0.17.0"
|
||||
"@eslint/core": "^1.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||
"node": "^20.19.0 || ^22.13.0 || >=24"
|
||||
}
|
||||
},
|
||||
"node_modules/@eslint/core": {
|
||||
"version": "0.17.0",
|
||||
"resolved": "https://registry.npmmirror.com/@eslint/core/-/core-0.17.0.tgz",
|
||||
"integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==",
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmmirror.com/@eslint/core/-/core-1.1.0.tgz",
|
||||
"integrity": "sha512-/nr9K9wkr3P1EzFTdFdMoLuo1PmIxjmwvPozwoSodjNBdefGujXQUF93u1DDZpEaTuDvMsIQddsd35BwtrW9Xw==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@types/json-schema": "^7.0.15"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@eslint/eslintrc": {
|
||||
"version": "3.3.1",
|
||||
"resolved": "https://registry.npmmirror.com/@eslint/eslintrc/-/eslintrc-3.3.1.tgz",
|
||||
"integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"ajv": "^6.12.4",
|
||||
"debug": "^4.3.2",
|
||||
"espree": "^10.0.1",
|
||||
"globals": "^14.0.0",
|
||||
"ignore": "^5.2.0",
|
||||
"import-fresh": "^3.2.1",
|
||||
"js-yaml": "^4.1.0",
|
||||
"minimatch": "^3.1.2",
|
||||
"strip-json-comments": "^3.1.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://opencollective.com/eslint"
|
||||
}
|
||||
},
|
||||
"node_modules/@eslint/eslintrc/node_modules/globals": {
|
||||
"version": "14.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/globals/-/globals-14.0.0.tgz",
|
||||
"integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/@eslint/js": {
|
||||
"version": "9.39.2",
|
||||
"resolved": "https://registry.npmmirror.com/@eslint/js/-/js-9.39.2.tgz",
|
||||
"integrity": "sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://eslint.org/donate"
|
||||
"node": "^20.19.0 || ^22.13.0 || >=24"
|
||||
}
|
||||
},
|
||||
"node_modules/@eslint/object-schema": {
|
||||
"version": "2.1.7",
|
||||
"resolved": "https://registry.npmmirror.com/@eslint/object-schema/-/object-schema-2.1.7.tgz",
|
||||
"integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==",
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmmirror.com/@eslint/object-schema/-/object-schema-3.0.1.tgz",
|
||||
"integrity": "sha512-P9cq2dpr+LU8j3qbLygLcSZrl2/ds/pUpfnHNNuk5HW7mnngHs+6WSq5C9mO3rqRX8A1poxqLTC9cu0KOyJlBg==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"engines": {
|
||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||
"node": "^20.19.0 || ^22.13.0 || >=24"
|
||||
}
|
||||
},
|
||||
"node_modules/@eslint/plugin-kit": {
|
||||
"version": "0.4.1",
|
||||
"resolved": "https://registry.npmmirror.com/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz",
|
||||
"integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==",
|
||||
"version": "0.6.0",
|
||||
"resolved": "https://registry.npmmirror.com/@eslint/plugin-kit/-/plugin-kit-0.6.0.tgz",
|
||||
"integrity": "sha512-bIZEUzOI1jkhviX2cp5vNyXQc6olzb2ohewQubuYlMXZ2Q/XjBO0x0XhGPvc9fjSIiUN0vw+0hq53BJ4eQSJKQ==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@eslint/core": "^0.17.0",
|
||||
"@eslint/core": "^1.1.0",
|
||||
"levn": "^0.4.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||
"node": "^20.19.0 || ^22.13.0 || >=24"
|
||||
}
|
||||
},
|
||||
"node_modules/@humanfs/core": {
|
||||
@@ -1158,6 +1108,29 @@
|
||||
"url": "https://github.com/sponsors/nzakas"
|
||||
}
|
||||
},
|
||||
"node_modules/@isaacs/balanced-match": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmmirror.com/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz",
|
||||
"integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": "20 || >=22"
|
||||
}
|
||||
},
|
||||
"node_modules/@isaacs/brace-expansion": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmmirror.com/@isaacs/brace-expansion/-/brace-expansion-5.0.1.tgz",
|
||||
"integrity": "sha512-WMz71T1JS624nWj2n2fnYAuPovhv7EUhk69R6i9dsVyzxt5eM3bjwvgk9L+APE1TRscGysAVMANkB0jh0LQZrQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@isaacs/balanced-match": "^4.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": "20 || >=22"
|
||||
}
|
||||
},
|
||||
"node_modules/@jridgewell/gen-mapping": {
|
||||
"version": "0.3.12",
|
||||
"resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz",
|
||||
@@ -1868,6 +1841,13 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@types/esrecurse": {
|
||||
"version": "4.3.1",
|
||||
"resolved": "https://registry.npmmirror.com/@types/esrecurse/-/esrecurse-4.3.1.tgz",
|
||||
"integrity": "sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@types/estree": {
|
||||
"version": "1.0.8",
|
||||
"resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.8.tgz",
|
||||
@@ -1900,9 +1880,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@types/node": {
|
||||
"version": "25.2.0",
|
||||
"resolved": "https://registry.npmmirror.com/@types/node/-/node-25.2.0.tgz",
|
||||
"integrity": "sha512-DZ8VwRFUNzuqJ5khrvwMXHmvPe+zGayJhr2CDNiKB1WBE1ST8Djl00D0IC4vvNmHMdj6DlbYRIaFE7WHjlDl5w==",
|
||||
"version": "25.2.1",
|
||||
"resolved": "https://registry.npmmirror.com/@types/node/-/node-25.2.1.tgz",
|
||||
"integrity": "sha512-CPrnr8voK8vC6eEtyRzvMpgp3VyVRhgclonE7qYi6P9sXwYb59ucfrnmFBTaP0yUi8Gk4yZg/LlTJULGxvTNsg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@@ -2309,13 +2289,6 @@
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/argparse": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz",
|
||||
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
|
||||
"dev": true,
|
||||
"license": "Python-2.0"
|
||||
},
|
||||
"node_modules/ast-kit": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmmirror.com/ast-kit/-/ast-kit-2.2.0.tgz",
|
||||
@@ -2377,13 +2350,6 @@
|
||||
"integrity": "sha512-iCvCkGFskbaYtfQ0a3GmcQCHl/Sv1GufXFGuUQ+FE+WJa7A/espLOuFIn09B944V8/ImPj71T4+rTASxO2PAuA==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/balanced-match": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz",
|
||||
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/base64-js": {
|
||||
"version": "1.5.1",
|
||||
"resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz",
|
||||
@@ -2436,17 +2402,6 @@
|
||||
"dev": true,
|
||||
"license": "ISC"
|
||||
},
|
||||
"node_modules/brace-expansion": {
|
||||
"version": "1.1.12",
|
||||
"resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.12.tgz",
|
||||
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"balanced-match": "^1.0.0",
|
||||
"concat-map": "0.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/browserslist": {
|
||||
"version": "4.28.1",
|
||||
"resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.28.1.tgz",
|
||||
@@ -2510,16 +2465,6 @@
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/callsites": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz",
|
||||
"integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/caniuse-lite": {
|
||||
"version": "1.0.30001759",
|
||||
"resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001759.tgz",
|
||||
@@ -2541,23 +2486,6 @@
|
||||
],
|
||||
"license": "CC-BY-4.0"
|
||||
},
|
||||
"node_modules/chalk": {
|
||||
"version": "4.1.2",
|
||||
"resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
|
||||
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"ansi-styles": "^4.1.0",
|
||||
"supports-color": "^7.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/chalk/chalk?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/chokidar": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-5.0.0.tgz",
|
||||
@@ -2673,13 +2601,6 @@
|
||||
"integrity": "sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/concat-map": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz",
|
||||
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/confbox": {
|
||||
"version": "0.2.2",
|
||||
"resolved": "https://registry.npmmirror.com/confbox/-/confbox-0.2.2.tgz",
|
||||
@@ -3006,33 +2927,30 @@
|
||||
}
|
||||
},
|
||||
"node_modules/eslint": {
|
||||
"version": "9.39.2",
|
||||
"resolved": "https://registry.npmmirror.com/eslint/-/eslint-9.39.2.tgz",
|
||||
"integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==",
|
||||
"version": "10.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/eslint/-/eslint-10.0.0.tgz",
|
||||
"integrity": "sha512-O0piBKY36YSJhlFSG8p9VUdPV/SxxS4FYDWVpr/9GJuMaepzwlf4J8I4ov1b+ySQfDTPhc3DtLaxcT1fN0yqCg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@eslint-community/eslint-utils": "^4.8.0",
|
||||
"@eslint-community/regexpp": "^4.12.1",
|
||||
"@eslint/config-array": "^0.21.1",
|
||||
"@eslint/config-helpers": "^0.4.2",
|
||||
"@eslint/core": "^0.17.0",
|
||||
"@eslint/eslintrc": "^3.3.1",
|
||||
"@eslint/js": "9.39.2",
|
||||
"@eslint/plugin-kit": "^0.4.1",
|
||||
"@eslint-community/regexpp": "^4.12.2",
|
||||
"@eslint/config-array": "^0.23.0",
|
||||
"@eslint/config-helpers": "^0.5.2",
|
||||
"@eslint/core": "^1.1.0",
|
||||
"@eslint/plugin-kit": "^0.6.0",
|
||||
"@humanfs/node": "^0.16.6",
|
||||
"@humanwhocodes/module-importer": "^1.0.1",
|
||||
"@humanwhocodes/retry": "^0.4.2",
|
||||
"@types/estree": "^1.0.6",
|
||||
"ajv": "^6.12.4",
|
||||
"chalk": "^4.0.0",
|
||||
"cross-spawn": "^7.0.6",
|
||||
"debug": "^4.3.2",
|
||||
"escape-string-regexp": "^4.0.0",
|
||||
"eslint-scope": "^8.4.0",
|
||||
"eslint-visitor-keys": "^4.2.1",
|
||||
"espree": "^10.4.0",
|
||||
"esquery": "^1.5.0",
|
||||
"eslint-scope": "^9.1.0",
|
||||
"eslint-visitor-keys": "^5.0.0",
|
||||
"espree": "^11.1.0",
|
||||
"esquery": "^1.7.0",
|
||||
"esutils": "^2.0.2",
|
||||
"fast-deep-equal": "^3.1.3",
|
||||
"file-entry-cache": "^8.0.0",
|
||||
@@ -3042,8 +2960,7 @@
|
||||
"imurmurhash": "^0.1.4",
|
||||
"is-glob": "^4.0.0",
|
||||
"json-stable-stringify-without-jsonify": "^1.0.1",
|
||||
"lodash.merge": "^4.6.2",
|
||||
"minimatch": "^3.1.2",
|
||||
"minimatch": "^10.1.1",
|
||||
"natural-compare": "^1.4.0",
|
||||
"optionator": "^0.9.3"
|
||||
},
|
||||
@@ -3051,7 +2968,7 @@
|
||||
"eslint": "bin/eslint.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||
"node": "^20.19.0 || ^22.13.0 || >=24"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://eslint.org/donate"
|
||||
@@ -3140,6 +3057,56 @@
|
||||
"url": "https://opencollective.com/eslint"
|
||||
}
|
||||
},
|
||||
"node_modules/eslint/node_modules/eslint-scope": {
|
||||
"version": "9.1.0",
|
||||
"resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-9.1.0.tgz",
|
||||
"integrity": "sha512-CkWE42hOJsNj9FJRaoMX9waUFYhqY4jmyLFdAdzZr6VaCg3ynLYx4WnOdkaIifGfH4gsUcBTn4OZbHXkpLD0FQ==",
|
||||
"dev": true,
|
||||
"license": "BSD-2-Clause",
|
||||
"dependencies": {
|
||||
"@types/esrecurse": "^4.3.1",
|
||||
"@types/estree": "^1.0.8",
|
||||
"esrecurse": "^4.3.0",
|
||||
"estraverse": "^5.2.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^20.19.0 || ^22.13.0 || >=24"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://opencollective.com/eslint"
|
||||
}
|
||||
},
|
||||
"node_modules/eslint/node_modules/eslint-visitor-keys": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-5.0.0.tgz",
|
||||
"integrity": "sha512-A0XeIi7CXU7nPlfHS9loMYEKxUaONu/hTEzHTGba9Huu94Cq1hPivf+DE5erJozZOky0LfvXAyrV/tcswpLI0Q==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"engines": {
|
||||
"node": "^20.19.0 || ^22.13.0 || >=24"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://opencollective.com/eslint"
|
||||
}
|
||||
},
|
||||
"node_modules/eslint/node_modules/espree": {
|
||||
"version": "11.1.0",
|
||||
"resolved": "https://registry.npmmirror.com/espree/-/espree-11.1.0.tgz",
|
||||
"integrity": "sha512-WFWYhO1fV4iYkqOOvq8FbqIhr2pYfoDY0kCotMkDeNtGpiGGkZ1iov2u8ydjtgM8yF8rzK7oaTbw2NAzbAbehw==",
|
||||
"dev": true,
|
||||
"license": "BSD-2-Clause",
|
||||
"dependencies": {
|
||||
"acorn": "^8.15.0",
|
||||
"acorn-jsx": "^5.3.2",
|
||||
"eslint-visitor-keys": "^5.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^20.19.0 || ^22.13.0 || >=24"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://opencollective.com/eslint"
|
||||
}
|
||||
},
|
||||
"node_modules/espree": {
|
||||
"version": "10.4.0",
|
||||
"resolved": "https://registry.npmmirror.com/espree/-/espree-10.4.0.tgz",
|
||||
@@ -3159,9 +3126,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/esquery": {
|
||||
"version": "1.6.0",
|
||||
"resolved": "https://registry.npmmirror.com/esquery/-/esquery-1.6.0.tgz",
|
||||
"integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==",
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npmmirror.com/esquery/-/esquery-1.7.0.tgz",
|
||||
"integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==",
|
||||
"dev": true,
|
||||
"license": "BSD-3-Clause",
|
||||
"dependencies": {
|
||||
@@ -3473,16 +3440,6 @@
|
||||
"dev": true,
|
||||
"license": "ISC"
|
||||
},
|
||||
"node_modules/has-flag": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
|
||||
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/has-symbols": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz",
|
||||
@@ -3572,23 +3529,6 @@
|
||||
"integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/import-fresh": {
|
||||
"version": "3.3.1",
|
||||
"resolved": "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.1.tgz",
|
||||
"integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"parent-module": "^1.0.0",
|
||||
"resolve-from": "^4.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/imurmurhash": {
|
||||
"version": "0.1.4",
|
||||
"resolved": "https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz",
|
||||
@@ -3725,19 +3665,6 @@
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/js-yaml": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz",
|
||||
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"argparse": "^2.0.1"
|
||||
},
|
||||
"bin": {
|
||||
"js-yaml": "bin/js-yaml.js"
|
||||
}
|
||||
},
|
||||
"node_modules/jsesc": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-3.1.0.tgz",
|
||||
@@ -3834,9 +3761,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/less-loader": {
|
||||
"version": "12.3.0",
|
||||
"resolved": "https://registry.npmmirror.com/less-loader/-/less-loader-12.3.0.tgz",
|
||||
"integrity": "sha512-0M6+uYulvYIWs52y0LqN4+QM9TqWAohYSNTo4htE8Z7Cn3G/qQMEmktfHmyJT23k+20kU9zHH2wrfFXkxNLtVw==",
|
||||
"version": "12.3.1",
|
||||
"resolved": "https://registry.npmmirror.com/less-loader/-/less-loader-12.3.1.tgz",
|
||||
"integrity": "sha512-JZZmG7gMzoDP3VGeEG8Sh6FW5wygB5jYL7Wp29FFihuRTsIBacqO3LbRPr2yStYD11riVf13selLm/CPFRDBRQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
@@ -3847,7 +3774,7 @@
|
||||
"url": "https://opencollective.com/webpack"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@rspack/core": "0.x || 1.x",
|
||||
"@rspack/core": "0.x || ^1.0.0 || ^2.0.0-0",
|
||||
"less": "^3.5.0 || ^4.0.0",
|
||||
"webpack": "^5.0.0"
|
||||
},
|
||||
@@ -4183,13 +4110,6 @@
|
||||
"integrity": "sha512-kVI48u3PZr38HdYz98UmfPnXl2DXrpdctLrFLCd3kOx1xUkOmpFPx7gCWWM5MPkL/fD8zb+Ph0QzjGFs4+hHWg==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/lodash.merge": {
|
||||
"version": "4.6.2",
|
||||
"resolved": "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz",
|
||||
"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/lodash.noop": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmmirror.com/lodash.noop/-/lodash.noop-3.0.1.tgz",
|
||||
@@ -4345,16 +4265,19 @@
|
||||
}
|
||||
},
|
||||
"node_modules/minimatch": {
|
||||
"version": "3.1.2",
|
||||
"resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz",
|
||||
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
|
||||
"version": "10.1.2",
|
||||
"resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-10.1.2.tgz",
|
||||
"integrity": "sha512-fu656aJ0n2kcXwsnwnv9g24tkU5uSmOlTjd6WyyaKm2Z+h1qmY6bAjrcaIxF/BslFqbZ8UBtbJi7KgQOZD2PTw==",
|
||||
"dev": true,
|
||||
"license": "ISC",
|
||||
"license": "BlueOak-1.0.0",
|
||||
"dependencies": {
|
||||
"brace-expansion": "^1.1.7"
|
||||
"@isaacs/brace-expansion": "^5.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": "*"
|
||||
"node": "20 || >=22"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/isaacs"
|
||||
}
|
||||
},
|
||||
"node_modules/mitt": {
|
||||
@@ -4572,19 +4495,6 @@
|
||||
"integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
|
||||
"license": "(MIT AND Zlib)"
|
||||
},
|
||||
"node_modules/parent-module": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz",
|
||||
"integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"callsites": "^3.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/parse-node-version": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmmirror.com/parse-node-version/-/parse-node-version-1.0.1.tgz",
|
||||
@@ -4958,16 +4868,6 @@
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/resolve-from": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz",
|
||||
"integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/rfdc": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmmirror.com/rfdc/-/rfdc-1.4.1.tgz",
|
||||
@@ -5309,19 +5209,6 @@
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/strip-json-comments": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
|
||||
"integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/superjson": {
|
||||
"version": "2.2.5",
|
||||
"resolved": "https://registry.npmmirror.com/superjson/-/superjson-2.2.5.tgz",
|
||||
@@ -5361,19 +5248,6 @@
|
||||
"url": "https://github.com/sponsors/mesqueeb"
|
||||
}
|
||||
},
|
||||
"node_modules/supports-color": {
|
||||
"version": "7.2.0",
|
||||
"resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
|
||||
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"has-flag": "^4.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/supports-preserve-symlinks-flag": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
|
||||
@@ -5699,9 +5573,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/vue-data-ui": {
|
||||
"version": "3.14.5",
|
||||
"resolved": "https://registry.npmmirror.com/vue-data-ui/-/vue-data-ui-3.14.5.tgz",
|
||||
"integrity": "sha512-VjRJAHvnb0NFqrz/hB8cG4bNnOVzO0J3kJ1lE9Ir3dMFKA37R1lEriu7Q4tlgkoFLmsvhV/wfan2iiLFCBYKWA==",
|
||||
"version": "3.14.7",
|
||||
"resolved": "https://registry.npmmirror.com/vue-data-ui/-/vue-data-ui-3.14.7.tgz",
|
||||
"integrity": "sha512-aA7jNLyqBPGDvxRSJYI+xCnYhjdJgP2csvGCNNmsjJiI+N7yc8YmgcYR34BcVH7BTyO+kbt1xQ7zZry0H0SiMA==",
|
||||
"license": "MIT",
|
||||
"peerDependencies": {
|
||||
"jspdf": ">=3.0.1",
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
"vue": "^3.5.27",
|
||||
"vue-clipboard3": "^2.0.0",
|
||||
"vue-color-kit": "^1.0.6",
|
||||
"vue-data-ui": "^3.14.5",
|
||||
"vue-data-ui": "^3.14.7",
|
||||
"vue-router": "^5.0.2",
|
||||
"vuedraggable": "^2.24.3"
|
||||
},
|
||||
@@ -43,17 +43,17 @@
|
||||
"@tailwindcss/postcss": "^4.1.18",
|
||||
"@tailwindcss/vite": "^4.1.18",
|
||||
"@types/lodash-es": "^4.17.12",
|
||||
"@types/node": "^25.2.0",
|
||||
"@types/node": "^25.2.1",
|
||||
"@types/nprogress": "^0.2.3",
|
||||
"@types/qs": "^6.14.0",
|
||||
"@vitejs/plugin-vue": "^6.0.4",
|
||||
"@vitejs/plugin-vue-jsx": "^5.1.4",
|
||||
"@vue/babel-plugin-jsx": "^2.0.1",
|
||||
"browserslist": "^4.28.1",
|
||||
"eslint": "^9.39.2",
|
||||
"eslint": "^10.0.0",
|
||||
"eslint-plugin-vue": "^10.7.0",
|
||||
"less": "^4.5.1",
|
||||
"less-loader": "^12.3.0",
|
||||
"less-loader": "^12.3.1",
|
||||
"postcss": "^8.5.6",
|
||||
"prettier": "^3.8.1",
|
||||
"rollup-plugin-visualizer": "^6.0.5",
|
||||
|
||||
@@ -142,5 +142,16 @@ export default {
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 请求上一轮次,级联选择器的cases数据
|
||||
* @returns
|
||||
*/
|
||||
getRelatedCases(id, round_key) {
|
||||
return request({
|
||||
url: "/project/case/getRelatedCase",
|
||||
method: "get",
|
||||
params: { id, round_key }
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@@ -113,7 +113,7 @@ export default {
|
||||
},
|
||||
/**
|
||||
* 新增或者修改软件概述
|
||||
* @returns 返回新增或修改是否成功
|
||||
* @returns null
|
||||
*/
|
||||
postSoftSummary(data) {
|
||||
return request({
|
||||
@@ -122,6 +122,17 @@ export default {
|
||||
data: data
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 新增或者修改动态环境描述
|
||||
* @returns null
|
||||
*/
|
||||
postDynamicDescription(data) {
|
||||
return request({
|
||||
url: "/testmanage/project/dynamic_description/",
|
||||
method: "post",
|
||||
data: data
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 获取项目的软件概述
|
||||
* @returns 返回软件概述数据
|
||||
@@ -133,6 +144,17 @@ export default {
|
||||
params: { id: id }
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 获取动态环境描述
|
||||
* @returns 返回动态环境描述结构化数据
|
||||
*/
|
||||
getDynamicDescription(id) {
|
||||
return request({
|
||||
url: "/testmanage/project/dynamic_des/",
|
||||
method: "get",
|
||||
params: { id: id }
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 提交修改或新增软件接口图
|
||||
* @returns 返回新增或修改是否成功
|
||||
@@ -167,6 +189,28 @@ export default {
|
||||
params: { id: id, category }
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 获取环境差异性分析数据
|
||||
* @returns 返回数据
|
||||
*/
|
||||
getEnvAnalysis(id) {
|
||||
return request({
|
||||
url: "/testmanage/project/get_env_analysis/",
|
||||
method: "get",
|
||||
params: { id: id }
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 提交环境差异性数据
|
||||
* @returns null
|
||||
*/
|
||||
postEnvAnalysis(data) {
|
||||
return request({
|
||||
url: "/testmanage/project/post_env_analysis/",
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 提交修改或新增静态软件项、静态硬件项、动态软件项、动态硬件项
|
||||
* @returns null
|
||||
|
||||
@@ -35,7 +35,7 @@ export default {
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 更新轮次
|
||||
* 删除轮次
|
||||
* @returns
|
||||
*/
|
||||
delete(project_id, data = {}) {
|
||||
@@ -45,5 +45,38 @@ export default {
|
||||
data,
|
||||
params: { project_id }
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 获取影响域分析
|
||||
* @returns 获取数据或code=25002
|
||||
*/
|
||||
getInfluence(id, round_key) {
|
||||
return request({
|
||||
url: "project/round/get_influence",
|
||||
method: "get",
|
||||
params: { id, round_key }
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 新增或修改影响域分析
|
||||
* @returns null
|
||||
*/
|
||||
postInfluence(data) {
|
||||
return request({
|
||||
url: "project/round/create_influence",
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 查看轮次的影响域分析是否有数据
|
||||
* @returns data: boolean
|
||||
*/
|
||||
getInfluenceStatus(id, round_key) {
|
||||
return request({
|
||||
url: "project/round/get_status_influence",
|
||||
method: "get",
|
||||
params: { id, round_key }
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
174
cdTMP/src/layout/components/Influence/EffectModal/index.vue
Normal file
174
cdTMP/src/layout/components/Influence/EffectModal/index.vue
Normal file
@@ -0,0 +1,174 @@
|
||||
<template>
|
||||
<div class="effect-modal-container">
|
||||
<a-modal
|
||||
v-model:visible="visible"
|
||||
width="90%"
|
||||
:title="modalTitle"
|
||||
unmount-on-close
|
||||
ok-text="提交保存"
|
||||
cancel-text="取消保存"
|
||||
:on-before-ok="handleOk"
|
||||
draggable
|
||||
@close="handleCloseEnd"
|
||||
>
|
||||
<div class="mb-1 flex items-center justify-center">
|
||||
<a-button type="primary" @click="() => addRow(-1)">+ 新增一行</a-button>
|
||||
<a-alert type="warning" style="height: 32px">表格为空提交则清除数据储存</a-alert>
|
||||
</div>
|
||||
<a-table
|
||||
:columns="columns"
|
||||
row-key="id"
|
||||
:bordered="{
|
||||
wrapper: true,
|
||||
cell: true,
|
||||
headerCell: true,
|
||||
bodyCell: true
|
||||
}"
|
||||
@change="handleChange"
|
||||
:draggable="{ type: 'handle', width: 40 }"
|
||||
:data="datas"
|
||||
>
|
||||
<template #index="{ rowIndex }">
|
||||
{{ rowIndex + 1 }}
|
||||
</template>
|
||||
<template #changeType="{ rowIndex }">
|
||||
<a-input v-model="datas[rowIndex].change_type"></a-input>
|
||||
</template>
|
||||
<template #changeDes="{ rowIndex, record }">
|
||||
<ma-editor v-model="datas[rowIndex].change_des" :key="`editor_${record.id}`"></ma-editor>
|
||||
</template>
|
||||
<template #changeInflu="{ rowIndex }">
|
||||
<a-textarea v-model="datas[rowIndex].change_influ" auto-size></a-textarea>
|
||||
</template>
|
||||
<template #effectCases="{ rowIndex }">
|
||||
<a-cascader
|
||||
v-model="datas[rowIndex].effect_cases"
|
||||
placeholder="请选择关联用例"
|
||||
size="mini"
|
||||
allow-search
|
||||
allow-clear
|
||||
:loading="cascaderLoading"
|
||||
:options="casOptions"
|
||||
:style="{ width: '180px' }"
|
||||
multiple
|
||||
:tag-nowrap="true"
|
||||
:format-label="format"
|
||||
:field-names="{
|
||||
value: 'key',
|
||||
label: 'label',
|
||||
children: 'children'
|
||||
}"
|
||||
></a-cascader>
|
||||
</template>
|
||||
<template #operator="{ rowIndex }">
|
||||
<a-button type="text" status="danger" @click="() => deleteRow(rowIndex)">删除</a-button>
|
||||
</template>
|
||||
</a-table>
|
||||
</a-modal>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref, inject, getCurrentInstance, nextTick } from "vue"
|
||||
import useColumns from "../hooks/useColumns"
|
||||
import { Message, type CascaderOption } from "@arco-design/web-vue"
|
||||
import MaEditor from "@/components/ma-editor/index.vue"
|
||||
import caseApi from "@/api/project/case"
|
||||
import { useRoute } from "vue-router"
|
||||
import { NodeDataInterface } from "../types"
|
||||
import { DataInterface } from "./types"
|
||||
import roundApi from "@/api/project/round"
|
||||
import useDataOperation from "./useDataOperator"
|
||||
|
||||
// props
|
||||
const { reset } = defineProps<{ reset: () => void }>()
|
||||
|
||||
// global
|
||||
const { proxy } = getCurrentInstance() as any
|
||||
const route = useRoute()
|
||||
const nodeData: NodeDataInterface | undefined = inject("nodeData")
|
||||
|
||||
// hooks
|
||||
const { columns } = useColumns()
|
||||
|
||||
// vars
|
||||
const visible = ref(false)
|
||||
const modalTitle = ref("影响域分析")
|
||||
|
||||
// datas
|
||||
const datas = ref<DataInterface[]>([])
|
||||
const { handleChange, addRow, deleteRow } = useDataOperation(datas)
|
||||
|
||||
// events
|
||||
const handleOk = async () => {
|
||||
// 判断是否change_type是否填写
|
||||
if (!datas.value.every((item) => item.change_type.trim().length > 0)) {
|
||||
Message.error("请至少填写变更类型")
|
||||
return false
|
||||
}
|
||||
try {
|
||||
await roundApi.postInfluence({
|
||||
id: route.query.id,
|
||||
round_key: nodeData?.key,
|
||||
item_list: datas.value
|
||||
})
|
||||
Message.success("新增或修改成功")
|
||||
} catch (e) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
const handleCloseEnd = async () => {
|
||||
datas.value.forEach((item) => {
|
||||
// 安全地检查并重置 change_des
|
||||
if (item && typeof item === "object" && "change_des" in item) {
|
||||
item.change_des = ""
|
||||
}
|
||||
})
|
||||
await nextTick()
|
||||
// 关闭清除数据
|
||||
datas.value = []
|
||||
casOptions.value = []
|
||||
reset()
|
||||
}
|
||||
|
||||
// component functions
|
||||
const cascaderLoading = ref(false)
|
||||
const casOptions = ref([])
|
||||
const format = (options: CascaderOption[]) => {
|
||||
return options.at(-1).label || "未获取用例名称"
|
||||
}
|
||||
const open = async () => {
|
||||
proxy?.$loading?.show("数据加载中...")
|
||||
// 打开时请求级联选择器数据
|
||||
try {
|
||||
cascaderLoading.value = true
|
||||
const res = await caseApi.getRelatedCases(route.query.id, nodeData?.key)
|
||||
casOptions.value = res.data
|
||||
// 获取影响域分析数据
|
||||
const res2 = await roundApi.getInfluence(route.query.id, nodeData?.key)
|
||||
if (res2.code !== 25002) {
|
||||
// 有影响域分析
|
||||
datas.value = res2.data.map((item: any) => ({
|
||||
...item,
|
||||
id: item.id || `loaded_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`
|
||||
}))
|
||||
} else {
|
||||
Message.info("暂未填写影响域分析,请填写")
|
||||
}
|
||||
} catch (e) {
|
||||
} finally {
|
||||
cascaderLoading.value = false
|
||||
proxy?.$loading?.hide()
|
||||
}
|
||||
visible.value = true
|
||||
}
|
||||
|
||||
defineExpose({ open })
|
||||
|
||||
defineOptions({
|
||||
name: "EffectModal"
|
||||
})
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
||||
@@ -0,0 +1,6 @@
|
||||
export interface DataInterface {
|
||||
change_type: string
|
||||
change_des?: string
|
||||
effect_cases?: string[]
|
||||
change_influ?: string
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
import type { Ref } from "vue"
|
||||
import { cloneDeep } from "lodash-es"
|
||||
|
||||
export default function useDataOperation(datas: Ref<any[]>) {
|
||||
const newRow = {
|
||||
id: Date.now().toString(),
|
||||
change_type: "",
|
||||
change_des: "",
|
||||
effect_cases: []
|
||||
}
|
||||
const handleChange = (_data: any) => {
|
||||
datas.value = _data
|
||||
}
|
||||
const addRow = (rowIndex: number) => {
|
||||
const insertIndex = rowIndex === -1 ? datas.value!.length : rowIndex + 1
|
||||
const rowToAdd = {
|
||||
...cloneDeep(newRow),
|
||||
id: `row_${Date.now()}_${Math.random().toString(36).substring(2, 9)}`
|
||||
}
|
||||
datas.value!.splice(insertIndex, 0, rowToAdd)
|
||||
}
|
||||
const deleteRow = (rowIndex: number) => {
|
||||
if (rowIndex < 0 || rowIndex >= datas.value!.length) return
|
||||
datas.value!.splice(rowIndex, 1)
|
||||
}
|
||||
return { handleChange, addRow, deleteRow }
|
||||
}
|
||||
47
cdTMP/src/layout/components/Influence/hooks/useColumns.tsx
Normal file
47
cdTMP/src/layout/components/Influence/hooks/useColumns.tsx
Normal file
@@ -0,0 +1,47 @@
|
||||
import type { TableColumnData } from "@arco-design/web-vue/es/table/interface"
|
||||
|
||||
export default function useColumns() {
|
||||
const columns: TableColumnData[] = [
|
||||
{
|
||||
title: "序号",
|
||||
dataIndex: "index",
|
||||
width: 80,
|
||||
align: "center",
|
||||
slotName: "index"
|
||||
},
|
||||
{
|
||||
title: "更改类型",
|
||||
dataIndex: "change_type",
|
||||
width: 180,
|
||||
align: "center",
|
||||
slotName: "changeType"
|
||||
},
|
||||
{
|
||||
title: "更改内容描述",
|
||||
dataIndex: "change_des",
|
||||
align: "left",
|
||||
slotName: "changeDes"
|
||||
},
|
||||
{
|
||||
title: "影响域分析",
|
||||
dataIndex: "change_influ",
|
||||
align: "left",
|
||||
slotName: "changeInflu"
|
||||
},
|
||||
{
|
||||
title: "影响用例",
|
||||
dataIndex: "effect_cases",
|
||||
align: "center",
|
||||
slotName: "effectCases",
|
||||
width: 180
|
||||
},
|
||||
{
|
||||
title: "操作",
|
||||
dataIndex: "operator",
|
||||
align: "center",
|
||||
slotName: "operator",
|
||||
width: 80
|
||||
}
|
||||
]
|
||||
return { columns }
|
||||
}
|
||||
51
cdTMP/src/layout/components/Influence/index.vue
Normal file
51
cdTMP/src/layout/components/Influence/index.vue
Normal file
@@ -0,0 +1,51 @@
|
||||
<template>
|
||||
<div class="influence-container">
|
||||
<a-tooltip content="影响域分析">
|
||||
<icon-fire
|
||||
style="position: absolute; right: 95px; font-size: 12px; top: 8px"
|
||||
:style="{ color: isInfluence ? '#00b42a' : '#ff7d00' }"
|
||||
@click="handleInfluence"
|
||||
/>
|
||||
</a-tooltip>
|
||||
<EffectModal ref="effectRef" :reset="fetchInfluenceExist" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { useTemplateRef, provide, onMounted, ref } from "vue"
|
||||
import type { NodeDataInterface } from "./types"
|
||||
import EffectModal from "./EffectModal/index.vue"
|
||||
import roundApi from "@/api/project/round"
|
||||
import { useRoute } from "vue-router"
|
||||
|
||||
// globals
|
||||
const route = useRoute()
|
||||
|
||||
// 树状传递的轮次节点数据
|
||||
const { nodeData } = defineProps<{ nodeData: NodeDataInterface }>()
|
||||
provide("nodeData", nodeData)
|
||||
|
||||
const effectRef = useTemplateRef("effectRef")
|
||||
|
||||
const handleInfluence = () => {
|
||||
effectRef.value?.open()
|
||||
}
|
||||
|
||||
// 在挂载时查询影响域分析
|
||||
const isInfluence = ref(false)
|
||||
const fetchInfluenceExist = async () => {
|
||||
try {
|
||||
const res = await roundApi.getInfluenceStatus(route.query.id, nodeData.key)
|
||||
isInfluence.value = res.data
|
||||
} catch {}
|
||||
}
|
||||
onMounted(async () => {
|
||||
await fetchInfluenceExist()
|
||||
})
|
||||
|
||||
defineOptions({
|
||||
name: "Influence"
|
||||
})
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
||||
6
cdTMP/src/layout/components/Influence/types.ts
Normal file
6
cdTMP/src/layout/components/Influence/types.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
export interface NodeDataInterface {
|
||||
title: string
|
||||
key: string
|
||||
level: string
|
||||
children?: NodeDataInterface[]
|
||||
}
|
||||
107
cdTMP/src/layout/components/projectInfoOther/TextAndTable.vue
Normal file
107
cdTMP/src/layout/components/projectInfoOther/TextAndTable.vue
Normal file
@@ -0,0 +1,107 @@
|
||||
<template>
|
||||
<div class="text-table-container">
|
||||
<a-modal
|
||||
v-model:visible="visible"
|
||||
width="50%"
|
||||
draggable
|
||||
:on-before-ok="handleSyncOk"
|
||||
unmount-on-close
|
||||
ok-text="确认保存"
|
||||
cancel-text="关闭不保存"
|
||||
:maskClosable="false"
|
||||
@close="handleOnClose"
|
||||
>
|
||||
<template #title>{{ theTitle }}</template>
|
||||
<a-space direction="vertical" fill>
|
||||
<a-card title="差异性段落描述" hoverable>
|
||||
<a-textarea auto-size placeholder="请填写差异性分析和'见下表所示'" v-model="description"></a-textarea>
|
||||
</a-card>
|
||||
<a-card title="表格" hoverable>
|
||||
<WordLikeTable v-model="tableDatas" v-model:fontnote="fontnote" />
|
||||
</a-card>
|
||||
</a-space>
|
||||
</a-modal>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { Message } from "@arco-design/web-vue"
|
||||
import { getCurrentInstance, ref } from "vue"
|
||||
import { useRoute } from "vue-router"
|
||||
import WordLikeTable from "./projectModal/wordLikeTable/index.vue"
|
||||
import { cloneDeep } from "lodash-es"
|
||||
import projectApi from "@/api/project/project"
|
||||
|
||||
const { proxy } = getCurrentInstance() as any
|
||||
const route = useRoute()
|
||||
|
||||
// datas
|
||||
const description = ref("")
|
||||
const initialTableData = [
|
||||
["", "", ""],
|
||||
["", "", ""],
|
||||
["", "", ""]
|
||||
]
|
||||
const fontnote = ref("")
|
||||
const tableDatas = ref(initialTableData)
|
||||
|
||||
// props
|
||||
const { reset } = defineProps<{
|
||||
reset: () => void
|
||||
}>()
|
||||
|
||||
const visible = ref(false)
|
||||
const theTitle = ref("")
|
||||
|
||||
const handleSyncOk = async () => {
|
||||
// 验证输入文字是否为空
|
||||
if (description.value.trim().length <= 0) {
|
||||
Message.error("请输入分析内容再提交")
|
||||
return false
|
||||
}
|
||||
try {
|
||||
// 请求接口
|
||||
await projectApi.postEnvAnalysis({
|
||||
id: route.query.id,
|
||||
table: tableDatas.value,
|
||||
fontnote: fontnote.value,
|
||||
description: description.value
|
||||
})
|
||||
Message.success("保存成功")
|
||||
} catch (e) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
const handleOnClose = () => {
|
||||
// 用来清空数据
|
||||
fontnote.value = ""
|
||||
description.value = ""
|
||||
tableDatas.value = cloneDeep(initialTableData)
|
||||
reset()
|
||||
}
|
||||
|
||||
const open = async (category_str: string) => {
|
||||
proxy?.$loading?.show("数据加载中...")
|
||||
theTitle.value = category_str
|
||||
try {
|
||||
// 获取数据并赋值给tableData
|
||||
const res = await projectApi.getEnvAnalysis(route.query.id)
|
||||
if (res.code === 25001) {
|
||||
tableDatas.value = res.data.table
|
||||
fontnote.value = res.data.fontnote
|
||||
description.value = res.data.description
|
||||
}
|
||||
visible.value = true
|
||||
} catch (e) {
|
||||
} finally {
|
||||
proxy?.$loading?.hide()
|
||||
}
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
open
|
||||
})
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
||||
@@ -1,20 +1,16 @@
|
||||
<template>
|
||||
<div class="project-info-other-container">
|
||||
<a-dropdown>
|
||||
<a-button class="nav-btn">
|
||||
<template #icon>
|
||||
<icon-settings />
|
||||
</template>
|
||||
<a-space>
|
||||
<span>项目设置</span>
|
||||
<a-dropdown :popup-max-height="false">
|
||||
<a-space>
|
||||
<SettingButton label="项目设置">
|
||||
<a-tooltip :content="allStatus ? '您已全部填写' : '还有未填写项目'">
|
||||
<span class="text-green-500" v-if="allStatus">
|
||||
<icon-check-circle-fill />
|
||||
<icon-check-circle-fill size="20px" />
|
||||
</span>
|
||||
<span class="text-red-500" v-else><icon-exclamation-circle-fill /></span>
|
||||
<span class="text-red-500" v-else><icon-exclamation-circle-fill size="20px" /></span>
|
||||
</a-tooltip>
|
||||
</a-space>
|
||||
</a-button>
|
||||
</SettingButton>
|
||||
</a-space>
|
||||
<template #content>
|
||||
<template v-for="item in inputOptions" :key="item.name">
|
||||
<template v-if="!item.status">
|
||||
@@ -40,6 +36,8 @@
|
||||
<InterfaceImage ref="interfaceImageRef" :reset="fetchAllStatus" />
|
||||
<!-- 静态软件项、静态硬件项、动态软件项、动态硬件项 -->
|
||||
<StaticDynamicTable ref="staticDynamiRef" :reset="fetchAllStatus" />
|
||||
<!-- 环境差异性分析 -->
|
||||
<TextAndTable ref="textAndTableRef" :reset="fetchAllStatus" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -51,6 +49,8 @@ import { Message } from "@arco-design/web-vue"
|
||||
import ProjectModal from "./projectModal/index.vue"
|
||||
import InterfaceImage from "./InterfaceImage.vue"
|
||||
import StaticDynamicTable from "./StaticDynamicTable.vue"
|
||||
import TextAndTable from "./TextAndTable.vue"
|
||||
import SettingButton from "./settingButton/index.vue"
|
||||
|
||||
const route = useRoute()
|
||||
|
||||
@@ -58,6 +58,7 @@ const route = useRoute()
|
||||
const projectModalRef = ref<InstanceType<typeof ProjectModal> | null>(null)
|
||||
const interfaceImageRef = ref<InstanceType<typeof InterfaceImage> | null>(null)
|
||||
const staticDynamiRef = useTemplateRef("staticDynamiRef")
|
||||
const textAndTableRef = useTemplateRef("textAndTableRef")
|
||||
|
||||
// events
|
||||
const clickStuctDatas = async (category: string) => {
|
||||
@@ -69,6 +70,9 @@ const clickInterfaceImage = async () => {
|
||||
const clickStaticDynamic = async (title: string) => {
|
||||
staticDynamiRef.value?.open(title)
|
||||
}
|
||||
const clickTextAndTable = async (title: string) => {
|
||||
textAndTableRef.value?.open(title)
|
||||
}
|
||||
|
||||
// 进入页面时候请求知道各项目样式情况-ref
|
||||
const fetchAllStatus = async () => {
|
||||
@@ -131,6 +135,18 @@ const inputOptions = ref([
|
||||
title: "动态硬件项表",
|
||||
status: false,
|
||||
handler: () => clickStaticDynamic("动态硬件项")
|
||||
},
|
||||
{
|
||||
name: "evaluate_data",
|
||||
title: "测评数据",
|
||||
status: false,
|
||||
handler: () => clickStaticDynamic("测评数据")
|
||||
},
|
||||
{
|
||||
name: "env_analysis",
|
||||
title: "环境差异性分析",
|
||||
status: false,
|
||||
handler: () => clickTextAndTable("环境差异性分析")
|
||||
}
|
||||
])
|
||||
const allStatus = computed(() => inputOptions.value.every((item) => item.status))
|
||||
|
||||
@@ -90,6 +90,6 @@ const handlePaste = async (e: ClipboardEvent) => {
|
||||
.preview-image {
|
||||
max-width: 100%;
|
||||
max-height: 100%;
|
||||
object-fit: cover;
|
||||
object-fit: contain;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -47,6 +47,7 @@ const { reset } = defineProps<{
|
||||
|
||||
const visible = ref(false)
|
||||
const title = ref("")
|
||||
const category = ref("软件概述")
|
||||
|
||||
const { columns, data, handleChange, addTextRow, addPicRow, addTableRow, handleOnClose } = useTable(reset)
|
||||
|
||||
@@ -62,25 +63,29 @@ const dictMap = {
|
||||
动态环境描述: {
|
||||
createTitle: "动态环境描述-新增",
|
||||
modifyTitle: "动态环境描述-修改",
|
||||
errorMsg: "获取动态环境描述失败"
|
||||
errorMsg: "获取动态环境描述失败",
|
||||
getFunc: projectApi.getDynamicDescription,
|
||||
postFunc: projectApi.postDynamicDescription
|
||||
}
|
||||
}
|
||||
|
||||
// functions and events
|
||||
const handleSyncOk = async () => {
|
||||
try {
|
||||
await projectApi.postSoftSummary({ id: route.query.id, data: data.value })
|
||||
await dictMap[category.value].postFunc({ id: route.query.id, data: data.value })
|
||||
visible.value = false
|
||||
Message.success("保存成功")
|
||||
} catch (e) {
|
||||
console.log(e);
|
||||
Message.error("提交时发送错误,请联系管理员")
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
const open = async (category: string) => {
|
||||
const open = async (category_str: string) => {
|
||||
proxy?.$loading?.show("数据加载中...")
|
||||
const currentCate = dictMap[category]
|
||||
category.value = category_str
|
||||
const currentCate = dictMap[category.value]
|
||||
try {
|
||||
const res = await currentCate.getFunc(route.query.id)
|
||||
const code = res.code // 25001表示有数据,25002表示没有数据
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
<template>
|
||||
<button class="button">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="20" viewBox="0 0 20 20" height="20" fill="none" class="svg-icon">
|
||||
<g stroke-width="1.5" stroke-linecap="round" stroke="#5d41de">
|
||||
<circle r="2.5" cy="10" cx="10"></circle>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
d="m8.39079 2.80235c.53842-1.51424 2.67991-1.51424 3.21831-.00001.3392.95358 1.4284 1.40477 2.3425.97027 1.4514-.68995 2.9657.82427 2.2758 2.27575-.4345.91407.0166 2.00334.9702 2.34248 1.5143.53842 1.5143 2.67996 0 3.21836-.9536.3391-1.4047 1.4284-.9702 2.3425.6899 1.4514-.8244 2.9656-2.2758 2.2757-.9141-.4345-2.0033.0167-2.3425.9703-.5384 1.5142-2.67989 1.5142-3.21831 0-.33914-.9536-1.4284-1.4048-2.34247-.9703-1.45148.6899-2.96571-.8243-2.27575-2.2757.43449-.9141-.01669-2.0034-.97028-2.3425-1.51422-.5384-1.51422-2.67994.00001-3.21836.95358-.33914 1.40476-1.42841.97027-2.34248-.68996-1.45148.82427-2.9657 2.27575-2.27575.91407.4345 2.00333-.01669 2.34247-.97026z"
|
||||
clip-rule="evenodd"
|
||||
></path>
|
||||
</g>
|
||||
</svg>
|
||||
<span class="lable">{{ label }}</span>
|
||||
<slot></slot>
|
||||
</button>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
const { label } = defineProps<{
|
||||
label: string
|
||||
}>()
|
||||
|
||||
defineOptions({
|
||||
name: "SettingButton"
|
||||
})
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.button {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
padding: 6px 12px;
|
||||
gap: 8px;
|
||||
height: 36px;
|
||||
width: 200px;
|
||||
border: none;
|
||||
background: #5e41de33;
|
||||
border-radius: 20px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.lable {
|
||||
line-height: 20px;
|
||||
font-size: 17px;
|
||||
color: #5d41de;
|
||||
font-family: sans-serif;
|
||||
letter-spacing: 1px;
|
||||
}
|
||||
|
||||
.button:hover {
|
||||
background: #5e41de4d;
|
||||
}
|
||||
|
||||
.button:hover .svg-icon {
|
||||
animation: spin 2s linear infinite;
|
||||
}
|
||||
|
||||
@keyframes spin {
|
||||
0% {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -85,6 +85,9 @@
|
||||
}
|
||||
"
|
||||
/></a-tooltip>
|
||||
<template v-if="nodeData.key !== '0'">
|
||||
<Influence :node-data="nodeData"></Influence>
|
||||
</template>
|
||||
</template>
|
||||
</template>
|
||||
<!-- 设计节点的图标 -->
|
||||
@@ -248,6 +251,8 @@ import { provide, ref, watch } from "vue"
|
||||
import NavBar from "@/layout/components/navbar.vue"
|
||||
import PageLayout from "@/layout/page-layout.vue"
|
||||
import MaFormModal from "@/components/ma-form-modal/index.vue"
|
||||
// 影响域分析
|
||||
import Influence from "@/layout/components/Influence/index.vue"
|
||||
// 轮次的右键菜单,单独一个组件 -> 在treeComponents里面
|
||||
import roundRight from "./treeComponents/roundRight.vue"
|
||||
// 问题单ma-crud
|
||||
|
||||
Reference in New Issue
Block a user