From fc1f68b69afa2fe283cb3ab45740a50b3ae82aff Mon Sep 17 00:00:00 2001 From: ks3356143 <314298729@qq.com> Date: Thu, 29 Aug 2024 18:20:37 +0800 Subject: [PATCH] ASD --- cdTMP/package-lock.json | 302 +++---- cdTMP/package.json | 24 +- cdTMP/src/components/ma-editor/index.vue | 1 + cdTMP/src/config/column.js | 3 + cdTMP/src/config/crud.js | 3 + cdTMP/src/router/index.js | 7 +- cdTMP/src/store/modules/tab-bar.js | 4 +- cdTMP/src/utils/extensions/arcoValidator.ts | 10 + .../components/cpns/st-cdtestmanage-info.vue | 2 +- .../projmanage/{ => hooks}/hooks.js | 0 .../projmanage/hooks/useCrudInit.ts | 486 ++++++++++++ .../projmanage/hooks/useEnterWorkPlant.ts | 22 + .../projmanage/hooks/useGenerateSecond.ts | 181 +++++ .../projmanage/hooks/useSeitaiModal.ts | 70 ++ .../src/views/testmanage/projmanage/index.vue | 739 +----------------- 15 files changed, 995 insertions(+), 859 deletions(-) rename cdTMP/src/views/testmanage/projmanage/{ => hooks}/hooks.js (100%) create mode 100644 cdTMP/src/views/testmanage/projmanage/hooks/useCrudInit.ts create mode 100644 cdTMP/src/views/testmanage/projmanage/hooks/useEnterWorkPlant.ts create mode 100644 cdTMP/src/views/testmanage/projmanage/hooks/useGenerateSecond.ts create mode 100644 cdTMP/src/views/testmanage/projmanage/hooks/useSeitaiModal.ts diff --git a/cdTMP/package-lock.json b/cdTMP/package-lock.json index ae29d5f..5abfdc5 100644 --- a/cdTMP/package-lock.json +++ b/cdTMP/package-lock.json @@ -9,33 +9,33 @@ "version": "0.0.2", "dependencies": { "@arco-design/color": "^0.4.0", - "@arco-design/web-vue": "^2.56.0", + "@arco-design/web-vue": "^2.56.1", "@tinymce/tinymce-vue": "^6.0.1", - "@vueuse/core": "^10.11.1", - "axios": "^1.7.4", - "dayjs": "^1.11.12", + "@vueuse/core": "^11.0.3", + "axios": "^1.7.5", + "dayjs": "^1.11.13", "echarts": "^5.5.1", "file2md5": "^1.3.0", "lodash": "^4.17.21", "mammoth": "^1.8.0", "mitt": "^3.0.1", - "monaco-editor": "^0.33.0", + "monaco-editor": "^0.51.0", "nprogress": "^0.2.0", "pinia": "^2.2.2", "pinyin-match": "^1.2.5", "postcss-import": "^16.1.0", "qs": "^6.13.0", - "tinymce": "^6.8.4", + "tinymce": "^7.3.0", "vue": "^3.4.38", "vue-clipboard3": "^2.0.0", "vue-color-kit": "^1.0.6", - "vue-echarts": "^6.7.3", + "vue-echarts": "^7.0.3", "vue-router": "^4.4.3", "vuedraggable": "^2.24.3" }, "devDependencies": { "@types/lodash": "^4.14.195", - "@types/node": "^22.3.0", + "@types/node": "^22.5.1", "@types/nprogress": "^0.2.3", "@types/qs": "^6.9.15", "@vitejs/plugin-vue": "^5.1.2", @@ -43,8 +43,8 @@ "@vue/babel-plugin-jsx": "^1.1.1", "autoprefixer": "^10.4.20", "browserslist": "^4.23.0", - "caniuse-lite": "^1.0.30001651", - "eslint": "^9.9.0", + "caniuse-lite": "^1.0.30001653", + "eslint": "^9.9.1", "eslint-plugin-vue": "^9.27.0", "less": "^4.2.0", "less-loader": "^12.2.0", @@ -52,7 +52,7 @@ "prettier": "^3.3.3", "tailwindcss": "^3.4.10", "typescript": "^5.5.3", - "vite": "^5.4.1" + "vite": "^5.4.2" } }, "node_modules/@alloc/quick-lru": { @@ -86,9 +86,9 @@ } }, "node_modules/@arco-design/web-vue": { - "version": "2.56.0", - "resolved": "https://registry.npmmirror.com/@arco-design/web-vue/-/web-vue-2.56.0.tgz", - "integrity": "sha512-LsrTE1vL54a/DVQCZ4c2F5LDA1r2mcWF2AHrM+fKEi5hzE63/awZVIOQ6P8yGaYRAP9eqUNj60uNI1Jz0UvGlA==", + "version": "2.56.1", + "resolved": "https://registry.npmmirror.com/@arco-design/web-vue/-/web-vue-2.56.1.tgz", + "integrity": "sha512-RHIG7DXpCJrpxCKXdxZMzsGvMPCUott57soXW3aHJfxOcf+I2rdX8/UTAt2ka5MyRLUZ4B90B1LKyUgLChGklg==", "license": "MIT", "dependencies": { "@arco-design/color": "^0.4.0", @@ -909,9 +909,9 @@ } }, "node_modules/@eslint/config-array": { - "version": "0.17.1", - "resolved": "https://registry.npmmirror.com/@eslint/config-array/-/config-array-0.17.1.tgz", - "integrity": "sha512-BlYOpej8AQ8Ev9xVqroV7a02JK3SkBAaN9GfMMH9W6Ch8FlQlkjGw4Ir7+FgYwfirivAf4t+GtzuAxqfukmISA==", + "version": "0.18.0", + "resolved": "https://registry.npmmirror.com/@eslint/config-array/-/config-array-0.18.0.tgz", + "integrity": "sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -992,9 +992,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.9.0", - "resolved": "https://registry.npmmirror.com/@eslint/js/-/js-9.9.0.tgz", - "integrity": "sha512-hhetes6ZHP3BlXLxmd8K2SNgkhNSi+UcecbnwWKwpP7kyi/uC75DJ1lOOBO3xrC4jyojtGE3YxKZPHfk4yrgug==", + "version": "9.9.1", + "resolved": "https://registry.npmmirror.com/@eslint/js/-/js-9.9.1.tgz", + "integrity": "sha512-xIDQRsfg5hNBqHz04H1R3scSVwmI+KUbqjsQKHKQ1DAUSaUjYPReZZmS/5PNiKu1fUvzDd6H7DEDKACSEhu+TQ==", "dev": true, "license": "MIT", "engines": { @@ -1129,208 +1129,224 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.18.0", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", - "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", + "version": "4.21.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.0.tgz", + "integrity": "sha512-WTWD8PfoSAJ+qL87lE7votj3syLavxunWhzCnx3XFxFiI/BA/r3X7MUM8dVrH8rb2r4AiO8jJsr3ZjdaftmnfA==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.18.0", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", - "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", + "version": "4.21.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.0.tgz", + "integrity": "sha512-a1sR2zSK1B4eYkiZu17ZUZhmUQcKjk2/j9Me2IDjk1GHW7LB5Z35LEzj9iJch6gtUfsnvZs1ZNyDW2oZSThrkA==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.18.0", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", - "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", + "version": "4.21.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.0.tgz", + "integrity": "sha512-zOnKWLgDld/svhKO5PD9ozmL6roy5OQ5T4ThvdYZLpiOhEGY+dp2NwUmxK0Ld91LrbjrvtNAE0ERBwjqhZTRAA==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.18.0", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", - "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", + "version": "4.21.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.0.tgz", + "integrity": "sha512-7doS8br0xAkg48SKE2QNtMSFPFUlRdw9+votl27MvT46vo44ATBmdZdGysOevNELmZlfd+NEa0UYOA8f01WSrg==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.18.0", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", - "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", + "version": "4.21.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.0.tgz", + "integrity": "sha512-pWJsfQjNWNGsoCq53KjMtwdJDmh/6NubwQcz52aEwLEuvx08bzcy6tOUuawAOncPnxz/3siRtd8hiQ32G1y8VA==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.18.0", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", - "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", + "version": "4.21.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.0.tgz", + "integrity": "sha512-efRIANsz3UHZrnZXuEvxS9LoCOWMGD1rweciD6uJQIx2myN3a8Im1FafZBzh7zk1RJ6oKcR16dU3UPldaKd83w==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", - "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", + "version": "4.21.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.0.tgz", + "integrity": "sha512-ZrPhydkTVhyeGTW94WJ8pnl1uroqVHM3j3hjdquwAcWnmivjAwOYjTEAuEDeJvGX7xv3Z9GAvrBkEzCgHq9U1w==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.18.0", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", - "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", + "version": "4.21.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.0.tgz", + "integrity": "sha512-cfaupqd+UEFeURmqNP2eEvXqgbSox/LHOyN9/d2pSdV8xTrjdg3NgOFJCtc1vQ/jEke1qD0IejbBfxleBPHnPw==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", - "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", + "version": "4.21.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.0.tgz", + "integrity": "sha512-ZKPan1/RvAhrUylwBXC9t7B2hXdpb/ufeu22pG2psV7RN8roOfGurEghw1ySmX/CmDDHNTDDjY3lo9hRlgtaHg==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", - "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", + "version": "4.21.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.0.tgz", + "integrity": "sha512-H1eRaCwd5E8eS8leiS+o/NqMdljkcb1d6r2h4fKSsCXQilLKArq6WS7XBLDu80Yz+nMqHVFDquwcVrQmGr28rg==", "cpu": [ "riscv64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", - "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", + "version": "4.21.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.0.tgz", + "integrity": "sha512-zJ4hA+3b5tu8u7L58CCSI0A9N1vkfwPhWd/puGXwtZlsB5bTkwDNW/+JCU84+3QYmKpLi+XvHdmrlwUwDA6kqw==", "cpu": [ "s390x" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", - "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", + "version": "4.21.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.0.tgz", + "integrity": "sha512-e2hrvElFIh6kW/UNBQK/kzqMNY5mO+67YtEh9OA65RM5IJXYTWiXjX6fjIiPaqOkBthYF1EqgiZ6OXKcQsM0hg==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.18.0", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", - "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", + "version": "4.21.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.0.tgz", + "integrity": "sha512-1vvmgDdUSebVGXWX2lIcgRebqfQSff0hMEkLJyakQ9JQUbLDkEaMsPTLOmyccyC6IJ/l3FZuJbmrBw/u0A0uCQ==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.18.0", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", - "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", + "version": "4.21.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.0.tgz", + "integrity": "sha512-s5oFkZ/hFcrlAyBTONFY1TWndfyre1wOMwU+6KCpm/iatybvrRgmZVM+vCFwxmC5ZhdlgfE0N4XorsDpi7/4XQ==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.18.0", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", - "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", + "version": "4.21.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.0.tgz", + "integrity": "sha512-G9+TEqRnAA6nbpqyUqgTiopmnfgnMkR3kMukFBDsiyy23LZvUCpiUwjTRx6ezYCjJODXrh52rBR9oXvm+Fp5wg==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.18.0", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", - "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", + "version": "4.21.0", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.0.tgz", + "integrity": "sha512-2jsCDZwtQvRhejHLfZ1JY6w6kEuEtfF9nzYsZxzSlNVKDX+DpsDJ+Rbjkm74nvg2rdx0gwBS+IMdvwJuq3S9pQ==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -1394,13 +1410,13 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "22.3.0", - "resolved": "https://registry.npmmirror.com/@types/node/-/node-22.3.0.tgz", - "integrity": "sha512-nrWpWVaDZuaVc5X84xJ0vNrLvomM205oQyLsRt7OHNZbSHslcWsvgFR7O7hire2ZonjLrWBbedmotmIlJDVd6g==", + "version": "22.5.1", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-22.5.1.tgz", + "integrity": "sha512-KkHsxej0j9IW1KKOOAA/XBA0z08UFSrRQHErzEfA3Vgq57eXIMYboIlHJuYIfd+lwCQjtKqUu3UnmKbtUc9yRw==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.18.2" + "undici-types": "~6.19.2" } }, "node_modules/@types/nprogress": { @@ -1635,15 +1651,15 @@ "license": "MIT" }, "node_modules/@vueuse/core": { - "version": "10.11.1", - "resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-10.11.1.tgz", - "integrity": "sha512-guoy26JQktXPcz+0n3GukWIy/JDNKti9v6VEMu6kV2sYBsWuGiTU8OWdg+ADfUbHg3/3DlqySDe7JmdHrktiww==", + "version": "11.0.3", + "resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-11.0.3.tgz", + "integrity": "sha512-RENlh64+SYA9XMExmmH1a3TPqeIuJBNNB/63GT35MZI+zpru3oMRUA6cEFr9HmGqEgUisurwGwnIieF6qu3aXw==", "license": "MIT", "dependencies": { "@types/web-bluetooth": "^0.0.20", - "@vueuse/metadata": "10.11.1", - "@vueuse/shared": "10.11.1", - "vue-demi": ">=0.14.8" + "@vueuse/metadata": "11.0.3", + "@vueuse/shared": "11.0.3", + "vue-demi": ">=0.14.10" }, "funding": { "url": "https://github.com/sponsors/antfu" @@ -1676,21 +1692,21 @@ } }, "node_modules/@vueuse/metadata": { - "version": "10.11.1", - "resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-10.11.1.tgz", - "integrity": "sha512-IGa5FXd003Ug1qAZmyE8wF3sJ81xGLSqTqtQ6jaVfkeZ4i5kS2mwQF61yhVqojRnenVew5PldLyRgvdl4YYuSw==", + "version": "11.0.3", + "resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-11.0.3.tgz", + "integrity": "sha512-+FtbO4SD5WpsOcQTcC0hAhNlOid6QNLzqedtquTtQ+CRNBoAt9GuV07c6KNHK1wCmlq8DFPwgiLF2rXwgSHX5Q==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/antfu" } }, "node_modules/@vueuse/shared": { - "version": "10.11.1", - "resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-10.11.1.tgz", - "integrity": "sha512-LHpC8711VFZlDaYUXEBbFBCQ7GS3dVU9mjOhhMhXP6txTV4EhYQg/KGnQuvt/sPAtoUKq7VVUnL6mVtFoL42sA==", + "version": "11.0.3", + "resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-11.0.3.tgz", + "integrity": "sha512-0rY2m6HS5t27n/Vp5cTDsKTlNnimCqsbh/fmT2LgE+aaU42EMfXo8+bNX91W9I7DDmxfuACXMmrd7d79JxkqWA==", "license": "MIT", "dependencies": { - "vue-demi": ">=0.14.8" + "vue-demi": ">=0.14.10" }, "funding": { "url": "https://github.com/sponsors/antfu" @@ -2076,9 +2092,9 @@ } }, "node_modules/axios": { - "version": "1.7.4", - "resolved": "https://registry.npmmirror.com/axios/-/axios-1.7.4.tgz", - "integrity": "sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==", + "version": "1.7.5", + "resolved": "https://registry.npmmirror.com/axios/-/axios-1.7.5.tgz", + "integrity": "sha512-fZu86yCo+svH3uqJ/yTdQ0QHpQu5oL+/QE+QPSv6BZSkDAoky9vytxp7u5qk83OJFS3kEBcesWni9WTZAv3tSw==", "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", @@ -2239,9 +2255,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001651", - "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz", - "integrity": "sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==", + "version": "1.0.30001653", + "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001653.tgz", + "integrity": "sha512-XGWQVB8wFQ2+9NZwZ10GxTYC5hk0Fa+q8cSkr0tgvMhYhMHP/QC+WTgrePMDBWiWc/pV+1ik82Al20XOK25Gcw==", "dev": true, "funding": [ { @@ -2443,9 +2459,9 @@ "license": "MIT" }, "node_modules/dayjs": { - "version": "1.11.12", - "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.12.tgz", - "integrity": "sha512-Rt2g+nTbLlDWZTwwrIXjy9MeiZmSDI375FvZs72ngxx8PDC6YXOeR3q5LAuPzjZQxhiWdRKac7RKV+YyQYfYIg==", + "version": "1.11.13", + "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", "license": "MIT" }, "node_modules/debug": { @@ -2671,17 +2687,17 @@ } }, "node_modules/eslint": { - "version": "9.9.0", - "resolved": "https://registry.npmmirror.com/eslint/-/eslint-9.9.0.tgz", - "integrity": "sha512-JfiKJrbx0506OEerjK2Y1QlldtBxkAlLxT5OEcRF8uaQ86noDe2k31Vw9rnSWv+MXZHj7OOUV/dA0AhdLFcyvA==", + "version": "9.9.1", + "resolved": "https://registry.npmmirror.com/eslint/-/eslint-9.9.1.tgz", + "integrity": "sha512-dHvhrbfr4xFQ9/dq+jcVneZMyRYLjggWjk6RVsIiHsP8Rz6yZ8LvZ//iU4TrZF+SXWG+JkNF2OyiZRvzgRDqMg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.11.0", - "@eslint/config-array": "^0.17.1", + "@eslint/config-array": "^0.18.0", "@eslint/eslintrc": "^3.1.0", - "@eslint/js": "9.9.0", + "@eslint/js": "9.9.1", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.3.0", "@nodelib/fs.walk": "^1.2.8", @@ -3972,9 +3988,9 @@ "license": "MIT" }, "node_modules/monaco-editor": { - "version": "0.33.0", - "resolved": "https://registry.npmmirror.com/monaco-editor/-/monaco-editor-0.33.0.tgz", - "integrity": "sha512-VcRWPSLIUEgQJQIE0pVT8FcGBIgFoxz7jtqctE+IiCxWugD0DwgyQBcZBhdSrdMC84eumoqMZsGl2GTreOzwqw==", + "version": "0.51.0", + "resolved": "https://registry.npmmirror.com/monaco-editor/-/monaco-editor-0.51.0.tgz", + "integrity": "sha512-xaGwVV1fq343cM7aOYB6lVE4Ugf0UyimdD/x5PWcWBMKENwectaEu77FAN7c5sFiyumqeJdX1RPTh1ocioyDjw==", "license": "MIT" }, "node_modules/ms": { @@ -4580,11 +4596,6 @@ "node": ">=8.10.0" } }, - "node_modules/resize-detector": { - "version": "0.3.0", - "resolved": "https://registry.npmmirror.com/resize-detector/-/resize-detector-0.3.0.tgz", - "integrity": "sha512-R/tCuvuOHQ8o2boRP6vgx8hXCCy87H1eY9V5imBYeVNyNVpuL9ciReSccLj2gDcax9+2weXy3bc8Vv+NRXeEvQ==" - }, "node_modules/resize-observer-polyfill": { "version": "1.5.1", "resolved": "https://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", @@ -4624,10 +4635,11 @@ } }, "node_modules/rollup": { - "version": "4.18.0", - "resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.18.0.tgz", - "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", + "version": "4.21.0", + "resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.21.0.tgz", + "integrity": "sha512-vo+S/lfA2lMS7rZ2Qoubi6I5hwZwzXeUIctILZLbHI+laNtvhhOIon2S1JksA5UEDQ7l3vberd0fxK44lTYjbQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "1.0.5" }, @@ -4639,22 +4651,22 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.18.0", - "@rollup/rollup-android-arm64": "4.18.0", - "@rollup/rollup-darwin-arm64": "4.18.0", - "@rollup/rollup-darwin-x64": "4.18.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", - "@rollup/rollup-linux-arm-musleabihf": "4.18.0", - "@rollup/rollup-linux-arm64-gnu": "4.18.0", - "@rollup/rollup-linux-arm64-musl": "4.18.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", - "@rollup/rollup-linux-riscv64-gnu": "4.18.0", - "@rollup/rollup-linux-s390x-gnu": "4.18.0", - "@rollup/rollup-linux-x64-gnu": "4.18.0", - "@rollup/rollup-linux-x64-musl": "4.18.0", - "@rollup/rollup-win32-arm64-msvc": "4.18.0", - "@rollup/rollup-win32-ia32-msvc": "4.18.0", - "@rollup/rollup-win32-x64-msvc": "4.18.0", + "@rollup/rollup-android-arm-eabi": "4.21.0", + "@rollup/rollup-android-arm64": "4.21.0", + "@rollup/rollup-darwin-arm64": "4.21.0", + "@rollup/rollup-darwin-x64": "4.21.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.21.0", + "@rollup/rollup-linux-arm-musleabihf": "4.21.0", + "@rollup/rollup-linux-arm64-gnu": "4.21.0", + "@rollup/rollup-linux-arm64-musl": "4.21.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.21.0", + "@rollup/rollup-linux-riscv64-gnu": "4.21.0", + "@rollup/rollup-linux-s390x-gnu": "4.21.0", + "@rollup/rollup-linux-x64-gnu": "4.21.0", + "@rollup/rollup-linux-x64-musl": "4.21.0", + "@rollup/rollup-win32-arm64-msvc": "4.21.0", + "@rollup/rollup-win32-ia32-msvc": "4.21.0", + "@rollup/rollup-win32-x64-msvc": "4.21.0", "fsevents": "~2.3.2" } }, @@ -5112,10 +5124,10 @@ "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" }, "node_modules/tinymce": { - "version": "6.8.4", - "resolved": "https://registry.npmmirror.com/tinymce/-/tinymce-6.8.4.tgz", - "integrity": "sha512-okoJyxuPv1gzASxQDNgQbnUXOdAIyoOSXcXcZZu7tiW0PSKEdf3SdASxPBupRj+64/E3elHwVRnzSdo82Emqbg==", - "license": "MIT" + "version": "7.3.0", + "resolved": "https://registry.npmmirror.com/tinymce/-/tinymce-7.3.0.tgz", + "integrity": "sha512-Ls4PgYlpk73XAxBSBqbVmSl8Mb3DuNfgF01GZ0lY6/MOEVRl3IL+VxC1Oe6165e8WqbqVsxO3Qj/PmoYNvQKGQ==", + "license": "GPL-2.0-or-later" }, "node_modules/to-fast-properties": { "version": "2.0.0", @@ -5190,9 +5202,9 @@ "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==" }, "node_modules/undici-types": { - "version": "6.18.2", - "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-6.18.2.tgz", - "integrity": "sha512-5ruQbENj95yDYJNS3TvcaxPMshV7aizdv/hWYjGIKoANWKjhWNBsr2YEuYZKodQulB1b8l7ILOuDQep3afowQQ==", + "version": "6.19.8", + "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", "dev": true, "license": "MIT" }, @@ -5242,15 +5254,15 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "node_modules/vite": { - "version": "5.4.1", - "resolved": "https://registry.npmmirror.com/vite/-/vite-5.4.1.tgz", - "integrity": "sha512-1oE6yuNXssjrZdblI9AfBbHCC41nnyoVoEZxQnID6yvQZAFBzxxkqoFLtHUMkYunL8hwOLEjgTuxpkRxvba3kA==", + "version": "5.4.2", + "resolved": "https://registry.npmmirror.com/vite/-/vite-5.4.2.tgz", + "integrity": "sha512-dDrQTRHp5C1fTFzcSaMxjk6vdpKvT+2/mIdE07Gw2ykehT49O0z/VHS3zZ8iV/Gh8BJJKHWOe5RjaNrW5xf/GA==", "dev": true, "license": "MIT", "dependencies": { "esbuild": "^0.21.3", "postcss": "^8.4.41", - "rollup": "^4.13.0" + "rollup": "^4.20.0" }, "bin": { "vite": "bin/vite.js" @@ -5340,25 +5352,19 @@ } }, "node_modules/vue-echarts": { - "version": "6.7.3", - "resolved": "https://registry.npmmirror.com/vue-echarts/-/vue-echarts-6.7.3.tgz", - "integrity": "sha512-vXLKpALFjbPphW9IfQPOVfb1KjGZ/f8qa/FZHi9lZIWzAnQC1DgnmEK3pJgEkyo6EP7UnX6Bv/V3Ke7p+qCNXA==", - "hasInstallScript": true, + "version": "7.0.3", + "resolved": "https://registry.npmmirror.com/vue-echarts/-/vue-echarts-7.0.3.tgz", + "integrity": "sha512-/jSxNwOsw5+dYAUcwSfkLwKPuzTQ0Cepz1LxCOpj2QcHrrmUa/Ql0eQqMmc1rTPQVrh2JQ29n2dhq75ZcHvRDw==", "license": "MIT", "dependencies": { - "resize-detector": "^0.3.0", "vue-demi": "^0.13.11" }, "peerDependencies": { - "@vue/composition-api": "^1.0.5", "@vue/runtime-core": "^3.0.0", - "echarts": "^5.4.1", - "vue": "^2.6.12 || ^3.1.1" + "echarts": "^5.5.1", + "vue": "^2.7.0 || ^3.1.1" }, "peerDependenciesMeta": { - "@vue/composition-api": { - "optional": true - }, "@vue/runtime-core": { "optional": true } diff --git a/cdTMP/package.json b/cdTMP/package.json index 7616718..7a834bf 100644 --- a/cdTMP/package.json +++ b/cdTMP/package.json @@ -1,7 +1,7 @@ { "name": "cdtmp", "private": true, - "version": "0.0.2", + "version": "0.0.3", "type": "module", "scripts": { "dev": "vite", @@ -12,33 +12,33 @@ }, "dependencies": { "@arco-design/color": "^0.4.0", - "@arco-design/web-vue": "^2.56.0", + "@arco-design/web-vue": "^2.56.1", "@tinymce/tinymce-vue": "^6.0.1", - "@vueuse/core": "^10.11.1", - "axios": "^1.7.4", - "dayjs": "^1.11.12", + "@vueuse/core": "^11.0.3", + "axios": "^1.7.5", + "dayjs": "^1.11.13", "echarts": "^5.5.1", "file2md5": "^1.3.0", "lodash": "^4.17.21", "mammoth": "^1.8.0", "mitt": "^3.0.1", - "monaco-editor": "^0.33.0", + "monaco-editor": "^0.51.0", "nprogress": "^0.2.0", "pinia": "^2.2.2", "pinyin-match": "^1.2.5", "postcss-import": "^16.1.0", "qs": "^6.13.0", - "tinymce": "^6.8.4", + "tinymce": "^7.3.0", "vue": "^3.4.38", "vue-clipboard3": "^2.0.0", "vue-color-kit": "^1.0.6", - "vue-echarts": "^6.7.3", + "vue-echarts": "^7.0.3", "vue-router": "^4.4.3", "vuedraggable": "^2.24.3" }, "devDependencies": { "@types/lodash": "^4.14.195", - "@types/node": "^22.3.0", + "@types/node": "^22.5.1", "@types/nprogress": "^0.2.3", "@types/qs": "^6.9.15", "@vitejs/plugin-vue": "^5.1.2", @@ -46,8 +46,8 @@ "@vue/babel-plugin-jsx": "^1.1.1", "autoprefixer": "^10.4.20", "browserslist": "^4.23.0", - "caniuse-lite": "^1.0.30001651", - "eslint": "^9.9.0", + "caniuse-lite": "^1.0.30001653", + "eslint": "^9.9.1", "eslint-plugin-vue": "^9.27.0", "less": "^4.2.0", "less-loader": "^12.2.0", @@ -55,6 +55,6 @@ "prettier": "^3.3.3", "tailwindcss": "^3.4.10", "typescript": "^5.5.3", - "vite": "^5.4.1" + "vite": "^5.4.2" } } diff --git a/cdTMP/src/components/ma-editor/index.vue b/cdTMP/src/components/ma-editor/index.vue index e210d38..aa0464f 100644 --- a/cdTMP/src/components/ma-editor/index.vue +++ b/cdTMP/src/components/ma-editor/index.vue @@ -131,6 +131,7 @@ function removeCommentNodes(node) { const { theme } = storeToRefs(appStore) const initConfig = reactive({ + api_key: "ae9bz8l50ymnme8mtw1vp6prbj8n6ow59evb1nthdivzlk8s", menubar: false, // 菜单栏显隐 language_url: "/tinymce/i18n/zh_CN.js", language: "zh_CN", diff --git a/cdTMP/src/config/column.js b/cdTMP/src/config/column.js index b1c6ea4..9401c81 100644 --- a/cdTMP/src/config/column.js +++ b/cdTMP/src/config/column.js @@ -1 +1,4 @@ +/** + * 该文件定义默认的columns的配置 + */ export default {} diff --git a/cdTMP/src/config/crud.js b/cdTMP/src/config/crud.js index 8f96bb5..2cde6b3 100644 --- a/cdTMP/src/config/crud.js +++ b/cdTMP/src/config/crud.js @@ -1,3 +1,6 @@ +/** + * 该文件定义默认响应data数据的结构 + */ export default { // 响应返回解析 parseResponseData: (res) => { diff --git a/cdTMP/src/router/index.js b/cdTMP/src/router/index.js index a7f0751..cebe3b2 100644 --- a/cdTMP/src/router/index.js +++ b/cdTMP/src/router/index.js @@ -5,6 +5,10 @@ import { appRoutes } from "./routes" import { REDIRECT_MAIN, NOT_FOUND_ROUTE, PROJECT_LAYOUT } from "./routes/base" import createRouteGuard from "@/router/guard/index" + +// 定义工作区路由名称,为了不写死 +export const WORK_AREA_NAME = "project" + const router = createRouter({ history: createWebHistory(), routes: [ @@ -31,7 +35,8 @@ const router = createRouter({ roles: ["*"], order: 0, locale: "项目工作区", - icon: "icon-home" + icon: "icon-home", + hideInMenu: true }, children: [ { diff --git a/cdTMP/src/store/modules/tab-bar.js b/cdTMP/src/store/modules/tab-bar.js index 7a98fc5..5ffe5cf 100644 --- a/cdTMP/src/store/modules/tab-bar.js +++ b/cdTMP/src/store/modules/tab-bar.js @@ -1,4 +1,5 @@ import { DEFAULT_ROUTE, DEFAULT_ROUTE_NAME, REDIRECT_ROUTE_NAME } from "@/router/constants" +import { WORK_AREA_NAME } from "@/router" import { defineStore } from "pinia" import { isString } from "@/utils/is" const formatTag = (route) => { @@ -11,7 +12,8 @@ const formatTag = (route) => { ignoreCache: meta.ignoreCache } } -const BAN_LIST = [REDIRECT_ROUTE_NAME] +// 去除的页面名称,这里去除项目工作区页面 +const BAN_LIST = [REDIRECT_ROUTE_NAME, WORK_AREA_NAME] const useTabBarStore = defineStore("tabBar", { state: () => ({ // 修改:添加"用户中心到缓存" diff --git a/cdTMP/src/utils/extensions/arcoValidator.ts b/cdTMP/src/utils/extensions/arcoValidator.ts index 22bd101..c0c3908 100644 --- a/cdTMP/src/utils/extensions/arcoValidator.ts +++ b/cdTMP/src/utils/extensions/arcoValidator.ts @@ -7,3 +7,13 @@ export function validateBlank(value: string | undefined, callback: (error?: stri callback("注意标识不能为空格") } } + +/** + * window文件名称检查器,不允许有字符/\:*?"<>| + */ +export function validateWindowFileNameInput(value: string | undefined, callback: (error?: string) => void): void { + const val = value?.trim() + const reg = /[\\\/\:\*\?\"\<\>\|]/ + const regPatchRes = val?.search(reg) + regPatchRes === -1 ? undefined : callback('注意标识名称不能有 -> /\\:*?"<>|') +} diff --git a/cdTMP/src/views/dashboard/workplace/components/cpns/st-cdtestmanage-info.vue b/cdTMP/src/views/dashboard/workplace/components/cpns/st-cdtestmanage-info.vue index 976a7b3..579ea70 100644 --- a/cdTMP/src/views/dashboard/workplace/components/cpns/st-cdtestmanage-info.vue +++ b/cdTMP/src/views/dashboard/workplace/components/cpns/st-cdtestmanage-info.vue @@ -23,7 +23,7 @@
管理平台版本
- TestManagePlant V0.0.2 + TestPlant V0.0.3 diff --git a/cdTMP/src/views/testmanage/projmanage/hooks.js b/cdTMP/src/views/testmanage/projmanage/hooks/hooks.js similarity index 100% rename from cdTMP/src/views/testmanage/projmanage/hooks.js rename to cdTMP/src/views/testmanage/projmanage/hooks/hooks.js diff --git a/cdTMP/src/views/testmanage/projmanage/hooks/useCrudInit.ts b/cdTMP/src/views/testmanage/projmanage/hooks/useCrudInit.ts new file mode 100644 index 0000000..d565ff7 --- /dev/null +++ b/cdTMP/src/views/testmanage/projmanage/hooks/useCrudInit.ts @@ -0,0 +1,486 @@ +import { ref } from "vue" +import { validateBlank, validateWindowFileNameInput } from "@/utils/extensions/arcoValidator" +import textInfo from "@/config/textInfo" +import projectApi from "@/api/testmanage/project" + +const useCrudInit = function () { + const crudRef = ref() + const crudOptions = ref({ + rowSelection: { showCheckedAll: true }, + api: projectApi.getPageList, + add: { show: true, api: projectApi.save, text: "新增项目" }, + edit: { show: true, api: projectApi.update, text: "编辑项目" }, + delete: { show: true, api: projectApi.delete }, + searchColNumber: 3, + tablePagination: false, + operationColumn: true, + operationWidth: 500, + showIndex: false, + showTools: false, + operationColumnWidth: 280, // 操作列宽度 + operationColumnAlign: "center", // 操作列对齐方式 + afterDelete(response: any) { + crudRef.value.tableRef.selectAll(false) + }, + // 处理弹窗的title + beforeOpenAdd: function () { + crudRef.value.crudFormRef.actionTitle = "项目" + return true + }, + beforeOpenEdit: function (record: any) { + crudRef.value.crudFormRef.actionTitle = record.ident + ":" + record.name + return true + }, + formOption: { + isFull: true, + layout: [ + { + formType: "grid", + cols: [ + { span: 8, formList: [{ dataIndex: "ident" }] }, + { span: 8, formList: [{ dataIndex: "name" }] }, + { span: 8, formList: [{ dataIndex: "engin_model" }] } + ] + }, + { + formType: "grid", + cols: [ + { span: 8, formList: [{ dataIndex: "section_system" }] }, + { span: 8, formList: [{ dataIndex: "sub_system" }] }, + { span: 8, formList: [{ dataIndex: "device" }] } + ] + }, + { + formType: "divider" + }, + { + formType: "grid", + cols: [ + { span: 6, formList: [{ dataIndex: "beginTime" }] }, + { span: 6, formList: [{ dataIndex: "endTime" }] }, + { span: 6, formList: [{ dataIndex: "duty_person" }] }, + { span: 6, formList: [{ dataIndex: "runtime" }] }, + { span: 12, formList: [{ dataIndex: "member" }] }, + { span: 6, formList: [{ dataIndex: "soft_type" }] }, + { span: 6, formList: [{ dataIndex: "devplant" }] }, + { span: 6, formList: [{ dataIndex: "abbreviation" }] }, + { span: 6, formList: [{ dataIndex: "quality_person" }] }, + { span: 6, formList: [{ dataIndex: "vise_person" }] }, + { span: 6, formList: [{ dataIndex: "config_person" }] } + ] + }, + { + formType: "grid", + cols: [ + { span: 6, formList: [{ dataIndex: "security_level" }] }, + { span: 6, formList: [{ dataIndex: "language" }] }, + { span: 12, formList: [{ dataIndex: "plant_type" }] } + ] + }, + { + formType: "grid", + cols: [{ span: 24, formList: [{ dataIndex: "test_level" }] }] + }, + { + formType: "grid", + cols: [{ span: 24, formList: [{ dataIndex: "report_type" }] }] + }, + { + formType: "grid", + cols: [{ span: 24, formList: [{ dataIndex: "standard" }] }] + }, + { + formType: "grid-tailwind", + customClass: ["mt-0"], + colNumber: 3, + cols: [ + { + formList: [ + { + formType: "card", + title: "委托方信息", + customClass: ["mt-3", "mb-5", "mx-1"], + formList: [ + { dataIndex: "entrust_unit" }, + { dataIndex: "entrust_contact" }, + { dataIndex: "entrust_contact_phone" }, + { dataIndex: "entrust_email" } + ] + } + ] + }, + { + formList: [ + { + formType: "card", + title: "研制方信息", + customClass: ["mt-3", "mb-5", "mx-1"], + formList: [ + { dataIndex: "dev_unit" }, + { dataIndex: "dev_contact" }, + { dataIndex: "dev_contact_phone" }, + { dataIndex: "dev_email" } + ] + } + ] + }, + { + formList: [ + { + formType: "card", + title: "测评中心信息", + customClass: ["mt-3", "mb-5", "mx-1"], + formList: [ + { dataIndex: "test_unit" }, + { dataIndex: "test_contact" }, + { dataIndex: "test_contact_phone" }, + { dataIndex: "test_email" } + ] + } + ] + } + ] + } + ] + } + }) + + // CRUD-CLOMNS + const crudColumns = ref([ + { + title: "项目标识", + align: "center", + width: 90, + sortable: { sortDirections: ["ascend"] }, + dataIndex: "ident", + search: true, + commonRules: [ + { required: true, message: "标识是必填" }, + { validator: validateBlank, message: "标识格式不正确" }, + // { validator: validateWindowFileNameInput } + ], + validateTrigger: "blur" + }, + { + title: "项目名称", + width: 110, + align: "center", + dataIndex: "name", + search: true, + commonRules: [{ required: true, message: "名称是必填" }] + }, + { title: "工程型号", dataIndex: "engin_model", hide: true }, + { title: "分系统", dataIndex: "section_system", hide: true }, + { title: "子系统", dataIndex: "sub_system", hide: true }, + { title: "设备名称", dataIndex: "device", hide: true }, + { + title: "开始日期", + dataIndex: "beginTime", + align: "center", + commonRules: [{ required: true, message: "开始时间必填" }], + formType: "date" + }, + { + title: "结束时间", + align: "center", + dataIndex: "endTime", + formType: "date", + extra: "注意:结束时间需要晚于最后一轮结束时间", + commonRules: [ + { + required: true, + message: "结束时间必填" + }, + { + validator: (value: any, validationCallbackFunction: any) => { + let beginTime = crudRef.value.getFormData().beginTime + value < beginTime ? validationCallbackFunction("开始时间必须小于等于结束时间") : null + } + } + ] + }, + // 这是只为了搜索的字段 + { + title: "时间范围", + hide: true, + dataIndex: "searchOnlyTimeRange", + search: true, + addDisplay: false, + editDisplay: false, + infoShow: false, + formType: "range" + }, + { + title: "责任人", + align: "center", + width: 70, + dataIndex: "duty_person", + search: true, + commonRules: [{ required: true, message: "责任人必选" }], + formType: "select", + dict: { url: "system/user/list", props: { label: "name", value: "name" }, translation: true } + }, + { + title: "运行环境", + dataIndex: "runtime", + hide: true, + search: false, + formType: "select", + dict: { name: "runtime", props: { label: "title", value: "key" } } + }, + { + title: "成员", + dataIndex: "member", + hide: true, + search: true, + formType: "select", + multiple: true, + dict: { url: "system/user/list", props: { label: "name", value: "name" }, translation: true }, + commonRules: [{ required: true, message: "成员至少选择一个" }] + }, + { + // 后台默认值1,可不填 + title: "软件类型", + dataIndex: "soft_type", + hide: true, + search: true, + formType: "select", + dict: { + data: [ + { label: "新研", value: 1 }, + { label: "改造", value: 2 }, + { label: "沿用", value: 3 } + ], + translation: true + }, + commonRules: [{ required: true, message: "软件类型必填" }] + }, + { + title: "开发环境", + dataIndex: "devplant", + hide: true, + search: false, + formType: "select", + dict: { name: "devplant", props: { label: "title", value: "key" } } + }, + { + title: "缩略语", + dataIndex: "abbreviation", + hide: true, + search: false, + formType: "select", + multiple: true, + dict: { url: "system/abbreviation/index", props: { label: "title", value: "title" }, translation: true } + }, + { + title: "质量保证", + dataIndex: "quality_person", + hide: true, + formType: "select", + dict: { url: "system/user/list", props: { label: "name", value: "name" }, translation: true }, + commonRules: [{ required: true, message: "至少选择一个质量保证员" }] + }, + { + title: "质量监督", + dataIndex: "vise_person", + hide: true, + formType: "select", + dict: { url: "system/user/list", props: { label: "name", value: "name" }, translation: true }, + commonRules: [{ required: true, message: "至少选择一个质量监督员" }] + }, + { + title: "配置管理", + dataIndex: "config_person", + hide: true, + formType: "select", + dict: { url: "system/user/list", props: { label: "name", value: "name" }, translation: true }, + commonRules: [{ required: true, message: "至少选择一个配置管理员" }] + }, + { + title: "关键等级", + dataIndex: "security_level", + addDefaultValue: "3", + hide: true, + commonRules: [{ required: true, message: "关键等级必填" }], + search: true, + formType: "radio", + dict: { name: "security_level", props: { label: "title", value: "key" } } + }, + { + title: "测试级别", + dataIndex: "test_level", + commonRules: [{ required: true, message: "请至少选择一个测试级别" }], + addDefaultValue: ["4"], + hide: true, + formType: "checkbox", + dict: { name: "test_level", props: { label: "title", value: "key" } } + }, + { + title: "平台类型", + dataIndex: "plant_type", + commonRules: [{ required: true, message: "请至少选择一个平台类型" }], + addDefaultValue: ["3"], + hide: true, + formType: "checkbox", + dict: { name: "plant_type", props: { label: "title", value: "key" } } + }, + { + title: "报告类型", + dataIndex: "report_type", + align: "center", + addDefaultValue: "9", + search: true, + commonRules: [{ required: true, message: "报告类型必填" }], + // 字典-report_type + formType: "radio", + dict: { name: "report_type", translation: true, props: { label: "title", value: "key" } } + }, + { + title: "编程语言", + dataIndex: "language", + addDefaultValue: ["1"], + commonRules: [{ required: true, message: "请至少选择一个" }], + hide: true, + formType: "select", + multiple: true, + dict: { name: "language", props: { label: "title", value: "key" } } + }, + { + title: "依据标准", + dataIndex: "standard", + addDefaultValue: ["1", "2", "3", "4", "9"], + commonRules: [{ required: true, message: "请至少选择一个" }], + hide: true, + multiple: true, + formType: "select", + dict: { name: "standard", props: { label: "title", value: "key" } } + }, + { + title: "单位", + dataIndex: "entrust_unit", + hide: true, + commonRules: [{ required: true, message: "单位必选" }], + formType: "select", + dict: { url: "system/contact/index", props: { label: "name", value: "name" }, translation: true } + }, + { + formType: "input", + title: "联系人", + dataIndex: "entrust_contact", + hide: true, + commonRules: [{ required: true, message: "联系人必填" }] + }, + { + formType: "input", + title: "联系电话", + maxLength: 11, + dataIndex: "entrust_contact_phone", + hide: true, + commonRules: [ + { required: true, message: "联系电话必填" }, + { + match: /^1[3456789]\d{9}$/, + message: "电话号码格式错误" + } + ] + }, + { + formType: "input", + title: "电子邮箱", + dataIndex: "entrust_email", + hide: true + }, + { + title: "单位", + dataIndex: "dev_unit", + hide: true, + commonRules: [{ required: true, message: "单位必选" }], + formType: "select", + dict: { url: "system/contact/index", props: { label: "name", value: "name" }, translation: true } + }, + { + formType: "input", + title: "联系人", + dataIndex: "dev_contact", + hide: true, + commonRules: [{ required: true, message: "联系人必填" }] + }, + { + formType: "input", + title: "联系电话", + maxLength: 11, + dataIndex: "dev_contact_phone", + hide: true, + commonRules: [ + { required: true, message: "联系电话必填" }, + { + match: /^1[3456789]\d{9}$/, + message: "电话号码格式错误" + } + ] + }, + { + formType: "input", + title: "电子邮箱", + dataIndex: "dev_email", + hide: true + }, + { + title: "单位", + dataIndex: "test_unit", + hide: true, + addDefaultValue: textInfo.testUnitAddDefaultText, + commonRules: [{ required: true, message: "单位必选" }], + formType: "select", + dict: { url: "system/contact/index", props: { label: "name", value: "name" }, translation: true } + }, + { + formType: "input", + title: "联系人", + dataIndex: "test_contact", + addDefaultValue: textInfo.testUnitContactPersonName, + hide: true, + commonRules: [{ required: true, message: "联系人必填" }] + }, + { + formType: "input", + title: "联系电话", + dataIndex: "test_contact_phone", + addDefaultValue: textInfo.testUnintContactPhoneNumber, + hide: true, + maxLength: 11, + commonRules: [ + { required: true, message: "联系电话必填" }, + { + match: /^1[3456789]\d{9}$/, + message: "电话号码格式错误" + } + ] + }, + { + formType: "input", + title: "电子邮箱", + dataIndex: "test_email", + hide: true + }, + { + title: "状态", + align: "center", + dataIndex: "step", + search: true, + formType: "radio", + addDefaultValue: "1", + addDisabled: true, + dict: { + name: "step", + translation: true, + props: { label: "title", value: "key" }, + tagColors: { 1: "green", 2: "blue", 3: "red", 4: "yellow" } + } + } + ]) + + return { crudRef, crudOptions, crudColumns } +} + +export default useCrudInit diff --git a/cdTMP/src/views/testmanage/projmanage/hooks/useEnterWorkPlant.ts b/cdTMP/src/views/testmanage/projmanage/hooks/useEnterWorkPlant.ts new file mode 100644 index 0000000..8fdca4a --- /dev/null +++ b/cdTMP/src/views/testmanage/projmanage/hooks/useEnterWorkPlant.ts @@ -0,0 +1,22 @@ +import { useRouter } from "vue-router" +/** + * 整个hook用于点击工作区按钮 + * @returns 返回进入工作区按钮事件处理函数 + */ +const useEnterWorkPlant = function () { + // global + const router = useRouter() + + // events + const enterWorkPlant = function (record: any) { + if (localStorage.getItem("tree_local_data")) { + localStorage.removeItem("tree_local_data") + } + router.push({ name: "project", query: record }) + } + return { + enterWorkPlant + } +} + +export default useEnterWorkPlant diff --git a/cdTMP/src/views/testmanage/projmanage/hooks/useGenerateSecond.ts b/cdTMP/src/views/testmanage/projmanage/hooks/useGenerateSecond.ts new file mode 100644 index 0000000..57a8c66 --- /dev/null +++ b/cdTMP/src/views/testmanage/projmanage/hooks/useGenerateSecond.ts @@ -0,0 +1,181 @@ +import { ref } from "vue" +import dgGenerateApi from "@/api/generate/dgGenerate" +import smGenerateApi from "@/api/generate/smGenerate" +import jlGenerateApi from "@/api/generate/jlGenerate" +import bgGenerateApi from "@/api/generate/bgGenerate" +import hsmGenerateApi from "@/api/generate/hsmGenerate" +import hjlGenerateApi from "@/api/generate/hjlGenerate" +import wtdGenerateApi from "@/api/generate/wtdGenerate" +import { Message } from "@arco-design/web-vue" + +const useGenerateSecond = function () { + // refs + const isGenerating = ref(false) // 在二级文档生成过程中禁用按钮点击 + // 用于显示是否正在加载(全部按钮各一个) + const isDgLoading = ref(false) + const isSmLoading = ref(false) + const isBgLoading = ref(false) + const isJlloading = ref(false) + const ishsmLoading = ref(false) + const ishjlLoading = ref(false) + const isWtdLoading = ref(false) + // events + // 记录生成二级文档 + const createJLItem = async (record: any) => { + isGenerating.value = true + isJlloading.value = true + await jlGenerateApi.createJLcaserecord({ id: record.id }).finally(() => { + isGenerating.value = false + isJlloading.value = false + }) + Message.success("记录-片段库生成成功,请查看output/jl文件夹") + } + // 说明生成二级文档 + const createSmItem = async (record: any) => { + isGenerating.value = true + isSmLoading.value = true + const id = record.id + await Promise.all([ + dgGenerateApi.createSoftComposition({ id }), // 生成测评对象 - 和大纲一样 + dgGenerateApi.createFuncList({ id }), // 生成被测软件功能 - 和大纲重复 + dgGenerateApi.createInterface({ id }), // 生成被测软件接口 - 和大纲重复 - 可能会删除 + dgGenerateApi.createPerformance({ id }), // 生成被测软件性能 - 和大纲重复 - 可能会删除 + dgGenerateApi.createBaseInformation({ id }), // 生成被测软件基本信息 - 和大纲重复 - 可能会删除 + dgGenerateApi.createYiju({ id }), // 生成标准类引用文档 - 和大纲重复 - 可能会删除 + smGenerateApi.createSMTechyiju({ id }), // 生成技术类引用文档列表 -> 在大纲基础上添加《测评大纲》 + dgGenerateApi.createEnvironment({ id }), // 生成软硬件环境(注意标题级别不一样,这个在最后处理) + smGenerateApi.createSMCaseList({ id }), // 生成用例全 + smGenerateApi.createSMCaseBreifList({ id }), // 生成用例列表-那个表格 + smGenerateApi.createSMTrack({ id }) // 生成说明追踪 + ]).finally(() => { + isGenerating.value = false + isSmLoading.value = false + }) + Message.success("说明-片段库生成成功,请查看output/sm文件夹") + } + // 大纲生成二级文档 + const createDgItem = async (e: any, record: any) => { + isGenerating.value = true + isDgLoading.value = true + const id = record.id + await Promise.all([ + dgGenerateApi.createTestDemand({ id }), // 生成第一轮测试项 + dgGenerateApi.createYiju({ id }), // 生成依据文件 + dgGenerateApi.createTechYiju({ id }), // 技术依据文件 + dgGenerateApi.createContact({ id }), // 生成联系人和方式 + dgGenerateApi.createTimeaddress({ id }), // 生成测评时间和地点 + dgGenerateApi.createFuncList({ id }), // 生成被测软件功能列表 + dgGenerateApi.createSoftComposition({ id }), // 生成测评对象-软件组成 + dgGenerateApi.createAdequacyEffectiveness({ id }), // 生成测试充分性(adequancy)和有效性(effectiveness)说明 + dgGenerateApi.createGroup({ id }), // 生成测评组织及分工 + dgGenerateApi.createGuarantee({ id }), // 生成测评保障 + dgGenerateApi.createAbbreviation({ id }), // 生成缩略语 + dgGenerateApi.createInterface({ id }), // 生成-被测软件接口 + dgGenerateApi.createPerformance({ id }), // 生成-被测软件性能 + dgGenerateApi.createBaseInformation({ id }), // 生成-被测软件基本信息 + dgGenerateApi.createRequirement({ id }), // 生成-测试总体要求 + dgGenerateApi.createYzComparison({ id }), // 生成-研总-测试项对照表 + dgGenerateApi.createXqComparison({ id }), // 生成-需求规格说明-测试项对照表 + dgGenerateApi.createFanXqComparison({ id }), // 生成-反向测试项-需求规格说明对照表 + dgGenerateApi.createCodeQuality({ id }), // 生成-代码质量度量分析表 + dgGenerateApi.createEnvironment({ id }), // 生成-软硬件环境 + dgGenerateApi.createMainTech({ id }) // 生成-主要战技指标 + ]).finally(() => { + isGenerating.value = false + isDgLoading.value = false + }) + Message.success("大纲-片段库文档生成成功,请查看output/dg文件夹") + } + // 报告生成二级文档 + const createBgItem = async (record: any) => { + isGenerating.value = true + isBgLoading.value = true + const id = record.id + await Promise.all([ + bgGenerateApi.deleteBGFiles({ id }), // 删除output/bg文件夹下文件 + bgGenerateApi.createBgTechYiju({ id }), + bgGenerateApi.createBgTimeaddress({ id }), + bgGenerateApi.createBgBaseInformation({ id }), + bgGenerateApi.createBgCompletionstatus({ id }), + bgGenerateApi.createBgSummary({ id }), + bgGenerateApi.createBgContentandresults1({ id }), + bgGenerateApi.createBgContentandresults2({ id }), + bgGenerateApi.createBgEffectAndAdquacy({ id }), + bgGenerateApi.createBgDemandEffective({ id }), + bgGenerateApi.createBgQualityEvaluate({ id }), + bgGenerateApi.createBgEntire({ id }), + bgGenerateApi.createBgYzxqTrack({ id }), + bgGenerateApi.createBgProblemsSummary({ id }) + ]).finally(() => { + isGenerating.value = false + isBgLoading.value = false + }) + Message.success("报告-片段库文档生成成功,请查看output/bg文件夹") + } + // 回归测试说明二级文档 + const createHsmItem = async (record: any) => { + const id = record.id + isGenerating.value = true + ishsmLoading.value = true + await Promise.all([ + hsmGenerateApi.deleteHSMFiles({ id }), // 先删除以前文件 + hsmGenerateApi.createBasicInfo({ id }), + hsmGenerateApi.createDocSummary({ id }), + hsmGenerateApi.createJstech({ id }), + hsmGenerateApi.createChangePart({ id }), + hsmGenerateApi.createHdemand({ id }), + hsmGenerateApi.createCaseListDesc({ id }), + hsmGenerateApi.createCaseList({ id }), + hsmGenerateApi.createTrack({ id }) + ]).finally(() => { + isGenerating.value = false + ishsmLoading.value = false + }) + Message.success("回归说明-片段库文档生成成功,请查看output/hsm文件夹") + } + // 回归测试记录二级文档 + const createHjlItem = async (record: any) => { + const id = record.id + isGenerating.value = true + ishjlLoading.value = true + await Promise.all([ + hjlGenerateApi.deleteHJLFiles({ id }), // 先调用删除文件夹里面文件 + hjlGenerateApi.createBasicInfo({ id }), + hjlGenerateApi.createCaseinfo({ id }) + ]).finally(() => { + isGenerating.value = false + ishjlLoading.value = false + }) + Message.success("回归记录-片段库文档生成成功,请查看output/hjl文件夹") + } + // 问题单二级文档 + const createWtdItem = async (record: any) => { + isGenerating.value = true + isWtdLoading.value = true + await wtdGenerateApi.createWtdTable({ id: record.id }).finally(() => { + isGenerating.value = false + isWtdLoading.value = false + }) + Message.success("问题单-片段库文档生成成功,请查看output/wtd文件夹") + } + + return { + isGenerating, + isDgLoading, + isSmLoading, + isBgLoading, + isJlloading, + ishsmLoading, + ishjlLoading, + isWtdLoading, + createJLItem, + createSmItem, + createDgItem, + createBgItem, + createHsmItem, + createHjlItem, + createWtdItem + } +} + +export default useGenerateSecond diff --git a/cdTMP/src/views/testmanage/projmanage/hooks/useSeitaiModal.ts b/cdTMP/src/views/testmanage/projmanage/hooks/useSeitaiModal.ts new file mode 100644 index 0000000..cd9deb5 --- /dev/null +++ b/cdTMP/src/views/testmanage/projmanage/hooks/useSeitaiModal.ts @@ -0,0 +1,70 @@ +import { ref } from "vue" +import hoosk from "./hooks" +import seitaiGenerateApi from "@/api/generate/seitaiGenerate" + +const useSeitaiModal = function () { + // refs + const visible = ref(false) + const isComplete = ref(false) + const ptext = ref("测评大纲") + // events + const handleModalConfirmClick = () => { + visible.value = false + } + // 生成文档 + // ~~~~~~~~测试说明生成文档~~~~~~~~ + const createSeitaiShuoming = async (record: any) => { + ptext.value = "测试说明" + hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createShuomingSeiTai, record.id) + } + + // ~~~~~~~~测试大纲生成文档~~~~~~~~ + const createSeitaiDagang = async (record: any) => { + // 根据一系列文档生成大纲 - 这里有进度条组件、a-modal组件 + // 1.打开进度条组件 + ptext.value = "测评大纲" + hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createDagangSeiTai, record.id) + } + // ~~~~~~~~记录生成文档~~~~~~~~ + const createSeitaiJilu = async (record: any) => { + ptext.value = "测试记录" + hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createJiluSeiTai, record.id) + } + + // ~~~~~~~~报告生成文档~~~~~~~~ + const createSeitaiBaogao = async (record: any) => { + ptext.value = "测评报告" + hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createBgDocument, record.id) + } + // ~~~~~~~~回归测试说明~~~~~~~~ + const createSeitaiHsm = async (record: any) => { + ptext.value = "回归测试说明" + hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createHsmDocument, record.id) + } + // ~~~~~~~~回归测试记录~~~~~~~~ + const createSeitaiHjl = async (record: any) => { + ptext.value = "回归测试记录" + hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createHjlDocument, record.id) + } + // ~~~~~~~~问题单~~~~~~~~ + const createSeitaiWtd = async (record: any) => { + ptext.value = "问题单" + hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createWtdDocument, record.id) + } + + return { + visible, + isComplete, + ptext, + handleModalConfirmClick, + createSeitaiShuoming, + createSeitaiDagang, + createSeitaiJilu, + createSeitaiBaogao, + createSeitaiHsm, + createSeitaiHjl, + createSeitaiWtd + } +} + +export default useSeitaiModal diff --git a/cdTMP/src/views/testmanage/projmanage/index.vue b/cdTMP/src/views/testmanage/projmanage/index.vue index 1bee8d5..5b34ae8 100644 --- a/cdTMP/src/views/testmanage/projmanage/index.vue +++ b/cdTMP/src/views/testmanage/projmanage/index.vue @@ -107,232 +107,53 @@ > +