merge魏保林代码

This commit is contained in:
2025-12-09 09:14:01 +08:00
parent 8a8f361464
commit 32d046b60b
13 changed files with 1062 additions and 741 deletions

674
package-lock.json generated
View File

@@ -8,6 +8,7 @@
"name": "spdm",
"version": "0.0.0",
"dependencies": {
"@antv/g6": "^4.8.24",
"@antv/x6": "^2.18.1",
"@antv/x6-plugin-clipboard": "^2.1.6",
"@antv/x6-plugin-dnd": "^2.1.1",
@@ -20,13 +21,15 @@
"@antv/x6-vue-shape": "^2.1.2",
"@element-plus/icons-vue": "^2.3.2",
"axios": "^1.11.0",
"chinese-workday": "^1.10.0",
"dayjs": "^1.11.18",
"dhtmlx-gantt": "^8.0.6",
"echarts": "^6.0.0",
"element-plus": "^2.11.7",
"html2canvas": "^1.4.1",
"jspdf": "^3.0.3",
"lodash": "^4.17.21",
"moment": "^2.30.1",
"lodash-es": "^4.17.21",
"mitt": "^3.0.1",
"monaco-editor": "^0.54.0",
"pinia": "^3.0.3",
"sass-embedded": "^1.90.0",
@@ -36,7 +39,6 @@
"vue-i18n": "11",
"vue-router": "^4.5.1",
"vuedraggable": "^4.1.0",
"vuex": "^4.1.0",
"vxe-pc-ui": "^4.9.13",
"vxe-table": "^4.16.0",
"xlsx": "^0.18.5"
@@ -53,7 +55,7 @@
"eslint-plugin-vue": "~10.3.0",
"jiti": "^2.4.2",
"npm-run-all2": "^8.0.4",
"prettier": "3.6.2",
"prettier": "^3.7.3",
"typescript": "~5.8.0",
"vite": "^7.0.6",
"vite-plugin-vue-devtools": "^8.0.0",
@@ -77,6 +79,353 @@
"node": ">=6.0.0"
}
},
"node_modules/@ant-design/colors": {
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-4.0.5.tgz",
"integrity": "sha512-3mnuX2prnWOWvpFTS2WH2LoouWlOgtnIpc6IarWN6GOzzLF8dW/U8UctuvIPhoboETehZfJ61XP+CGakBEPJ3Q==",
"license": "MIT",
"dependencies": {
"tinycolor2": "^1.4.1"
}
},
"node_modules/@antv/algorithm": {
"version": "0.1.26",
"resolved": "https://registry.npmjs.org/@antv/algorithm/-/algorithm-0.1.26.tgz",
"integrity": "sha512-DVhcFSQ8YQnMNW34Mk8BSsfc61iC1sAnmcfYoXTAshYHuU50p/6b7x3QYaGctDNKWGvi1ub7mPcSY0bK+aN0qg==",
"license": "MIT",
"dependencies": {
"@antv/util": "^2.0.13",
"tslib": "^2.0.0"
}
},
"node_modules/@antv/dom-util": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/@antv/dom-util/-/dom-util-2.0.4.tgz",
"integrity": "sha512-2shXUl504fKwt82T3GkuT4Uoc6p9qjCKnJ8gXGLSW4T1W37dqf9AV28aCfoVPHp2BUXpSsB+PAJX2rG/jLHsLQ==",
"license": "MIT",
"dependencies": {
"tslib": "^2.0.3"
}
},
"node_modules/@antv/event-emitter": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/@antv/event-emitter/-/event-emitter-0.1.3.tgz",
"integrity": "sha512-4ddpsiHN9Pd4UIlWuKVK1C4IiZIdbwQvy9i7DUSI3xNJ89FPUFt8lxDYj8GzzfdllV0NkJTRxnG+FvLk0llidg==",
"license": "MIT"
},
"node_modules/@antv/g-base": {
"version": "0.5.16",
"resolved": "https://registry.npmjs.org/@antv/g-base/-/g-base-0.5.16.tgz",
"integrity": "sha512-jP06wggTubDPHXoKwFg3/f1lyxBX9ywwN3E/HG74Nd7DXqOXQis8tsIWW+O6dS/h9vyuXLd1/wDWkMMm3ZzXdg==",
"license": "ISC",
"dependencies": {
"@antv/event-emitter": "^0.1.1",
"@antv/g-math": "^0.1.9",
"@antv/matrix-util": "^3.1.0-beta.1",
"@antv/path-util": "~2.0.5",
"@antv/util": "~2.0.13",
"@types/d3-timer": "^2.0.0",
"d3-ease": "^1.0.5",
"d3-interpolate": "^3.0.1",
"d3-timer": "^1.0.9",
"detect-browser": "^5.1.0",
"tslib": "^2.0.3"
}
},
"node_modules/@antv/g-canvas": {
"version": "0.5.17",
"resolved": "https://registry.npmjs.org/@antv/g-canvas/-/g-canvas-0.5.17.tgz",
"integrity": "sha512-sXYJMWTOlb/Ycb6sTKu00LcJqInXJY4t99+kSM40u2OfqrXYmaXDjHR7D2V0roMkbK/QWiWS9UnEidCR1VtMOA==",
"license": "ISC",
"dependencies": {
"@antv/g-base": "^0.5.12",
"@antv/g-math": "^0.1.9",
"@antv/matrix-util": "^3.1.0-beta.1",
"@antv/path-util": "~2.0.5",
"@antv/util": "~2.0.0",
"gl-matrix": "^3.0.0",
"tslib": "^2.0.3"
}
},
"node_modules/@antv/g-math": {
"version": "0.1.9",
"resolved": "https://registry.npmjs.org/@antv/g-math/-/g-math-0.1.9.tgz",
"integrity": "sha512-KHMSfPfZ5XHM1PZnG42Q2gxXfOitYveNTA7L61lR6mhZ8Y/aExsYmHqaKBsSarU0z+6WLrl9C07PQJZaw0uljQ==",
"license": "ISC",
"dependencies": {
"@antv/util": "~2.0.0",
"gl-matrix": "^3.0.0"
}
},
"node_modules/@antv/g-svg": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/@antv/g-svg/-/g-svg-0.5.7.tgz",
"integrity": "sha512-jUbWoPgr4YNsOat2Y/rGAouNQYGpw4R0cvlN0YafwOyacFFYy2zC8RslNd6KkPhhR3XHNSqJOuCYZj/YmLUwYw==",
"license": "ISC",
"dependencies": {
"@antv/g-base": "^0.5.12",
"@antv/g-math": "^0.1.9",
"@antv/util": "~2.0.0",
"detect-browser": "^5.0.0",
"tslib": "^2.0.3"
}
},
"node_modules/@antv/g-webgpu": {
"version": "0.7.2",
"resolved": "https://registry.npmjs.org/@antv/g-webgpu/-/g-webgpu-0.7.2.tgz",
"integrity": "sha512-kw+oYGsdvj5qeUfy5DPb/jztZBV+2fmqBd3Vv8NlKatfBmv8AirYX/CCW74AUSdWm99rEiLyxFB1VdRZ6b/wnQ==",
"license": "ISC",
"dependencies": {
"@antv/g-webgpu-core": "^0.7.2",
"@antv/g-webgpu-engine": "^0.7.2",
"gl-matrix": "^3.1.0",
"gl-vec2": "^1.3.0",
"lodash": "^4.17.15"
}
},
"node_modules/@antv/g-webgpu-core": {
"version": "0.7.2",
"resolved": "https://registry.npmjs.org/@antv/g-webgpu-core/-/g-webgpu-core-0.7.2.tgz",
"integrity": "sha512-xUMmop7f3Rs34zFYKXLqHhDR1CQTeDl/7vI7Sn3X/73BqJc3X3HIIRvm83Fg2CjVACaOzw4WeLRXNaOCp9fz9w==",
"license": "ISC",
"dependencies": {
"eventemitter3": "^4.0.0",
"gl-matrix": "^3.1.0",
"lodash": "^4.17.15",
"probe.gl": "^3.1.1"
}
},
"node_modules/@antv/g-webgpu-engine": {
"version": "0.7.2",
"resolved": "https://registry.npmjs.org/@antv/g-webgpu-engine/-/g-webgpu-engine-0.7.2.tgz",
"integrity": "sha512-lx8Y93IW2cnJvdoDRKyMmTdYqSC1pOmF0nyG3PGGyA0NI9vBYVgO0KTF6hkyWjdTWVq7XDZyf/h8CJridLh3lg==",
"license": "ISC",
"dependencies": {
"@antv/g-webgpu-core": "^0.7.2",
"gl-matrix": "^3.1.0",
"lodash": "^4.17.15",
"regl": "^1.3.11"
}
},
"node_modules/@antv/g6": {
"version": "4.8.25",
"resolved": "https://registry.npmjs.org/@antv/g6/-/g6-4.8.25.tgz",
"integrity": "sha512-8mdTnN9QMVNQZtlXmftL8fvRsa4L+GajK58Zp51wyrGLFyjeop8R0QSkCALW45DWP2TaQeZAPtjhQUU/wf5hIg==",
"license": "MIT",
"dependencies": {
"@antv/g6-pc": "0.8.25"
}
},
"node_modules/@antv/g6-core": {
"version": "0.8.24",
"resolved": "https://registry.npmjs.org/@antv/g6-core/-/g6-core-0.8.24.tgz",
"integrity": "sha512-rgI3dArAD8uoSz2+skS4ctN4x/Of33ivTIKaEYYvClxgkLZWVz9zvocy+5AWcVPBHZsAXkZcdh9zndIoWY/33A==",
"license": "MIT",
"dependencies": {
"@antv/algorithm": "^0.1.26",
"@antv/dom-util": "^2.0.1",
"@antv/event-emitter": "~0.1.0",
"@antv/g-base": "^0.5.1",
"@antv/g-math": "^0.1.1",
"@antv/matrix-util": "^3.1.0-beta.3",
"@antv/path-util": "^2.0.3",
"@antv/util": "~2.0.5",
"ml-matrix": "^6.5.0",
"tslib": "^2.6.2"
}
},
"node_modules/@antv/g6-core/node_modules/tslib": {
"version": "2.8.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
"license": "0BSD"
},
"node_modules/@antv/g6-element": {
"version": "0.8.25",
"resolved": "https://registry.npmjs.org/@antv/g6-element/-/g6-element-0.8.25.tgz",
"integrity": "sha512-bPsI+dS9rdp80O/XyV0iy6QiusyOgO/diCIsGQuLHs6rBqjLtDA5yu9JDo49mPA3JblJV0MYjbgL8Exou7Ecqw==",
"license": "MIT",
"dependencies": {
"@antv/g-base": "^0.5.1",
"@antv/g6-core": "0.8.24",
"@antv/util": "~2.0.5",
"tslib": "^2.6.2"
},
"peerDependencies": {
"@antv/g6": "4.8.25"
}
},
"node_modules/@antv/g6-element/node_modules/tslib": {
"version": "2.8.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
"license": "0BSD"
},
"node_modules/@antv/g6-pc": {
"version": "0.8.25",
"resolved": "https://registry.npmjs.org/@antv/g6-pc/-/g6-pc-0.8.25.tgz",
"integrity": "sha512-HZ2QyDbgsUQpQBFqrA8Zcvm/rAKN4n3I7XEeWCODZgyhQ8kz2f3qdzrRXDPmMyclexi0JF9DarCs8a2rzhV5YA==",
"license": "MIT",
"dependencies": {
"@ant-design/colors": "^4.0.5",
"@antv/algorithm": "^0.1.26",
"@antv/dom-util": "^2.0.1",
"@antv/event-emitter": "~0.1.0",
"@antv/g-base": "^0.5.1",
"@antv/g-canvas": "^0.5.2",
"@antv/g-math": "^0.1.1",
"@antv/g-svg": "^0.5.1",
"@antv/g6-core": "0.8.24",
"@antv/g6-element": "0.8.25",
"@antv/g6-plugin": "0.8.25",
"@antv/hierarchy": "^0.6.10",
"@antv/layout": "^0.3.0",
"@antv/matrix-util": "^3.1.0-beta.3",
"@antv/path-util": "^2.0.3",
"@antv/util": "~2.0.5",
"color": "^3.1.3",
"d3-force": "^2.0.1",
"dagre": "^0.8.5",
"insert-css": "^2.0.0",
"ml-matrix": "^6.5.0",
"tslib": "^2.6.2"
}
},
"node_modules/@antv/g6-pc/node_modules/tslib": {
"version": "2.8.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
"license": "0BSD"
},
"node_modules/@antv/g6-plugin": {
"version": "0.8.25",
"resolved": "https://registry.npmjs.org/@antv/g6-plugin/-/g6-plugin-0.8.25.tgz",
"integrity": "sha512-TAincRgNzrZNGBt1TvzfQV0Ob6OO3+WCcTrCZb4PzRoOessAiMsNm0S7x+7NFm30DJVC8Ud2M7M2V9DjhVd8Wg==",
"license": "MIT",
"dependencies": {
"@antv/dom-util": "^2.0.2",
"@antv/g-base": "^0.5.1",
"@antv/g-canvas": "^0.5.2",
"@antv/g-svg": "^0.5.2",
"@antv/g6-core": "0.8.24",
"@antv/g6-element": "0.8.25",
"@antv/matrix-util": "^3.1.0-beta.3",
"@antv/path-util": "^2.0.3",
"@antv/scale": "^0.3.4",
"@antv/util": "^2.0.9",
"insert-css": "^2.0.0"
},
"peerDependencies": {
"@antv/g6": "4.8.25"
}
},
"node_modules/@antv/graphlib": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@antv/graphlib/-/graphlib-1.2.0.tgz",
"integrity": "sha512-hhJOMThec51nU4Fe5p/viLlNIL71uDEgYFzKPajWjr2715SFG1HAgiP6AVylIeqBcAZ04u3Lw7usjl/TuI5RuQ==",
"license": "MIT"
},
"node_modules/@antv/hierarchy": {
"version": "0.6.14",
"resolved": "https://registry.npmjs.org/@antv/hierarchy/-/hierarchy-0.6.14.tgz",
"integrity": "sha512-V3uknf7bhynOqQDw2sg+9r9DwZ9pc6k/EcqyTFdfXB1+ydr7urisP0MipIuimucvQKN+Qkd+d6w601r1UIroqQ==",
"license": "MIT"
},
"node_modules/@antv/layout": {
"version": "0.3.25",
"resolved": "https://registry.npmjs.org/@antv/layout/-/layout-0.3.25.tgz",
"integrity": "sha512-d29Aw1PXoAavMRZy7iTB9L5rMBeChFEX0BJ9ELP4TI35ySdCu07YbmPo9ju9OH/6sG2/NB3o85Ayxrre3iwX/g==",
"license": "MIT",
"dependencies": {
"@antv/g-webgpu": "0.7.2",
"@antv/graphlib": "^1.0.0",
"@antv/util": "^3.3.2",
"d3-force": "^2.1.1",
"d3-quadtree": "^2.0.0",
"dagre-compound": "^0.0.11",
"ml-matrix": "6.5.0"
}
},
"node_modules/@antv/layout/node_modules/@antv/util": {
"version": "3.3.11",
"resolved": "https://registry.npmjs.org/@antv/util/-/util-3.3.11.tgz",
"integrity": "sha512-FII08DFM4ABh2q5rPYdr0hMtKXRgeZazvXaFYCs7J7uTcWDHUhczab2qOCJLNDugoj8jFag1djb7wS9ehaRYBg==",
"license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.3",
"gl-matrix": "^3.3.0",
"tslib": "^2.3.1"
}
},
"node_modules/@antv/layout/node_modules/ml-matrix": {
"version": "6.5.0",
"resolved": "https://registry.npmjs.org/ml-matrix/-/ml-matrix-6.5.0.tgz",
"integrity": "sha512-sms732Dge+rs5dU4mnjE0oqLWm1WujvR2fr38LgUHRG2cjXjWlO3WJupLYaSz3++2iYr0UrGDK72OAivr3J8dg==",
"license": "MIT",
"dependencies": {
"ml-array-rescale": "^1.3.1"
}
},
"node_modules/@antv/layout/node_modules/tslib": {
"version": "2.8.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
"license": "0BSD"
},
"node_modules/@antv/matrix-util": {
"version": "3.1.0-beta.3",
"resolved": "https://registry.npmjs.org/@antv/matrix-util/-/matrix-util-3.1.0-beta.3.tgz",
"integrity": "sha512-W2R6Za3A6CmG51Y/4jZUM/tFgYSq7vTqJL1VD9dKrvwxS4sE0ZcXINtkp55CdyBwJ6Cwm8pfoRpnD4FnHahN0A==",
"license": "ISC",
"dependencies": {
"@antv/util": "^2.0.9",
"gl-matrix": "^3.4.3",
"tslib": "^2.0.3"
}
},
"node_modules/@antv/path-util": {
"version": "2.0.15",
"resolved": "https://registry.npmjs.org/@antv/path-util/-/path-util-2.0.15.tgz",
"integrity": "sha512-R2VLZ5C8PLPtr3VciNyxtjKqJ0XlANzpFb5sE9GE61UQqSRuSVSzIakMxjEPrpqbgc+s+y8i+fmc89Snu7qbNw==",
"license": "ISC",
"dependencies": {
"@antv/matrix-util": "^3.0.4",
"@antv/util": "^2.0.9",
"tslib": "^2.0.3"
}
},
"node_modules/@antv/path-util/node_modules/@antv/matrix-util": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/@antv/matrix-util/-/matrix-util-3.0.4.tgz",
"integrity": "sha512-BAPyu6dUliHcQ7fm9hZSGKqkwcjEDVLVAstlHULLvcMZvANHeLXgHEgV7JqcAV/GIhIz8aZChIlzM1ZboiXpYQ==",
"license": "ISC",
"dependencies": {
"@antv/util": "^2.0.9",
"gl-matrix": "^3.3.0",
"tslib": "^2.0.3"
}
},
"node_modules/@antv/scale": {
"version": "0.3.18",
"resolved": "https://registry.npmjs.org/@antv/scale/-/scale-0.3.18.tgz",
"integrity": "sha512-GHwE6Lo7S/Q5fgaLPaCsW+CH+3zl4aXpnN1skOiEY0Ue9/u+s2EySv6aDXYkAqs//i0uilMDD/0/4n8caX9U9w==",
"license": "MIT",
"dependencies": {
"@antv/util": "~2.0.3",
"fecha": "~4.2.0",
"tslib": "^2.0.0"
}
},
"node_modules/@antv/util": {
"version": "2.0.17",
"resolved": "https://registry.npmjs.org/@antv/util/-/util-2.0.17.tgz",
"integrity": "sha512-o6I9hi5CIUvLGDhth0RxNSFDRwXeywmt6ExR4+RmVAzIi48ps6HUy+svxOCayvrPBN37uE6TAc2KDofRo0nK9Q==",
"license": "ISC",
"dependencies": {
"csstype": "^3.0.8",
"tslib": "^2.0.3"
}
},
"node_modules/@antv/x6": {
"version": "2.18.1",
"resolved": "https://registry.npmmirror.com/@antv/x6/-/x6-2.18.1.tgz",
@@ -1210,6 +1559,34 @@
"url": "https://opencollective.com/popperjs"
}
},
"node_modules/@probe.gl/env": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/@probe.gl/env/-/env-3.6.0.tgz",
"integrity": "sha512-4tTZYUg/8BICC3Yyb9rOeoKeijKbZHRXBEKObrfPmX4sQmYB15ZOUpoVBhAyJkOYVAM8EkPci6Uw5dLCwx2BEQ==",
"license": "MIT",
"dependencies": {
"@babel/runtime": "^7.0.0"
}
},
"node_modules/@probe.gl/log": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/@probe.gl/log/-/log-3.6.0.tgz",
"integrity": "sha512-hjpyenpEvOdowgZ1qMeCJxfRD4JkKdlXz0RC14m42Un62NtOT+GpWyKA4LssT0+xyLULCByRAtG2fzZorpIAcA==",
"license": "MIT",
"dependencies": {
"@babel/runtime": "^7.0.0",
"@probe.gl/env": "3.6.0"
}
},
"node_modules/@probe.gl/stats": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/@probe.gl/stats/-/stats-3.6.0.tgz",
"integrity": "sha512-JdALQXB44OP4kUBN/UrQgzbJe4qokbVF4Y8lkIA8iVCFnjVowWIgkD/z/0QO65yELT54tTrtepw1jScjKB+rhQ==",
"license": "MIT",
"dependencies": {
"@babel/runtime": "^7.0.0"
}
},
"node_modules/@rolldown/pluginutils": {
"version": "1.0.0-beta.29",
"resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.29.tgz",
@@ -1258,6 +1635,12 @@
"dev": true,
"license": "MIT"
},
"node_modules/@types/d3-timer": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-2.0.3.tgz",
"integrity": "sha512-jhAJzaanK5LqyLQ50jJNIrB8fjL9gwWZTgYjevPvkDLMU+kTAZkYsobI59nYoeSrH1PucuyJEi247Pb90t6XUg==",
"license": "MIT"
},
"node_modules/@types/estree": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
@@ -2446,6 +2829,12 @@
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
"node_modules/chinese-workday": {
"version": "1.10.1",
"resolved": "https://registry.npmjs.org/chinese-workday/-/chinese-workday-1.10.1.tgz",
"integrity": "sha512-bSWPZuDjxr1h5NmmoJsXIvf7BwOnE5BR7+uxi7f+vMiMPPlGZpSErMheYwnLGwOZO5CIhiGvIrnYzNhXG0OBxQ==",
"license": "MIT"
},
"node_modules/chokidar": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
@@ -2473,6 +2862,16 @@
"node": ">=0.8"
}
},
"node_modules/color": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz",
"integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==",
"license": "MIT",
"dependencies": {
"color-convert": "^1.9.3",
"color-string": "^1.6.0"
}
},
"node_modules/color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
@@ -2490,7 +2889,31 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true,
"license": "MIT"
},
"node_modules/color-string": {
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
"integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
"license": "MIT",
"dependencies": {
"color-name": "^1.0.0",
"simple-swizzle": "^0.2.2"
}
},
"node_modules/color/node_modules/color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"license": "MIT",
"dependencies": {
"color-name": "1.1.3"
}
},
"node_modules/color/node_modules/color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
"license": "MIT"
},
"node_modules/colorjs.io": {
@@ -2622,6 +3045,84 @@
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
"license": "MIT"
},
"node_modules/d3-color": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz",
"integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==",
"license": "ISC",
"engines": {
"node": ">=12"
}
},
"node_modules/d3-dispatch": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-2.0.0.tgz",
"integrity": "sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA==",
"license": "BSD-3-Clause"
},
"node_modules/d3-ease": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.7.tgz",
"integrity": "sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ==",
"license": "BSD-3-Clause"
},
"node_modules/d3-force": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/d3-force/-/d3-force-2.1.1.tgz",
"integrity": "sha512-nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew==",
"license": "BSD-3-Clause",
"dependencies": {
"d3-dispatch": "1 - 2",
"d3-quadtree": "1 - 2",
"d3-timer": "1 - 2"
}
},
"node_modules/d3-interpolate": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz",
"integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==",
"license": "ISC",
"dependencies": {
"d3-color": "1 - 3"
},
"engines": {
"node": ">=12"
}
},
"node_modules/d3-quadtree": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-2.0.0.tgz",
"integrity": "sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw==",
"license": "BSD-3-Clause"
},
"node_modules/d3-timer": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz",
"integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==",
"license": "BSD-3-Clause"
},
"node_modules/dagre": {
"version": "0.8.5",
"resolved": "https://registry.npmjs.org/dagre/-/dagre-0.8.5.tgz",
"integrity": "sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==",
"license": "MIT",
"dependencies": {
"graphlib": "^2.1.8",
"lodash": "^4.17.15"
}
},
"node_modules/dagre-compound": {
"version": "0.0.11",
"resolved": "https://registry.npmjs.org/dagre-compound/-/dagre-compound-0.0.11.tgz",
"integrity": "sha512-UrSgRP9LtOZCYb9e5doolZXpc7xayyszgyOs7uakTK4n4KsLegLVTRRtq01GpQd/iZjYw5fWMapx9ed+c80MAQ==",
"license": "MIT",
"engines": {
"node": ">=6.0.0"
},
"peerDependencies": {
"dagre": "^0.8.5"
}
},
"node_modules/dayjs": {
"version": "1.11.18",
"resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.18.tgz",
@@ -2712,6 +3213,12 @@
"node": ">=0.4.0"
}
},
"node_modules/detect-browser": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz",
"integrity": "sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==",
"license": "MIT"
},
"node_modules/detect-libc": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
@@ -2727,6 +3234,12 @@
"node": ">=0.10"
}
},
"node_modules/dhtmlx-gantt": {
"version": "8.0.11",
"resolved": "https://registry.npmjs.org/dhtmlx-gantt/-/dhtmlx-gantt-8.0.11.tgz",
"integrity": "sha512-bNC5WBncKCmkyW5y7NNPB7NuEv7GCw7Z3ZdjJPQgPc9nySl/EOhuJCb86vPP6rpqMWeymGR2t3nrKMLtEyBPeg==",
"license": "GPL-2.0"
},
"node_modules/dom-zindex": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/dom-zindex/-/dom-zindex-1.0.6.tgz",
@@ -3230,6 +3743,12 @@
"node": ">=0.10.0"
}
},
"node_modules/eventemitter3": {
"version": "4.0.7",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
"integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
"license": "MIT"
},
"node_modules/execa": {
"version": "9.6.0",
"resolved": "https://registry.npmjs.org/execa/-/execa-9.6.0.tgz",
@@ -3261,7 +3780,6 @@
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
"dev": true,
"license": "MIT"
},
"node_modules/fast-diff": {
@@ -3336,6 +3854,12 @@
"reusify": "^1.0.4"
}
},
"node_modules/fecha": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz",
"integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==",
"license": "MIT"
},
"node_modules/fflate": {
"version": "0.8.2",
"resolved": "https://registry.npmmirror.com/fflate/-/fflate-0.8.2.tgz",
@@ -3540,6 +4064,18 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/gl-matrix": {
"version": "3.4.4",
"resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.4.tgz",
"integrity": "sha512-latSnyDNt/8zYUB6VIJ6PCh2jBjJX6gnDsoCZ7LyW7GkqrD51EWwa9qCoGixj8YqBtETQK/xY7OmpTF8xz1DdQ==",
"license": "MIT"
},
"node_modules/gl-vec2": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/gl-vec2/-/gl-vec2-1.3.0.tgz",
"integrity": "sha512-YiqaAuNsheWmUV0Sa8k94kBB0D6RWjwZztyO+trEYS8KzJ6OQB/4686gdrf59wld4hHFIvaxynO3nRxpk1Ij/A==",
"license": "zlib"
},
"node_modules/glob-parent": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
@@ -3585,6 +4121,15 @@
"dev": true,
"license": "MIT"
},
"node_modules/graphlib": {
"version": "2.1.8",
"resolved": "https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz",
"integrity": "sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==",
"license": "MIT",
"dependencies": {
"lodash": "^4.17.15"
}
},
"node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
@@ -3721,12 +4266,30 @@
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
"license": "ISC"
},
"node_modules/insert-css": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/insert-css/-/insert-css-2.0.0.tgz",
"integrity": "sha512-xGq5ISgcUP5cvGkS2MMFLtPDBtrtQPSFfC6gA6U8wHKqfjTIMZLZNxOItQnoSjdOzlXOLU/yD32RKC4SvjNbtA==",
"license": "MIT"
},
"node_modules/iobuffer": {
"version": "5.4.0",
"resolved": "https://registry.npmmirror.com/iobuffer/-/iobuffer-5.4.0.tgz",
"integrity": "sha512-DRebOWuqDvxunfkNJAlc3IzWIPD5xVxwUNbHr7xKB8E6aLJxIPfNX3CoMJghcFjpv6RWQsrcJbghtEwSPoJqMA==",
"license": "MIT"
},
"node_modules/is-any-array": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-any-array/-/is-any-array-2.0.1.tgz",
"integrity": "sha512-UtilS7hLRu++wb/WBAw9bNuP1Eg04Ivn1vERJck8zJthEvXCBEBpGR/33u/xLKWEQf95803oalHrVDptcAvFdQ==",
"license": "MIT"
},
"node_modules/is-arrayish": {
"version": "0.3.4",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.4.tgz",
"integrity": "sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==",
"license": "MIT"
},
"node_modules/is-docker": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz",
@@ -4172,13 +4735,43 @@
"integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==",
"license": "MIT"
},
"node_modules/moment": {
"version": "2.30.1",
"resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
"integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",
"node_modules/ml-array-max": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/ml-array-max/-/ml-array-max-1.2.4.tgz",
"integrity": "sha512-BlEeg80jI0tW6WaPyGxf5Sa4sqvcyY6lbSn5Vcv44lp1I2GR6AWojfUvLnGTNsIXrZ8uqWmo8VcG1WpkI2ONMQ==",
"license": "MIT",
"engines": {
"node": "*"
"dependencies": {
"is-any-array": "^2.0.0"
}
},
"node_modules/ml-array-min": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/ml-array-min/-/ml-array-min-1.2.3.tgz",
"integrity": "sha512-VcZ5f3VZ1iihtrGvgfh/q0XlMobG6GQ8FsNyQXD3T+IlstDv85g8kfV0xUG1QPRO/t21aukaJowDzMTc7j5V6Q==",
"license": "MIT",
"dependencies": {
"is-any-array": "^2.0.0"
}
},
"node_modules/ml-array-rescale": {
"version": "1.3.7",
"resolved": "https://registry.npmjs.org/ml-array-rescale/-/ml-array-rescale-1.3.7.tgz",
"integrity": "sha512-48NGChTouvEo9KBctDfHC3udWnQKNKEWN0ziELvY3KG25GR5cA8K8wNVzracsqSW1QEkAXjTNx+ycgAv06/1mQ==",
"license": "MIT",
"dependencies": {
"is-any-array": "^2.0.0",
"ml-array-max": "^1.2.4",
"ml-array-min": "^1.2.3"
}
},
"node_modules/ml-matrix": {
"version": "6.12.1",
"resolved": "https://registry.npmjs.org/ml-matrix/-/ml-matrix-6.12.1.tgz",
"integrity": "sha512-TJ+8eOFdp+INvzR4zAuwBQJznDUfktMtOB6g/hUcGh3rcyjxbz4Te57Pgri8Q9bhSQ7Zys4IYOGhFdnlgeB6Lw==",
"license": "MIT",
"dependencies": {
"is-any-array": "^2.0.1",
"ml-array-rescale": "^1.3.7"
}
},
"node_modules/monaco-editor": {
@@ -4667,9 +5260,9 @@
}
},
"node_modules/prettier": {
"version": "3.6.2",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz",
"integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==",
"version": "3.7.4",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.7.4.tgz",
"integrity": "sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==",
"dev": true,
"license": "MIT",
"bin": {
@@ -4711,6 +5304,18 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/probe.gl": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/probe.gl/-/probe.gl-3.6.0.tgz",
"integrity": "sha512-19JydJWI7+DtR4feV+pu4Mn1I5TAc0xojuxVgZdXIyfmTLfUaFnk4OloWK1bKbPtkgGKLr2lnbnCXmpZEcEp9g==",
"license": "MIT",
"dependencies": {
"@babel/runtime": "^7.0.0",
"@probe.gl/env": "3.6.0",
"@probe.gl/log": "3.6.0",
"@probe.gl/stats": "3.6.0"
}
},
"node_modules/proxy-from-env": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
@@ -4809,6 +5414,12 @@
"license": "MIT",
"optional": true
},
"node_modules/regl": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/regl/-/regl-1.7.0.tgz",
"integrity": "sha512-bEAtp/qrtKucxXSJkD4ebopFZYP0q1+3Vb2WECWv/T8yQEgKxDxJ7ztO285tAMaYZVR6mM1GgI6CCn8FROtL1w==",
"license": "MIT"
},
"node_modules/resolve-from": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
@@ -5111,6 +5722,15 @@
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/simple-swizzle": {
"version": "0.2.4",
"resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.4.tgz",
"integrity": "sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==",
"license": "MIT",
"dependencies": {
"is-arrayish": "^0.3.1"
}
},
"node_modules/sirv": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.1.tgz",
@@ -5322,6 +5942,12 @@
"utrie": "^1.0.2"
}
},
"node_modules/tinycolor2": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz",
"integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==",
"license": "MIT"
},
"node_modules/tinyglobby": {
"version": "0.2.14",
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz",
@@ -6000,24 +6626,6 @@
"vue": "^3.0.1"
}
},
"node_modules/vuex": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/vuex/-/vuex-4.1.0.tgz",
"integrity": "sha512-hmV6UerDrPcgbSy9ORAtNXDr9M4wlNP4pEFKye4ujJF8oqgFFuxDCdOLS3eNoRTtq5O3hoBDh9Doj1bQMYHRbQ==",
"license": "MIT",
"dependencies": {
"@vue/devtools-api": "^6.0.0-beta.11"
},
"peerDependencies": {
"vue": "^3.2.0"
}
},
"node_modules/vuex/node_modules/@vue/devtools-api": {
"version": "6.6.4",
"resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz",
"integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==",
"license": "MIT"
},
"node_modules/vxe-pc-ui": {
"version": "4.9.13",
"resolved": "https://registry.npmjs.org/vxe-pc-ui/-/vxe-pc-ui-4.9.13.tgz",

View File

@@ -11,3 +11,6 @@ export const queryProjectListApi = (params: any) => {
return post(`${PREFIX}project/list`, params);
};
export const exportTaskTreeApi = (params: any) => {
return post(`${PREFIX}project/exportTaskTree`, params);
};

View File

@@ -202,5 +202,15 @@ onMounted(async () => {
padding: 0;
height: auto;
margin-bottom: var(--margin-medium);
.left-box {
display: flex;
align-items: center;
width: 500px;
span {
display: inline-block;
flex-shrink: 0;
margin-right: var(--margin-medium) ;
}
}
}
</style>

View File

@@ -11,6 +11,7 @@
v-bind="$attrs"
>
<template #leftOptions>
<slot name="otherLeftOptions"></slot>
<div v-if="!readonly">
<el-button
:icon="Plus"
@@ -31,7 +32,6 @@
>{{ $t('工况库.指标') }}</el-button
>
</div>
<slot name="otherLeftOptions"></slot>
</template>
<!-- <template #eMemberList="{row}">
{{ disposeMemberList(row,'eMemberList') }}

View File

@@ -215,10 +215,10 @@ const formatNodeAndEdge = (edgeArr: any[], nodeArr: any[]) => {
};
edgeArr.forEach((edge: any) => {
if (node.id === edge.source) {
formatItem['incomingFlows'] = [edge.id];
formatItem['outgoingFlows'] = [edge.id];
}
if (node.id === edge.target) {
formatItem['outgoingFlows'] = [edge.id];
formatItem['incomingFlows'] = [edge.id];
}
});
formatItem['extensionElements'] = { executeConfig: {} };

View File

@@ -22,7 +22,7 @@
.left-box {
display: flex;
align-items: center;
width: 300px;
width: 500px;
span {
margin-right: var(--margin-small);
display:inline-block;

View File

@@ -15,7 +15,7 @@
:showDisabled="dialogType === 'upgrade'"
>
<template #form-templateVersion>
<div>
<div class="template-version">
{{ dialogType === FLOW_OPERATION_TYPE.CREATE?'V1.0':
dialogType === FLOW_OPERATION_TYPE.EDIT?templateVersion:
dialogType === FLOW_OPERATION_TYPE.UPGRADE?templateVersion:'V1.0'
@@ -179,3 +179,8 @@ defineExpose({
setOptionsFun,
});
</script>
<style lang="scss" scoped>
.template-version {
color: #0366ff;
}
</style>

View File

@@ -27,12 +27,15 @@
<div v-for="flow in tableData" :key="flow.id" class="flow-card">
<div class="flow-background">
<span
:class="flow.approveType === FLOW_APPROVE_STATUS_ENUM.NOT_APPROVED?
'approve-box no-approve':
flow.approveType === FLOW_APPROVE_STATUS_ENUM.APPROVING?
'approve-box approving':
flow.approveType === FLOW_APPROVE_STATUS_ENUM.APPROVED?
'approve-box approve-success':'approve-refuse'"
:class="
flow.approveType === FLOW_APPROVE_STATUS_ENUM.NOT_APPROVED
? 'approve-box no-approve'
: flow.approveType === FLOW_APPROVE_STATUS_ENUM.APPROVING
? 'approve-box approving'
: flow.approveType === FLOW_APPROVE_STATUS_ENUM.APPROVED
? 'approve-box approve-success'
: 'approve-refuse'
"
>
{{ FLOW_APPROVE_STATUS.O[flow.approveType] }}
</span>
@@ -40,12 +43,23 @@
<div class="btn-box">...</div>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item @click="openDiaFun(FLOW_OPERATION_TYPE.EDIT, flow)">重命名</el-dropdown-item>
<el-dropdown-item @click="goFlowDetailFun(flow.uuid)">编辑</el-dropdown-item>
<el-dropdown-item v-if="flow.templateStatus === FLOW_USE_STATUS.USED" @click="changeFlowStatusMessageBox(flow.uuid,FLOW_USE_STATUS.STOP)">
<el-dropdown-item @click="openDiaFun(FLOW_OPERATION_TYPE.EDIT, flow)"
>重命名</el-dropdown-item
>
<el-dropdown-item @click="goFlowDetailFun(flow.uuid)"
>编辑</el-dropdown-item
>
<el-dropdown-item
v-if="flow.templateStatus === FLOW_USE_STATUS.USED"
@click="changeFlowStatusMessageBox(flow.uuid, FLOW_USE_STATUS.STOP)"
>
<span class="flow-delete-btn">弃用</span>
</el-dropdown-item>
<el-dropdown-item v-if="flow.templateStatus === FLOW_USE_STATUS.STOP" @click="changeFlowStatusMessageBox(flow.uuid,FLOW_USE_STATUS.USED)">启用</el-dropdown-item>
<el-dropdown-item
v-if="flow.templateStatus === FLOW_USE_STATUS.STOP"
@click="changeFlowStatusMessageBox(flow.uuid, FLOW_USE_STATUS.USED)"
>启用</el-dropdown-item
>
<el-dropdown-item @click="deleteFlowMessageBox(flow.uuid)">
<span class="flow-delete-btn">删除</span>
</el-dropdown-item>
@@ -56,7 +70,9 @@
<div class="btn">
<el-button type="primary" @click="copyFlowFun(flow)">复制模板</el-button>
</div>
<el-button @click="viewFlowFun(flow)"> &nbsp;&nbsp;&nbsp;&nbsp;预览&nbsp;&nbsp;&nbsp; </el-button>
<el-button @click="viewFlowFun(flow)">
&nbsp;&nbsp;&nbsp;&nbsp;预览&nbsp;&nbsp;&nbsp;
</el-button>
</div>
</div>
<div class="flow-info-box">
@@ -65,9 +81,9 @@
<span class="name">{{ flow.templateName }}</span>
</div>
<div class="user-time">
<span class="user">{{ flow.createName }}</span>
<span class="user">{{ flow.creatorName }}</span>
<span class="line">|</span>
<span class="time">更新{{ flow.updateTime.slice(0,10) }}</span>
<span class="time">更新{{ flow.updateTime.slice(0, 10) }}</span>
</div>
</div>
</div>
@@ -75,29 +91,48 @@
</div>
</template>
<template #leftOptions>
<el-button v-if="flowType !== FLOW_TEMPLATE_PUBLIC_STATUS.PUBLIC" icon="plus" @click="openDiaFun(FLOW_OPERATION_TYPE.CREATE)" type="primary">
<el-button
v-if="flowType !== FLOW_TEMPLATE_PUBLIC_STATUS.PUBLIC"
icon="plus"
@click="openDiaFun(FLOW_OPERATION_TYPE.CREATE)"
type="primary"
>
{{ $t('项目列表.新增') }}
</el-button>
</template>
<template #templateVersion="{ row }">
<span class="template-version">
{{ row.templateVersion }}
</span>
</template>
<template #templateStatus="{ row }">
<span
:class="row.templateStatus === FLOW_USE_STATUS.USED?
'dot dot-success':'dot dot-refuse'"
>.</span>{{ FLOW_USE_TYPE.O[row.templateStatus] }}
:class="
row.templateStatus === FLOW_USE_STATUS.USED ? 'dot dot-success' : 'dot dot-refuse'
"
>.</span
>{{ FLOW_USE_TYPE.O[row.templateStatus] }}
</template>
<template #approveType="{ row }">
<span
:class="row.approveType === FLOW_APPROVE_STATUS_ENUM.NOT_APPROVED?
'dot dot-in-precess':
row.approveType === FLOW_APPROVE_STATUS_ENUM.APPROVING?
'dot dot-approving approving':
row.approveType === FLOW_APPROVE_STATUS_ENUM.APPROVED?
'dot dot-success':'dot dot-refuse'"
>.</span>
:class="
row.approveType === FLOW_APPROVE_STATUS_ENUM.NOT_APPROVED
? 'dot dot-in-precess'
: row.approveType === FLOW_APPROVE_STATUS_ENUM.APPROVING
? 'dot dot-approving approving'
: row.approveType === FLOW_APPROVE_STATUS_ENUM.APPROVED
? 'dot dot-success'
: 'dot dot-refuse'
"
>.</span
>
<span
:class="row.approveType !== FLOW_APPROVE_STATUS_ENUM.NOT_APPROVED?'approving-span':''"
:class="
row.approveType !== FLOW_APPROVE_STATUS_ENUM.NOT_APPROVED ? 'approving-span' : ''
"
@click="seeApproveDetailFun(row)"
>{{ FLOW_APPROVE_STATUS.O[row.approveType] }}</span>
>{{ FLOW_APPROVE_STATUS.O[row.approveType] }}</span
>
</template>
<!-- <template #tableActions="{ row }">
<div class="gl-table-actions">
@@ -154,9 +189,18 @@ import BaseTable from '@/components/common/table/baseTable.vue';
import { useDict } from '@/utils/useDict';
import addDialog from './components/addDialog.vue';
import flowCreate from '@/views/simulation/creation/index.vue';
import { deleteFlowTemplateDraftApi, queryFlowTemplateApi, updateFlowTemplateUseStatusApi } from '@/api/capability/flow';
import {
deleteFlowTemplateDraftApi,
queryFlowTemplateApi,
updateFlowTemplateUseStatusApi,
} from '@/api/capability/flow';
import { ElMessage, ElMessageBox } from 'element-plus';
import { FLOW_APPROVE_STATUS_ENUM, FLOW_OPERATION_TYPE, FLOW_TEMPLATE_PUBLIC_STATUS, FLOW_USE_STATUS } from '@/utils/enum/flow';
import {
FLOW_APPROVE_STATUS_ENUM,
FLOW_OPERATION_TYPE,
FLOW_TEMPLATE_PUBLIC_STATUS,
FLOW_USE_STATUS,
} from '@/utils/enum/flow';
import flowViewDialog from '@/components/common/flow/flowViewDialog.vue';
import ApprovalProcess from '@/components/common/approvalProcess/index.vue';
@@ -208,14 +252,17 @@ const actionList = ref<any>([
openDiaFun(FLOW_OPERATION_TYPE.EDIT, row);
},
hide: (row: any) => {
return row.approveType === FLOW_APPROVE_STATUS_ENUM.APPROVING || row.approveType === FLOW_APPROVE_STATUS_ENUM.APPROVED;
return (
row.approveType === FLOW_APPROVE_STATUS_ENUM.APPROVING ||
row.approveType === FLOW_APPROVE_STATUS_ENUM.APPROVED
);
},
},
{
title: '升版',
type: 'primary',
click: (row: any) => {
upgradeFlowFun( row);
upgradeFlowFun(row);
},
hide: (row: any) => {
return row.approveType !== FLOW_APPROVE_STATUS_ENUM.APPROVED;
@@ -225,7 +272,7 @@ const actionList = ref<any>([
title: '复制',
type: 'primary',
click: (row: any) => {
copyFlowFun( row);
copyFlowFun(row);
},
},
{
@@ -237,7 +284,10 @@ const actionList = ref<any>([
changeFlowStatus(row.uuid, FLOW_USE_STATUS.STOP);
},
hide: (row: any) => {
return !(row.templateStatus === FLOW_USE_STATUS.USED && row.approveType === FLOW_APPROVE_STATUS_ENUM.APPROVED);
return !(
row.templateStatus === FLOW_USE_STATUS.USED &&
row.approveType === FLOW_APPROVE_STATUS_ENUM.APPROVED
);
},
},
{
@@ -249,7 +299,10 @@ const actionList = ref<any>([
changeFlowStatus(row.uuid, FLOW_USE_STATUS.USED);
},
hide: (row: any) => {
return !(row.templateStatus === FLOW_USE_STATUS.STOP && row.approveType === FLOW_APPROVE_STATUS_ENUM.APPROVED);
return !(
row.templateStatus === FLOW_USE_STATUS.STOP &&
row.approveType === FLOW_APPROVE_STATUS_ENUM.APPROVED
);
},
},
{
@@ -285,17 +338,16 @@ const openDiaFun = (tag: FLOW_OPERATION_TYPE, row?: any) => {
// }, 1000);
}
}
};
const seeApproveDetailFun = (row:any) => {
const seeApproveDetailFun = (row: any) => {
if (row.approveType !== FLOW_APPROVE_STATUS_ENUM.NOT_APPROVED) {
approveDetailVisible.value = true;
approveId.value = row.approveFlowId;
}
};
const addOrEditFun = ({ type, uuid }:any) => {
const addOrEditFun = ({ type, uuid }: any) => {
tableRef.value.resetFun();
flowUuid.value = uuid;
if (type === 'next') {
@@ -304,8 +356,8 @@ const addOrEditFun = ({ type, uuid }:any) => {
}
};
const deleteFlowFun = async (uuid:string) => {
const res:any = await deleteFlowTemplateDraftApi({ uuid });
const deleteFlowFun = async (uuid: string) => {
const res: any = await deleteFlowTemplateDraftApi({ uuid });
if (res.code === 200) {
tableRef.value.resetFun();
} else {
@@ -313,24 +365,20 @@ const deleteFlowFun = async (uuid:string) => {
}
};
const deleteFlowMessageBox = (uuid:string) => {
ElMessageBox.confirm(
'确认删除流程?',
{
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning',
}
)
const deleteFlowMessageBox = (uuid: string) => {
ElMessageBox.confirm('确认删除流程?', {
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning',
})
.then(() => {
deleteFlowFun(uuid);
})
.catch(() => {
});
.catch(() => {});
};
const changeFlowStatus = async (uuid:string, type:number) => {
const res:any = await updateFlowTemplateUseStatusApi({ uuid, status: type });
const changeFlowStatus = async (uuid: string, type: number) => {
const res: any = await updateFlowTemplateUseStatusApi({ uuid, status: type });
if (res.code === 200) {
if (type === FLOW_USE_STATUS.USED) {
ElMessage.success('启用流程成功!');
@@ -343,20 +391,16 @@ const changeFlowStatus = async (uuid:string, type:number) => {
}
};
const changeFlowStatusMessageBox = (uuid:string, type:number) => {
ElMessageBox.confirm(
`确认${type === FLOW_USE_STATUS.STOP ? '弃用' : '启用'}流程?`,
{
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning',
}
)
const changeFlowStatusMessageBox = (uuid: string, type: number) => {
ElMessageBox.confirm(`确认${type === FLOW_USE_STATUS.STOP ? '弃用' : '启用'}流程?`, {
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning',
})
.then(() => {
changeFlowStatus(uuid, type);
})
.catch(() => {
});
.catch(() => {});
};
const flowUuid = ref();
@@ -377,21 +421,23 @@ const copyFlowContent = reactive({
viewContent: '',
templateContent: '',
});
const copyFlowFun = (flow:any) => {
const copyFlowFun = (flow: any) => {
showDialog.value = true;
dialogType.value = FLOW_OPERATION_TYPE.COPY;
copyFlowContent.viewContent = flow.viewContent;
copyFlowContent.templateContent = flow.templateContent;
addDiaRef.value.setEditForm({ });
addDiaRef.value.setEditForm({
templateName: flow.templateName,
templateType: flow.templateType,
comment: flow.comment,
});
};
const upgradeFlowFun = (flow:any) => {
const upgradeFlowFun = (flow: any) => {
showDialog.value = true;
dialogType.value = FLOW_OPERATION_TYPE.UPGRADE;
addDiaRef.value.setEditForm({ ...flow });
templateVersion.value = flow.templateVersion;
};
const flowType = ref<string>(FLOW_TEMPLATE_PUBLIC_STATUS.PRIVATE);
@@ -401,22 +447,19 @@ const searchFun = () => {
console.log('searchFun', searchParams);
flowType.value = searchParams.type;
};
</script>
<style lang="scss">
.flow-card-el-dropdown {
position: absolute;
top: var(--margin-tiny);
right: var(--margin-tiny);
position: absolute;
top: var(--margin-tiny);
right: var(--margin-tiny);
}
.el-dropdown-menu:hover ~ .btn-box {
visibility: visible;
transition: all 0.3s ease-in-out;
opacity: 1;
}
</style>
<style lang="scss" scoped>
@@ -515,9 +558,9 @@ const searchFun = () => {
.flow-background {
width: 100%;
height: 200px;
background-color: #F7F9FA;
background-color: #f7f9fa;
background-image: url(@/assets/imgs/dragFlow/default-img.svg);
background-size: 100px ;
background-size: 100px;
background-repeat: no-repeat;
background-position: center;
position: relative;
@@ -525,7 +568,7 @@ const searchFun = () => {
align-items: center;
justify-content: center;
&:hover {
background-color: #F2F2F2;
background-color: #f2f2f2;
background-image: none;
.approve-box {
visibility: hidden;
@@ -570,12 +613,12 @@ const searchFun = () => {
cursor: pointer;
visibility: hidden;
transition: all 0.3s ease;
opacity: 0;
border-radius: var(--border-radius-normal);
opacity: 0;
border-radius: var(--border-radius-normal);
}
.use-btn {
visibility: hidden;
opacity: 0;
opacity: 0;
transition: all 0.3s ease;
width: 100px;
.btn {
@@ -655,19 +698,18 @@ const searchFun = () => {
color: #64748b;
}
.no-approve {
color: #0366FF;
color: #0366ff;
}
.approving {
color: #ED7B2F;
color: #ed7b2f;
}
.approve-success {
color: #00A870;
color: #00a870;
}
.approve-refuse {
color: #E34D59 ;
color: #e34d59;
}
.template-version {
color: #0366ff;
}
</style>

View File

@@ -21,6 +21,18 @@
},
},
]"
:exportApi="exportTaskTreeApi"
exportFileName="项目列表"
:exportDict="{
analyseSoftware: 'ANALYSIS_SOFTWARE',
performanceType: 'PERFORMANCE_TYPE',
unit: 'PERFORMANCE_UNIT',
bCapacity: 'SIMULATION_CAPACITY',
department: 'DEPARTMENT_LIST',
section: 'SECTION_LIST',
group: 'GROUP_LIST',
}"
:exportParams="exportParams"
>
<template #otherLeftOptions>
<el-form label-width="60">
@@ -109,13 +121,15 @@
</div>
</template>
<script lang="ts" setup>
import { onMounted, ref } from 'vue';
import { computed, onMounted, ref } from 'vue';
import { getTaskTreeFun } from './projectApi';
import { NODE_TYPE } from '@/utils/enum/node';
import { getChildrenNodeListApi, modifyNodeTaskPerformanceApi } from '@/api/project/node';
import taskDetail from './taskDetail.vue';
import loadCaseTable from '@/components/common/treeCaseTable/loadCaseTable.vue';
import { getTagMapList } from '@/utils/task';
import { exportTaskTreeApi } from '@/api/project/project';
import { getIdMap } from './project';
const props = defineProps<{
projectUuid: string;
@@ -123,6 +137,13 @@ const props = defineProps<{
const emits = defineEmits(['getPhaseList']);
const exportParams = computed(() => {
return {
idMap: getIdMap(props.projectUuid, phaseUuid.value),
tagMap: getTagMapList(),
};
});
const tableList = ref<any[]>([]);
const tableLoading = ref(false);
const phaseUuid = ref<any>('');

View File

@@ -73,3 +73,6 @@
width: 140px;
}
}
.other-button {
margin-right: var(--margin-medium);
}

View File

@@ -199,6 +199,11 @@
:editMode="true"
:belongProject="true"
>
<template #otherLeftOptions>
<el-button class="other-button" @click="showBatchUpdateTaskDialogFun"
>批量修改</el-button
>
</template>
</loadCaseTable>
<!-- <loadcase-pro-table
ref="rightTableRef"
@@ -228,6 +233,26 @@
</div>
</template>
</Dialog>
<Dialog
v-model="batchUpdateTaskDialogVisible"
diaTitle="批量修改任务"
width="400"
@close="closeBatchUpdateDialogFun"
show-footer
>
<TableForm
@change="tableFormChangeFun"
ref="tableFormRef"
tableName="BATCH_UPDATE_PROJECT_TASK"
/>
<template #footer>
<div>
<el-button @click="closeBatchUpdateDialogFun">取消</el-button>
<el-button @click="batchUpdateTaskConfirmFun">确认</el-button>
</div>
</template>
</Dialog>
</template>
<script lang="ts" setup>
import Dialog from '@/components/common/dialog/index.vue';
@@ -256,6 +281,7 @@ import { getUserTenantId } from '@/utils/user';
import ProjectSelect from '@/components/common/projectSelect/index.vue';
import { TABLE_NAME } from '@/utils/enum/tableName';
import { taskPoolDictOptions } from '@/utils/project';
import TableForm from '@/components/common/table/tableForm.vue';
const props = defineProps<{
showTaskDialog: boolean;
@@ -553,7 +579,7 @@ const mergeArrays = async (
'rightNew:',
newObj
);
await getRightVxeRef().updateRow(rightList[foundIndex], newObj);
await getRightVxeRef().setRow(rightList[foundIndex], newObj);
// 如果nodeName存在递归处理children
if (leftList[index].children && Array.isArray(leftList[index].children)) {
@@ -967,85 +993,60 @@ const uploadExcelFileFun = async (file: any) => {
leftExcelLoading.value = false;
};
setTimeout(() => {
// rightTableData.value = [
// {
// id: 101,
// fakeId: '右侧学科A',
// uuid: 'r-uuid-101',
// nodeName: '右侧学科A',
// englishName: 'disciplineA',
// nodeType: 'discipline',
// nodeCode: 'A1',
// description: '右侧学科A描述',
// type: 'discipline',
// children: [
// {
// id: 102,
// fakeId: '右侧节点A1',
// uuid: 'r-uuid-102',
// nodeName: '右侧节点A1',
// englishName: 'groupA1',
// nodeType: 'group',
// nodeCode: 'A1-1',
// description: '右侧节点A1描述',
// children: [
// {
// id: 103,
// fakeId: '右侧任务A1-1',
// uuid: 'r-uuid-103',
// nodeName: '右侧任务A1-1',
// englishName: 'taskA1-1',
// nodeType: 'task',
// nodeCode: 'A1-1-1',
// description: '右侧任务A1-1描述',
// startTime: '',
// endTime: '',
// workRate: 10,
// flowTemplateName: '',
// standard: '',
// userName: '',
// children: [
// {
// id: 104,
// fakeId: '右侧性能A1-1-1',
// uuid: 'r-uuid-104',
// nodeName: '右侧性能A1-1-1',
// englishName: 'performanceA1-1-1',
// nodeType: 'performance',
// description: '右侧性能A1-1-1描述',
// hightValue: '10',
// },
// ],
// },
// ],
// },
// {
// id: 103,
// fakeId: '右侧节点A2',
// uuid: 'r-uuid-102222',
// nodeName: '右侧节点A2',
// englishName: 'groupA1',
// nodeType: 'group',
// nodeCode: 'A1-1',
// description: '右侧节点A1描述',
// },
// ],
// },
// {
// id: 201,
// fakeId: '右侧学科B',
// uuid: 'r-uuid-201',
// nodeName: '右侧学科B',
// englishName: 'disciplineB',
// nodeType: 'discipline',
// nodeCode: 'B1',
// description: '右侧学科B描述',
// children: [],
// },
// ];
// leftTableLoading.value = false;
}, 1000);
const batchUpdateTaskDialogVisible = ref(false);
const showBatchUpdateTaskDialogFun = () => {
const selectTasks = getRightVxeRef().getCheckboxRecords();
console.log('selectTasks', selectTasks);
if (selectTasks.length < 2) {
ElMessage.warning('勾选多个任务节点才能进行批量修改!');
return;
}
for (let index = 0; index < selectTasks[index].length; index++) {
if (selectTasks[index].nodeType !== NODE_TYPE.TASK) {
ElMessage.warning('只能勾选任务节点进行批量修改!');
return;
}
}
batchUpdateTaskDialogVisible.value = true;
nextTick(() => {
tableFormRef.value.resetFun();
});
};
const tableFormRef = ref();
const batchUpdateTaskConfirmFun = async () => {
console.log('tableFormRef.value.validateFun()', await tableFormRef.value.validateFun());
const updateData = tableFormRef.value.getFormDataFun();
console.log('updateData', updateData);
const selectTasks = getRightVxeRef().getCheckboxRecords();
for (let index = 0; index < selectTasks.length; index++) {
const newObj = {
...selectTasks[index],
pMemberList: updateData.pMemberListArr,
eMemberList: updateData.eMemberListArr,
beginTime: updateData.planTime[0] ? updateData.planTime[0] : '',
endTime: updateData.planTime[1] ? updateData.planTime[1] : '',
};
console.log('newObj', newObj);
await getRightVxeRef().setRow(selectTasks[index], newObj);
}
console.log('getRightVxeRef().getCheckboxRecords()', getRightVxeRef().getCheckboxRecords());
batchUpdateTaskDialogVisible.value = false;
};
const closeBatchUpdateDialogFun = () => {
batchUpdateTaskDialogVisible.value = false;
};
const tableFormChangeFun = (data: any) => {
if (data.key === 'eMemberIds') {
data.data.eMemberListArr = data.val;
}
if (data.key === 'pMemberIds') {
data.data.pMemberListArr = data.val;
}
};
watch(
() => props.showTaskDialog,

View File

@@ -49,6 +49,7 @@
</template>
<template #libName="{ row }">
<el-select
v-show="row.insertMode === 'lib'"
class="loadcase-lib"
v-model="row.currentLoadcaseLib"
:props="{ label: 'poolName', value: 'value' }"
@@ -70,6 +71,7 @@
</template>
<template #libVersion="{ row }">
<el-select
v-show="row.insertMode === 'lib'"
class="version"
v-model="row.currentLoadcaseLibVersion"
:props="{ label: 'poolVersion', value: 'value' }"
@@ -86,7 +88,7 @@
</el-select>
</template>
<template #selectTask="{ row }">
<div class="line-content">
<div class="line-content" v-show="row.insertMode === 'lib'">
<span class="required-tag" v-if="row.insertMode === 'lib'">*</span>
<el-select-v2
v-model="row.chooseTaskList"
@@ -108,7 +110,7 @@
</div>
</template>
<template #taskName="{ row }">
<div class="line-content">
<div class="line-content" v-show="row.insertMode === 'custom'">
<span class="required-tag" v-if="row.insertMode === 'custom'">*</span>
<el-input v-model="row.taskName"></el-input>
</div>

692
yarn.lock

File diff suppressed because it is too large Load Diff