From 619d5ea652b587491f1134f5640d18b637a9cc0e Mon Sep 17 00:00:00 2001 From: chenjunyi <314298729@qq.com> Date: Sat, 7 Feb 2026 17:27:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E5=BD=B1=E5=93=8D?= =?UTF-8?q?=E5=9F=9F=E5=88=86=E6=9E=90=E5=BD=95=E5=85=A5=E5=92=8C=E4=BF=AE?= =?UTF-8?q?=E5=A4=8Deditor=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cdTMP/package-lock.json | 420 ++++++------------ cdTMP/package.json | 8 +- cdTMP/src/api/project/case.js | 11 + cdTMP/src/api/project/project.js | 46 +- cdTMP/src/api/project/round.js | 35 +- .../Influence/EffectModal/index.vue | 174 ++++++++ .../components/Influence/EffectModal/types.ts | 6 + .../Influence/EffectModal/useDataOperator.tsx | 27 ++ .../components/Influence/hooks/useColumns.tsx | 47 ++ .../src/layout/components/Influence/index.vue | 51 +++ .../src/layout/components/Influence/types.ts | 6 + .../projectInfoOther/TextAndTable.vue | 107 +++++ .../components/projectInfoOther/index.vue | 38 +- .../projectModal/ImageInput/index.vue | 2 +- .../projectInfoOther/projectModal/index.vue | 15 +- .../projectInfoOther/settingButton/index.vue | 68 +++ cdTMP/src/layout/project-layout.vue | 5 + 17 files changed, 770 insertions(+), 296 deletions(-) create mode 100644 cdTMP/src/layout/components/Influence/EffectModal/index.vue create mode 100644 cdTMP/src/layout/components/Influence/EffectModal/types.ts create mode 100644 cdTMP/src/layout/components/Influence/EffectModal/useDataOperator.tsx create mode 100644 cdTMP/src/layout/components/Influence/hooks/useColumns.tsx create mode 100644 cdTMP/src/layout/components/Influence/index.vue create mode 100644 cdTMP/src/layout/components/Influence/types.ts create mode 100644 cdTMP/src/layout/components/projectInfoOther/TextAndTable.vue create mode 100644 cdTMP/src/layout/components/projectInfoOther/settingButton/index.vue diff --git a/cdTMP/package-lock.json b/cdTMP/package-lock.json index a34c27c..f2be9f7 100644 --- a/cdTMP/package-lock.json +++ b/cdTMP/package-lock.json @@ -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", diff --git a/cdTMP/package.json b/cdTMP/package.json index 24f0dbf..8c65ef2 100644 --- a/cdTMP/package.json +++ b/cdTMP/package.json @@ -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", diff --git a/cdTMP/src/api/project/case.js b/cdTMP/src/api/project/case.js index 0188453..d485a04 100644 --- a/cdTMP/src/api/project/case.js +++ b/cdTMP/src/api/project/case.js @@ -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 } + }) } } diff --git a/cdTMP/src/api/project/project.js b/cdTMP/src/api/project/project.js index ed3e20b..d7aacda 100644 --- a/cdTMP/src/api/project/project.js +++ b/cdTMP/src/api/project/project.js @@ -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 diff --git a/cdTMP/src/api/project/round.js b/cdTMP/src/api/project/round.js index 3615429..bb778c4 100644 --- a/cdTMP/src/api/project/round.js +++ b/cdTMP/src/api/project/round.js @@ -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 } + }) } } diff --git a/cdTMP/src/layout/components/Influence/EffectModal/index.vue b/cdTMP/src/layout/components/Influence/EffectModal/index.vue new file mode 100644 index 0000000..bdbdeee --- /dev/null +++ b/cdTMP/src/layout/components/Influence/EffectModal/index.vue @@ -0,0 +1,174 @@ + + + + + diff --git a/cdTMP/src/layout/components/Influence/EffectModal/types.ts b/cdTMP/src/layout/components/Influence/EffectModal/types.ts new file mode 100644 index 0000000..609b7b6 --- /dev/null +++ b/cdTMP/src/layout/components/Influence/EffectModal/types.ts @@ -0,0 +1,6 @@ +export interface DataInterface { + change_type: string + change_des?: string + effect_cases?: string[] + change_influ?: string +} diff --git a/cdTMP/src/layout/components/Influence/EffectModal/useDataOperator.tsx b/cdTMP/src/layout/components/Influence/EffectModal/useDataOperator.tsx new file mode 100644 index 0000000..f73e96d --- /dev/null +++ b/cdTMP/src/layout/components/Influence/EffectModal/useDataOperator.tsx @@ -0,0 +1,27 @@ +import type { Ref } from "vue" +import { cloneDeep } from "lodash-es" + +export default function useDataOperation(datas: Ref) { + 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 } +} diff --git a/cdTMP/src/layout/components/Influence/hooks/useColumns.tsx b/cdTMP/src/layout/components/Influence/hooks/useColumns.tsx new file mode 100644 index 0000000..82f263c --- /dev/null +++ b/cdTMP/src/layout/components/Influence/hooks/useColumns.tsx @@ -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 } +} diff --git a/cdTMP/src/layout/components/Influence/index.vue b/cdTMP/src/layout/components/Influence/index.vue new file mode 100644 index 0000000..73c7e2e --- /dev/null +++ b/cdTMP/src/layout/components/Influence/index.vue @@ -0,0 +1,51 @@ + + + + + diff --git a/cdTMP/src/layout/components/Influence/types.ts b/cdTMP/src/layout/components/Influence/types.ts new file mode 100644 index 0000000..efca59d --- /dev/null +++ b/cdTMP/src/layout/components/Influence/types.ts @@ -0,0 +1,6 @@ +export interface NodeDataInterface { + title: string + key: string + level: string + children?: NodeDataInterface[] +} diff --git a/cdTMP/src/layout/components/projectInfoOther/TextAndTable.vue b/cdTMP/src/layout/components/projectInfoOther/TextAndTable.vue new file mode 100644 index 0000000..7c03acf --- /dev/null +++ b/cdTMP/src/layout/components/projectInfoOther/TextAndTable.vue @@ -0,0 +1,107 @@ + + + + + diff --git a/cdTMP/src/layout/components/projectInfoOther/index.vue b/cdTMP/src/layout/components/projectInfoOther/index.vue index 3c28671..467ec65 100644 --- a/cdTMP/src/layout/components/projectInfoOther/index.vue +++ b/cdTMP/src/layout/components/projectInfoOther/index.vue @@ -1,20 +1,16 @@