Compare commits

...

2 Commits

Author SHA1 Message Date
07d3614d9c 更新后端传tenantid 2026-02-26 23:43:02 +08:00
f8437d15b4 改组织架构不合理地方 2026-02-26 20:56:55 +08:00
7 changed files with 534 additions and 243 deletions

View File

@ -5,6 +5,9 @@ import { onMounted } from 'vue';
// 使用 auth store 获取用户信息 // 使用 auth store 获取用户信息
const authStore = useAuthStore(); const authStore = useAuthStore();
// 获取租户ID
const tenantId = (authStore.user as any)?.tenant_id;
// 获取用户信息 // 获取用户信息
const userInfo = authStore.user; const userInfo = authStore.user;
if (userInfo && userInfo.id) { if (userInfo && userInfo.id) {

352
package-lock.json generated
View File

@ -693,9 +693,9 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/@rollup/rollup-android-arm-eabi": { "node_modules/@rollup/rollup-android-arm-eabi": {
"version": "4.57.1", "version": "4.59.0",
"resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.57.1.tgz", "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.59.0.tgz",
"integrity": "sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg==", "integrity": "sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==",
"cpu": [ "cpu": [
"arm" "arm"
], ],
@ -707,9 +707,9 @@
] ]
}, },
"node_modules/@rollup/rollup-android-arm64": { "node_modules/@rollup/rollup-android-arm64": {
"version": "4.57.1", "version": "4.59.0",
"resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.57.1.tgz", "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.59.0.tgz",
"integrity": "sha512-dQaAddCY9YgkFHZcFNS/606Exo8vcLHwArFZ7vxXq4rigo2bb494/xKMMwRRQW6ug7Js6yXmBZhSBRuBvCCQ3w==", "integrity": "sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -721,9 +721,9 @@
] ]
}, },
"node_modules/@rollup/rollup-darwin-arm64": { "node_modules/@rollup/rollup-darwin-arm64": {
"version": "4.57.1", "version": "4.59.0",
"resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.57.1.tgz", "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.59.0.tgz",
"integrity": "sha512-crNPrwJOrRxagUYeMn/DZwqN88SDmwaJ8Cvi/TN1HnWBU7GwknckyosC2gd0IqYRsHDEnXf328o9/HC6OkPgOg==", "integrity": "sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -735,9 +735,9 @@
] ]
}, },
"node_modules/@rollup/rollup-darwin-x64": { "node_modules/@rollup/rollup-darwin-x64": {
"version": "4.57.1", "version": "4.59.0",
"resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.57.1.tgz", "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.59.0.tgz",
"integrity": "sha512-Ji8g8ChVbKrhFtig5QBV7iMaJrGtpHelkB3lsaKzadFBe58gmjfGXAOfI5FV0lYMH8wiqsxKQ1C9B0YTRXVy4w==", "integrity": "sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -749,9 +749,9 @@
] ]
}, },
"node_modules/@rollup/rollup-freebsd-arm64": { "node_modules/@rollup/rollup-freebsd-arm64": {
"version": "4.57.1", "version": "4.59.0",
"resolved": "https://registry.npmmirror.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.57.1.tgz", "resolved": "https://registry.npmmirror.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.59.0.tgz",
"integrity": "sha512-R+/WwhsjmwodAcz65guCGFRkMb4gKWTcIeLy60JJQbXrJ97BOXHxnkPFrP+YwFlaS0m+uWJTstrUA9o+UchFug==", "integrity": "sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -763,9 +763,9 @@
] ]
}, },
"node_modules/@rollup/rollup-freebsd-x64": { "node_modules/@rollup/rollup-freebsd-x64": {
"version": "4.57.1", "version": "4.59.0",
"resolved": "https://registry.npmmirror.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.57.1.tgz", "resolved": "https://registry.npmmirror.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.59.0.tgz",
"integrity": "sha512-IEQTCHeiTOnAUC3IDQdzRAGj3jOAYNr9kBguI7MQAAZK3caezRrg0GxAb6Hchg4lxdZEI5Oq3iov/w/hnFWY9Q==", "integrity": "sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -777,9 +777,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-arm-gnueabihf": { "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
"version": "4.57.1", "version": "4.59.0",
"resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.57.1.tgz", "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.59.0.tgz",
"integrity": "sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw==", "integrity": "sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==",
"cpu": [ "cpu": [
"arm" "arm"
], ],
@ -791,9 +791,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-arm-musleabihf": { "node_modules/@rollup/rollup-linux-arm-musleabihf": {
"version": "4.57.1", "version": "4.59.0",
"resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.57.1.tgz", "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.59.0.tgz",
"integrity": "sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw==", "integrity": "sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==",
"cpu": [ "cpu": [
"arm" "arm"
], ],
@ -805,9 +805,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-arm64-gnu": { "node_modules/@rollup/rollup-linux-arm64-gnu": {
"version": "4.57.1", "version": "4.59.0",
"resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.57.1.tgz", "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.59.0.tgz",
"integrity": "sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g==", "integrity": "sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -819,9 +819,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-arm64-musl": { "node_modules/@rollup/rollup-linux-arm64-musl": {
"version": "4.57.1", "version": "4.59.0",
"resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.57.1.tgz", "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.59.0.tgz",
"integrity": "sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q==", "integrity": "sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -833,9 +833,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-loong64-gnu": { "node_modules/@rollup/rollup-linux-loong64-gnu": {
"version": "4.57.1", "version": "4.59.0",
"resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.57.1.tgz", "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.59.0.tgz",
"integrity": "sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA==", "integrity": "sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==",
"cpu": [ "cpu": [
"loong64" "loong64"
], ],
@ -847,9 +847,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-loong64-musl": { "node_modules/@rollup/rollup-linux-loong64-musl": {
"version": "4.57.1", "version": "4.59.0",
"resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.57.1.tgz", "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.59.0.tgz",
"integrity": "sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw==", "integrity": "sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==",
"cpu": [ "cpu": [
"loong64" "loong64"
], ],
@ -861,9 +861,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-ppc64-gnu": { "node_modules/@rollup/rollup-linux-ppc64-gnu": {
"version": "4.57.1", "version": "4.59.0",
"resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.57.1.tgz", "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.59.0.tgz",
"integrity": "sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w==", "integrity": "sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==",
"cpu": [ "cpu": [
"ppc64" "ppc64"
], ],
@ -875,9 +875,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-ppc64-musl": { "node_modules/@rollup/rollup-linux-ppc64-musl": {
"version": "4.57.1", "version": "4.59.0",
"resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.57.1.tgz", "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.59.0.tgz",
"integrity": "sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw==", "integrity": "sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==",
"cpu": [ "cpu": [
"ppc64" "ppc64"
], ],
@ -889,9 +889,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-riscv64-gnu": { "node_modules/@rollup/rollup-linux-riscv64-gnu": {
"version": "4.57.1", "version": "4.59.0",
"resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.57.1.tgz", "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.59.0.tgz",
"integrity": "sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A==", "integrity": "sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==",
"cpu": [ "cpu": [
"riscv64" "riscv64"
], ],
@ -903,9 +903,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-riscv64-musl": { "node_modules/@rollup/rollup-linux-riscv64-musl": {
"version": "4.57.1", "version": "4.59.0",
"resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.57.1.tgz", "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.59.0.tgz",
"integrity": "sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw==", "integrity": "sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==",
"cpu": [ "cpu": [
"riscv64" "riscv64"
], ],
@ -917,9 +917,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-s390x-gnu": { "node_modules/@rollup/rollup-linux-s390x-gnu": {
"version": "4.57.1", "version": "4.59.0",
"resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.57.1.tgz", "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.59.0.tgz",
"integrity": "sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg==", "integrity": "sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==",
"cpu": [ "cpu": [
"s390x" "s390x"
], ],
@ -931,9 +931,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-x64-gnu": { "node_modules/@rollup/rollup-linux-x64-gnu": {
"version": "4.57.1", "version": "4.59.0",
"resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.57.1.tgz", "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.59.0.tgz",
"integrity": "sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg==", "integrity": "sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -945,9 +945,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-x64-musl": { "node_modules/@rollup/rollup-linux-x64-musl": {
"version": "4.57.1", "version": "4.59.0",
"resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.57.1.tgz", "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.59.0.tgz",
"integrity": "sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw==", "integrity": "sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -959,9 +959,9 @@
] ]
}, },
"node_modules/@rollup/rollup-openbsd-x64": { "node_modules/@rollup/rollup-openbsd-x64": {
"version": "4.57.1", "version": "4.59.0",
"resolved": "https://registry.npmmirror.com/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.57.1.tgz", "resolved": "https://registry.npmmirror.com/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.59.0.tgz",
"integrity": "sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw==", "integrity": "sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -973,9 +973,9 @@
] ]
}, },
"node_modules/@rollup/rollup-openharmony-arm64": { "node_modules/@rollup/rollup-openharmony-arm64": {
"version": "4.57.1", "version": "4.59.0",
"resolved": "https://registry.npmmirror.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.57.1.tgz", "resolved": "https://registry.npmmirror.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.59.0.tgz",
"integrity": "sha512-4wYoDpNg6o/oPximyc/NG+mYUejZrCU2q+2w6YZqrAs2UcNUChIZXjtafAiiZSUc7On8v5NyNj34Kzj/Ltk6dQ==", "integrity": "sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -987,9 +987,9 @@
] ]
}, },
"node_modules/@rollup/rollup-win32-arm64-msvc": { "node_modules/@rollup/rollup-win32-arm64-msvc": {
"version": "4.57.1", "version": "4.59.0",
"resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.57.1.tgz", "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.59.0.tgz",
"integrity": "sha512-O54mtsV/6LW3P8qdTcamQmuC990HDfR71lo44oZMZlXU4tzLrbvTii87Ni9opq60ds0YzuAlEr/GNwuNluZyMQ==", "integrity": "sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -1001,9 +1001,9 @@
] ]
}, },
"node_modules/@rollup/rollup-win32-ia32-msvc": { "node_modules/@rollup/rollup-win32-ia32-msvc": {
"version": "4.57.1", "version": "4.59.0",
"resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.57.1.tgz", "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.59.0.tgz",
"integrity": "sha512-P3dLS+IerxCT/7D2q2FYcRdWRl22dNbrbBEtxdWhXrfIMPP9lQhb5h4Du04mdl5Woq05jVCDPCMF7Ub0NAjIew==", "integrity": "sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==",
"cpu": [ "cpu": [
"ia32" "ia32"
], ],
@ -1015,9 +1015,9 @@
] ]
}, },
"node_modules/@rollup/rollup-win32-x64-gnu": { "node_modules/@rollup/rollup-win32-x64-gnu": {
"version": "4.57.1", "version": "4.59.0",
"resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.57.1.tgz", "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.59.0.tgz",
"integrity": "sha512-VMBH2eOOaKGtIJYleXsi2B8CPVADrh+TyNxJ4mWPnKfLB/DBUmzW+5m1xUrcwWoMfSLagIRpjUFeW5CO5hyciQ==", "integrity": "sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -1029,9 +1029,9 @@
] ]
}, },
"node_modules/@rollup/rollup-win32-x64-msvc": { "node_modules/@rollup/rollup-win32-x64-msvc": {
"version": "4.57.1", "version": "4.59.0",
"resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.57.1.tgz", "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.59.0.tgz",
"integrity": "sha512-mxRFDdHIWRxg3UfIIAwCm6NzvxG0jDX/wBN6KsQFTvKFqqg9vTrWUE68qEjHt19A5wwx5X5aUi2zuZT7YR0jrA==", "integrity": "sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -1062,9 +1062,9 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/@types/lodash": { "node_modules/@types/lodash": {
"version": "4.17.23", "version": "4.17.24",
"resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.17.23.tgz", "resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.17.24.tgz",
"integrity": "sha512-RDvF6wTulMPjrNdCoYRC8gNR880JNGT8uB+REUpC2Ns4pRqQJhGz90wh7rgdXDPpCczF3VGktDuFGVnz8zP7HA==", "integrity": "sha512-gIW7lQLZbue7lRSWEFql49QJJWThrTFFeIMJdp3eH4tKoxm1OvEPg02rm4wCCSHS0cL3/Fizimb35b7k8atwsQ==",
"license": "MIT" "license": "MIT"
}, },
"node_modules/@types/lodash-es": { "node_modules/@types/lodash-es": {
@ -1077,9 +1077,9 @@
} }
}, },
"node_modules/@types/node": { "node_modules/@types/node": {
"version": "24.10.11", "version": "24.10.14",
"resolved": "https://registry.npmmirror.com/@types/node/-/node-24.10.11.tgz", "resolved": "https://registry.npmmirror.com/@types/node/-/node-24.10.14.tgz",
"integrity": "sha512-/Af7O8r1frCVgOz0I62jWUtMohJ0/ZQU/ZoketltOJPZpnb17yoNc9BSoVuV9qlaIXJiPNOpsfq4ByFajSArNQ==", "integrity": "sha512-OowOUbD1lBCOFIPOZ8xnMIhgqA4sCutMiYOmPHL1PTLt5+y1XA+g2+yC9OOyz8p+deMZqPZLxfMjYIfrKsPeFg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
@ -1165,14 +1165,14 @@
} }
}, },
"node_modules/@vue/compiler-core": { "node_modules/@vue/compiler-core": {
"version": "3.5.27", "version": "3.5.29",
"resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.27.tgz", "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.29.tgz",
"integrity": "sha512-gnSBQjZA+//qDZen+6a2EdHqJ68Z7uybrMf3SPjEGgG4dicklwDVmMC1AeIHxtLVPT7sn6sH1KOO+tS6gwOUeQ==", "integrity": "sha512-cuzPhD8fwRHk8IGfmYaR4eEe4cAyJEL66Ove/WZL7yWNL134nqLddSLwNRIsFlnnW1kK+p8Ck3viFnC0chXCXw==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@babel/parser": "^7.28.5", "@babel/parser": "^7.29.0",
"@vue/shared": "3.5.27", "@vue/shared": "3.5.29",
"entities": "^7.0.0", "entities": "^7.0.1",
"estree-walker": "^2.0.2", "estree-walker": "^2.0.2",
"source-map-js": "^1.2.1" "source-map-js": "^1.2.1"
} }
@ -1184,26 +1184,26 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/@vue/compiler-dom": { "node_modules/@vue/compiler-dom": {
"version": "3.5.27", "version": "3.5.29",
"resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.5.27.tgz", "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.5.29.tgz",
"integrity": "sha512-oAFea8dZgCtVVVTEC7fv3T5CbZW9BxpFzGGxC79xakTr6ooeEqmRuvQydIiDAkglZEAd09LgVf1RoDnL54fu5w==", "integrity": "sha512-n0G5o7R3uBVmVxjTIYcz7ovr8sy7QObFG8OQJ3xGCDNhbG60biP/P5KnyY8NLd81OuT1WJflG7N4KWYHaeeaIg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@vue/compiler-core": "3.5.27", "@vue/compiler-core": "3.5.29",
"@vue/shared": "3.5.27" "@vue/shared": "3.5.29"
} }
}, },
"node_modules/@vue/compiler-sfc": { "node_modules/@vue/compiler-sfc": {
"version": "3.5.27", "version": "3.5.29",
"resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.5.27.tgz", "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.5.29.tgz",
"integrity": "sha512-sHZu9QyDPeDmN/MRoshhggVOWE5WlGFStKFwu8G52swATgSny27hJRWteKDSUUzUH+wp+bmeNbhJnEAel/auUQ==", "integrity": "sha512-oJZhN5XJs35Gzr50E82jg2cYdZQ78wEwvRO6Y63TvLVTc+6xICzJHP1UIecdSPPYIbkautNBanDiWYa64QSFIA==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@babel/parser": "^7.28.5", "@babel/parser": "^7.29.0",
"@vue/compiler-core": "3.5.27", "@vue/compiler-core": "3.5.29",
"@vue/compiler-dom": "3.5.27", "@vue/compiler-dom": "3.5.29",
"@vue/compiler-ssr": "3.5.27", "@vue/compiler-ssr": "3.5.29",
"@vue/shared": "3.5.27", "@vue/shared": "3.5.29",
"estree-walker": "^2.0.2", "estree-walker": "^2.0.2",
"magic-string": "^0.30.21", "magic-string": "^0.30.21",
"postcss": "^8.5.6", "postcss": "^8.5.6",
@ -1217,13 +1217,13 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/@vue/compiler-ssr": { "node_modules/@vue/compiler-ssr": {
"version": "3.5.27", "version": "3.5.29",
"resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.5.27.tgz", "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.5.29.tgz",
"integrity": "sha512-Sj7h+JHt512fV1cTxKlYhg7qxBvack+BGncSpH+8vnN+KN95iPIcqB5rsbblX40XorP+ilO7VIKlkuu3Xq2vjw==", "integrity": "sha512-Y/ARJZE6fpjzL5GH/phJmsFwx3g6t2KmHKHx5q+MLl2kencADKIrhH5MLF6HHpRMmlRAYBRSvv347Mepf1zVNw==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@vue/compiler-dom": "3.5.27", "@vue/compiler-dom": "3.5.29",
"@vue/shared": "3.5.27" "@vue/shared": "3.5.29"
} }
}, },
"node_modules/@vue/devtools-api": { "node_modules/@vue/devtools-api": {
@ -1260,53 +1260,53 @@
} }
}, },
"node_modules/@vue/reactivity": { "node_modules/@vue/reactivity": {
"version": "3.5.27", "version": "3.5.29",
"resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.5.27.tgz", "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.5.29.tgz",
"integrity": "sha512-vvorxn2KXfJ0nBEnj4GYshSgsyMNFnIQah/wczXlsNXt+ijhugmW+PpJ2cNPe4V6jpnBcs0MhCODKllWG+nvoQ==", "integrity": "sha512-zcrANcrRdcLtmGZETBxWqIkoQei8HaFpZWx/GHKxx79JZsiZ8j1du0VUJtu4eJjgFvU/iKL5lRXFXksVmI+5DA==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@vue/shared": "3.5.27" "@vue/shared": "3.5.29"
} }
}, },
"node_modules/@vue/runtime-core": { "node_modules/@vue/runtime-core": {
"version": "3.5.27", "version": "3.5.29",
"resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.5.27.tgz", "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.5.29.tgz",
"integrity": "sha512-fxVuX/fzgzeMPn/CLQecWeDIFNt3gQVhxM0rW02Tvp/YmZfXQgcTXlakq7IMutuZ/+Ogbn+K0oct9J3JZfyk3A==", "integrity": "sha512-8DpW2QfdwIWOLqtsNcds4s+QgwSaHSJY/SUe04LptianUQ/0xi6KVsu/pYVh+HO3NTVvVJjIPL2t6GdeKbS4Lg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@vue/reactivity": "3.5.27", "@vue/reactivity": "3.5.29",
"@vue/shared": "3.5.27" "@vue/shared": "3.5.29"
} }
}, },
"node_modules/@vue/runtime-dom": { "node_modules/@vue/runtime-dom": {
"version": "3.5.27", "version": "3.5.29",
"resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.5.27.tgz", "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.5.29.tgz",
"integrity": "sha512-/QnLslQgYqSJ5aUmb5F0z0caZPGHRB8LEAQ1s81vHFM5CBfnun63rxhvE/scVb/j3TbBuoZwkJyiLCkBluMpeg==", "integrity": "sha512-AHvvJEtcY9tw/uk+s/YRLSlxxQnqnAkjqvK25ZiM4CllCZWzElRAoQnCM42m9AHRLNJ6oe2kC5DCgD4AUdlvXg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@vue/reactivity": "3.5.27", "@vue/reactivity": "3.5.29",
"@vue/runtime-core": "3.5.27", "@vue/runtime-core": "3.5.29",
"@vue/shared": "3.5.27", "@vue/shared": "3.5.29",
"csstype": "^3.2.3" "csstype": "^3.2.3"
} }
}, },
"node_modules/@vue/server-renderer": { "node_modules/@vue/server-renderer": {
"version": "3.5.27", "version": "3.5.29",
"resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.5.27.tgz", "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.5.29.tgz",
"integrity": "sha512-qOz/5thjeP1vAFc4+BY3Nr6wxyLhpeQgAE/8dDtKo6a6xdk+L4W46HDZgNmLOBUDEkFXV3G7pRiUqxjX0/2zWA==", "integrity": "sha512-G/1k6WK5MusLlbxSE2YTcqAAezS+VuwHhOvLx2KnQU7G2zCH6KIb+5Wyt6UjMq7a3qPzNEjJXs1hvAxDclQH+g==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@vue/compiler-ssr": "3.5.27", "@vue/compiler-ssr": "3.5.29",
"@vue/shared": "3.5.27" "@vue/shared": "3.5.29"
}, },
"peerDependencies": { "peerDependencies": {
"vue": "3.5.27" "vue": "3.5.29"
} }
}, },
"node_modules/@vue/shared": { "node_modules/@vue/shared": {
"version": "3.5.27", "version": "3.5.29",
"resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.27.tgz", "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.29.tgz",
"integrity": "sha512-dXr/3CgqXsJkZ0n9F3I4elY8wM9jMJpP3pvRG52r6m0tu/MsAFIe6JpXVGeNMd/D9F4hQynWT8Rfuj0bdm9kFQ==", "integrity": "sha512-w7SR0A5zyRByL9XUkCfdLs7t9XOHUyJ67qPGQjOou3p6GvBeBW+AVjUUmlxtZ4PIYaRvE+1LmK44O4uajlZwcg==",
"license": "MIT" "license": "MIT"
}, },
"node_modules/@vueuse/core": { "node_modules/@vueuse/core": {
@ -1547,9 +1547,9 @@
} }
}, },
"node_modules/acorn": { "node_modules/acorn": {
"version": "8.15.0", "version": "8.16.0",
"resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.15.0.tgz", "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.16.0.tgz",
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"bin": { "bin": {
@ -1642,13 +1642,13 @@
} }
}, },
"node_modules/axios": { "node_modules/axios": {
"version": "1.13.4", "version": "1.13.5",
"resolved": "https://registry.npmmirror.com/axios/-/axios-1.13.4.tgz", "resolved": "https://registry.npmmirror.com/axios/-/axios-1.13.5.tgz",
"integrity": "sha512-1wVkUaAO6WyaYtCkcYCOx12ZgpGf9Zif+qXa4n+oYzK558YryKqiL6UWwd5DqiH3VRW0GYhTZQ/vlgJrCoNQlg==", "integrity": "sha512-cz4ur7Vb0xS4/KUN0tPWe44eqxrIu31me+fbang3ijiNscE129POzipJJA6zniq2C/Z6sJCjMimjS8Lc/GAs8Q==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"follow-redirects": "^1.15.6", "follow-redirects": "^1.15.11",
"form-data": "^4.0.4", "form-data": "^4.0.5",
"proxy-from-env": "^1.1.0" "proxy-from-env": "^1.1.0"
} }
}, },
@ -3648,9 +3648,9 @@
} }
}, },
"node_modules/preact": { "node_modules/preact": {
"version": "10.28.3", "version": "10.28.4",
"resolved": "https://registry.npmmirror.com/preact/-/preact-10.28.3.tgz", "resolved": "https://registry.npmmirror.com/preact/-/preact-10.28.4.tgz",
"integrity": "sha512-tCmoRkPQLpBeWzpmbhryairGnhW9tKV6c6gr/w+RhoRoKEJwsjzipwp//1oCpGPOchvSLaAPlpcJi9MwMmoPyA==", "integrity": "sha512-uKFfOHWuSNpRFVTnljsCluEFq57OKT+0QdOiQo8XWnQ/pSvg7OpX5eNOejELXJMWy+BwM2nobz0FkvzmnpCNsQ==",
"license": "MIT", "license": "MIT",
"funding": { "funding": {
"type": "opencollective", "type": "opencollective",
@ -3780,9 +3780,9 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/rollup": { "node_modules/rollup": {
"version": "4.57.1", "version": "4.59.0",
"resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.57.1.tgz", "resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.59.0.tgz",
"integrity": "sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A==", "integrity": "sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
@ -3796,31 +3796,31 @@
"npm": ">=8.0.0" "npm": ">=8.0.0"
}, },
"optionalDependencies": { "optionalDependencies": {
"@rollup/rollup-android-arm-eabi": "4.57.1", "@rollup/rollup-android-arm-eabi": "4.59.0",
"@rollup/rollup-android-arm64": "4.57.1", "@rollup/rollup-android-arm64": "4.59.0",
"@rollup/rollup-darwin-arm64": "4.57.1", "@rollup/rollup-darwin-arm64": "4.59.0",
"@rollup/rollup-darwin-x64": "4.57.1", "@rollup/rollup-darwin-x64": "4.59.0",
"@rollup/rollup-freebsd-arm64": "4.57.1", "@rollup/rollup-freebsd-arm64": "4.59.0",
"@rollup/rollup-freebsd-x64": "4.57.1", "@rollup/rollup-freebsd-x64": "4.59.0",
"@rollup/rollup-linux-arm-gnueabihf": "4.57.1", "@rollup/rollup-linux-arm-gnueabihf": "4.59.0",
"@rollup/rollup-linux-arm-musleabihf": "4.57.1", "@rollup/rollup-linux-arm-musleabihf": "4.59.0",
"@rollup/rollup-linux-arm64-gnu": "4.57.1", "@rollup/rollup-linux-arm64-gnu": "4.59.0",
"@rollup/rollup-linux-arm64-musl": "4.57.1", "@rollup/rollup-linux-arm64-musl": "4.59.0",
"@rollup/rollup-linux-loong64-gnu": "4.57.1", "@rollup/rollup-linux-loong64-gnu": "4.59.0",
"@rollup/rollup-linux-loong64-musl": "4.57.1", "@rollup/rollup-linux-loong64-musl": "4.59.0",
"@rollup/rollup-linux-ppc64-gnu": "4.57.1", "@rollup/rollup-linux-ppc64-gnu": "4.59.0",
"@rollup/rollup-linux-ppc64-musl": "4.57.1", "@rollup/rollup-linux-ppc64-musl": "4.59.0",
"@rollup/rollup-linux-riscv64-gnu": "4.57.1", "@rollup/rollup-linux-riscv64-gnu": "4.59.0",
"@rollup/rollup-linux-riscv64-musl": "4.57.1", "@rollup/rollup-linux-riscv64-musl": "4.59.0",
"@rollup/rollup-linux-s390x-gnu": "4.57.1", "@rollup/rollup-linux-s390x-gnu": "4.59.0",
"@rollup/rollup-linux-x64-gnu": "4.57.1", "@rollup/rollup-linux-x64-gnu": "4.59.0",
"@rollup/rollup-linux-x64-musl": "4.57.1", "@rollup/rollup-linux-x64-musl": "4.59.0",
"@rollup/rollup-openbsd-x64": "4.57.1", "@rollup/rollup-openbsd-x64": "4.59.0",
"@rollup/rollup-openharmony-arm64": "4.57.1", "@rollup/rollup-openharmony-arm64": "4.59.0",
"@rollup/rollup-win32-arm64-msvc": "4.57.1", "@rollup/rollup-win32-arm64-msvc": "4.59.0",
"@rollup/rollup-win32-ia32-msvc": "4.57.1", "@rollup/rollup-win32-ia32-msvc": "4.59.0",
"@rollup/rollup-win32-x64-gnu": "4.57.1", "@rollup/rollup-win32-x64-gnu": "4.59.0",
"@rollup/rollup-win32-x64-msvc": "4.57.1", "@rollup/rollup-win32-x64-msvc": "4.59.0",
"fsevents": "~2.3.2" "fsevents": "~2.3.2"
} }
}, },
@ -4673,16 +4673,16 @@
} }
}, },
"node_modules/vue": { "node_modules/vue": {
"version": "3.5.27", "version": "3.5.29",
"resolved": "https://registry.npmmirror.com/vue/-/vue-3.5.27.tgz", "resolved": "https://registry.npmmirror.com/vue/-/vue-3.5.29.tgz",
"integrity": "sha512-aJ/UtoEyFySPBGarREmN4z6qNKpbEguYHMmXSiOGk69czc+zhs0NF6tEFrY8TZKAl8N/LYAkd4JHVd5E/AsSmw==", "integrity": "sha512-BZqN4Ze6mDQVNAni0IHeMJ5mwr8VAJ3MQC9FmprRhcBYENw+wOAAjRj8jfmN6FLl0j96OXbR+CjWhmAmM+QGnA==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@vue/compiler-dom": "3.5.27", "@vue/compiler-dom": "3.5.29",
"@vue/compiler-sfc": "3.5.27", "@vue/compiler-sfc": "3.5.29",
"@vue/runtime-dom": "3.5.27", "@vue/runtime-dom": "3.5.29",
"@vue/server-renderer": "3.5.27", "@vue/server-renderer": "3.5.29",
"@vue/shared": "3.5.27" "@vue/shared": "3.5.29"
}, },
"peerDependencies": { "peerDependencies": {
"typescript": "*" "typescript": "*"

View File

@ -63,3 +63,93 @@ export function deleteOrganization(id) {
method: "delete", method: "delete",
}); });
} }
/**
* 获取企业单位列表
* @returns {Promise}
*/
export function getCompanys() {
return request({
url: '/admin/erp/getCompanys',
method: 'get'
});
}
/**
* 获取部门列表
* @param {number} parentId 隶属单位ID
* @returns {Promise}
*/
export function getDepartments(parentId) {
return request({
url: '/admin/erp/getDepartments',
method: 'get',
params: parentId ? { parent_id: parentId } : {}
});
}
/*************************************************
****************** 员工相关接口 ******************
*************************************************/
/**
* 获取员工列表
* @param {number} tenantId 租户ID
* @returns {Promise}
*/
export function getEmployeeList(tenantId) {
return request({
url: '/admin/erp/getEmployee',
method: 'get',
params: { tenant_id: tenantId }
});
}
/**
* 获取员工详情
* @param {number} id 员工ID
* @returns {Promise}
*/
export function getEmployeeDetail(id) {
return request({
url: `/admin/erp/getEmployeeDetail/${id}`,
method: "get",
});
}
/**
* 创建员工数据
* @param {Object} data 员工数据
* @returns {Promise}
*/
export function createEmployee(data) {
return request({
url: "/admin/erp/createEmployee",
method: "post",
data: data,
headers: {
"Content-Type": "multipart/form-data"
}
});
}
// 更新员工信息
export function editEmployee(id, data) {
return request({
url: `/admin/erp/editEmployee/${id}`,
method: 'post',
data: data
});
}
/**
* 删除员工数据
* @param {number} id 员工ID
* @returns {Promise}
*/
export function deleteEmployee(id) {
return request({
url: `/admin/erp/deleteEmployee/${id}`,
method: "delete",
});
}

View File

@ -3,12 +3,12 @@
<el-form :model="form" :rules="rules" ref="formRef" label-width="100px"> <el-form :model="form" :rules="rules" ref="formRef" label-width="100px">
<div class="form-title">账号信息</div> <div class="form-title">账号信息</div>
<!-- 账号 --> <!-- 账号 -->
<el-form-item label="账号"> <el-form-item label="账号" required>
<el-input v-model="form.account" :disabled="!isAdd" placeholder="请输入账号" /> <el-input v-model="form.account" :disabled="!isAdd" placeholder="请输入账号" />
</el-form-item> </el-form-item>
<!-- 密码 --> <!-- 密码 -->
<el-form-item label="密码" prop="password" v-if="isAdd"> <el-form-item label="密码" prop="password" v-if="isAdd" required>
<el-input <el-input
v-model="form.password" v-model="form.password"
type="password" type="password"
@ -19,7 +19,7 @@
</el-form-item> </el-form-item>
<!-- 确认密码 --> <!-- 确认密码 -->
<el-form-item label="确认密码" prop="confirmPassword" v-if="isAdd"> <el-form-item label="确认密码" prop="confirmPassword" v-if="isAdd" required>
<el-input <el-input
v-model="form.confirmPassword" v-model="form.confirmPassword"
type="password" type="password"
@ -30,42 +30,87 @@
</el-form-item> </el-form-item>
<el-divider></el-divider> <el-divider></el-divider>
<div class="form-title">个人信息</div> <div class="form-title">个人信息</div>
<!-- 姓名 --> <!-- 姓名 -->
<el-form-item label="姓名"> <el-form-item label="姓名" required>
<el-input v-model="form.name" placeholder="请输入姓名" /> <el-input v-model="form.name" placeholder="请输入姓名" />
</el-form-item> </el-form-item>
<!-- 电话 -->
<el-form-item label="电话">
<el-input v-model="form.phone" placeholder="请输入电话" />
</el-form-item>
<!-- 邮箱 -->
<el-form-item label="邮箱">
<el-input v-model="form.email" placeholder="请输入邮箱" />
</el-form-item>
<!-- QQ -->
<el-form-item label="QQ">
<el-input v-model="form.qq" placeholder="请输入QQ" />
</el-form-item>
<!-- 性别 --> <!-- 性别 -->
<el-form-item label="性别"> <el-form-item label="性别" required>
<el-radio-group v-model="form.sex" placeholder="请选择性别"> <el-radio-group v-model="form.sex" placeholder="请选择性别">
<el-radio-button label="男" :value="1" /> <el-radio-button label="男" :value="1" />
<el-radio-button label="女" :value="2" /> <el-radio-button label="女" :value="2" />
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<!-- 生日 -->
<el-form-item label="生日" required>
<el-date-picker
v-model="form.birthday"
type="date"
placeholder="请选择生日"
/>
</el-form-item>
<!-- 隶属单位 -->
<el-form-item label="隶属单位" required>
<el-select v-model="form.affiliate_unit" placeholder="请选择隶属单位" clearable style="width: 100%">
<el-option v-for="item in companyList" :key="item.id" :label="item.org_name" :value="item.id" />
</el-select>
</el-form-item>
<!-- 部门 -->
<el-form-item label="部门" required>
<el-select v-model="form.department" placeholder="请先选择隶属单位" clearable style="width: 100%" :disabled="!form.affiliate_unit">
<el-option v-for="item in departmentList" :key="item.id" :label="item.org_name" :value="item.id" />
</el-select>
</el-form-item>
<!-- 职位 -->
<el-form-item label="职位" required>
<el-input v-model="form.position" placeholder="请输入职位" />
</el-form-item>
<!-- 学历 -->
<el-form-item label="学历">
<el-input v-model="form.education" placeholder="请输入学历" />
</el-form-item>
<!-- 民族 -->
<el-form-item label="民族" required>
<el-input v-model="form.nationality" placeholder="请输入民族" />
</el-form-item>
<!-- 手机 -->
<el-form-item label="手机" required>
<el-input v-model="form.phone" placeholder="请输入手机号" />
</el-form-item>
<!-- 微信 -->
<el-form-item label="微信">
<el-input v-model="form.wechat" placeholder="请输入微信" />
</el-form-item>
<!-- 邮箱 -->
<el-form-item label="邮箱" required>
<el-input v-model="form.email" placeholder="请输入邮箱" />
</el-form-item>
<!-- 家庭住址 -->
<el-form-item label="家庭住址" required>
<el-input v-model="form.home_address" placeholder="请输入家庭住址" />
</el-form-item>
<!-- 状态 --> <!-- 状态 -->
<el-form-item label="状态"> <el-form-item label="状态">
<el-select <el-select
v-model="form.status" v-model="form.account_status"
placeholder="请选择状态" placeholder="请选择状态"
style="width: 100%" style="width: 100%"
> >
<el-option label="离职" :value="2" v-if="!isAdd" />
<el-option label="启用" :value="1" /> <el-option label="启用" :value="1" />
<el-option label="禁用" :value="0" /> <el-option label="禁用" :value="0" />
</el-select> </el-select>
@ -83,7 +128,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { ref, computed, watch } from "vue"; import { ref, computed, watch } from "vue";
import { ElMessage } from "element-plus"; import { ElMessage } from "element-plus";
import { addUser, editUser, getUserInfo } from "@/api/user"; import { createEmployee, editEmployee, getEmployeeDetail, getCompanys, getDepartments } from "@/api/erp";
const props = defineProps({ const props = defineProps({
modelValue: { modelValue: {
@ -105,6 +150,29 @@
const visible = ref(false); const visible = ref(false);
const formRef = ref<any>(null); const formRef = ref<any>(null);
const isAdd = ref(false); const isAdd = ref(false);
const companyList = ref<any[]>([]);
const departmentList = ref<any[]>([]);
//
const loadCompanyList = async () => {
try {
const res = await getCompanys();
companyList.value = res.data || res || [];
} catch (e) {
console.error("获取公司列表失败", e);
}
};
//
const loadDepartments = async (parentId?: number) => {
try {
const res = await getDepartments(parentId);
departmentList.value = res.data || res || [];
} catch (e) {
console.error("获取部门列表失败", e);
}
};
const form = ref<any>({ const form = ref<any>({
id: null, id: null,
@ -117,6 +185,17 @@
confirmPassword: "", confirmPassword: "",
email: "", email: "",
status: 1, status: 1,
affiliate_unit: "",
department: "",
});
//
watch(() => form.value.affiliate_unit, (newVal) => {
form.value.department = "";
departmentList.value = [];
if (newVal) {
loadDepartments(newVal);
}
}); });
const dialogTitle = computed(() => { const dialogTitle = computed(() => {
@ -214,7 +293,7 @@
throw new Error("未提供有效的用户 ID"); throw new Error("未提供有效的用户 ID");
} }
const res = await getUserInfo(userId); const res = await getEmployeeDetail(userId);
const data = res.data || res; const data = res.data || res;
@ -301,7 +380,7 @@
password: form.value.password, password: form.value.password,
}; };
await addUser(submitData); await createEmployee(submitData);
ElMessage.success("添加成功"); ElMessage.success("添加成功");
} else { } else {
// //
@ -326,7 +405,7 @@
submitData.password = form.value.password; submitData.password = form.value.password;
} }
await editUser(form.value.id, submitData); await editEmployee(form.value.id, submitData);
ElMessage.success("更新成功"); ElMessage.success("更新成功");
} }
@ -355,6 +434,7 @@
email: "", email: "",
status: 1, status: 1,
}; };
loadCompanyList();
visible.value = true; visible.value = true;
// //
if (formRef.value) { if (formRef.value) {
@ -363,6 +443,7 @@
}, },
openEdit: (user: any) => { openEdit: (user: any) => {
isAdd.value = false; isAdd.value = false;
loadCompanyList();
visible.value = true; visible.value = true;
// //
if (formRef.value) { if (formRef.value) {
@ -372,6 +453,7 @@
loadUserData(user); loadUserData(user);
}, },
open: (user?: any) => { open: (user?: any) => {
loadCompanyList();
if (user) { if (user) {
isAdd.value = false; isAdd.value = false;
loadUserData(user); loadUserData(user);

View File

@ -57,11 +57,91 @@
<el-pagination :current-page="page" :page-size="pageSize" :total="total" @current-change="handlePageChange" <el-pagination :current-page="page" :page-size="pageSize" :total="total" @current-change="handlePageChange"
layout="total, prev, pager, next" /> layout="total, prev, pager, next" />
</div> </div>
<!-- 编辑弹窗 -->
<Edit ref="editRef" @submit="fetchData" />
</div> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { ref, onMounted } from "vue";
import { ElMessage, ElMessageBox } from "element-plus";
import { Plus, Refresh } from "@element-plus/icons-vue";
import { getEmployeeList, deleteEmployee } from "@/api/erp";
import Edit from "./components/edit.vue";
import { useAuthStore } from "@/stores/auth";
const users = ref<any[]>([]);
const loading = ref(false);
const page = ref(1);
const pageSize = ref(10);
const total = ref(0);
const editRef = ref<any>(null);
const authStore = useAuthStore();
const tenantId = (authStore.user as any)?.tenant_id;
// console.log(tenantId);
//
const fetchData = async (tenantId: number) => {
loading.value = true;
try {
const res = await getEmployeeList(tenantId);
users.value = res.data || res || [];
total.value = users.value.length;
} catch (e: any) {
ElMessage.error(e?.message || "获取列表失败");
} finally {
loading.value = false;
}
};
//
const refresh = () => {
fetchData(tenantId);
};
//
const handleAddUser = () => {
editRef.value?.openAdd();
};
//
const handleEdit = (row: any) => {
editRef.value?.openEdit(row);
};
//
const handlePreview = (row: any) => {
editRef.value?.openEdit(row);
};
//
const handleDelete = async (row: any) => {
try {
await ElMessageBox.confirm(`确定删除用户 "${row.name}" 吗?`, "提示", {
type: "warning",
});
await deleteEmployee(row.id);
ElMessage.success("删除成功");
fetchData(tenantId);
} catch (e: any) {
if (e !== "cancel") {
ElMessage.error(e?.message || "删除失败");
}
}
};
//
const handlePageChange = (val: number) => {
page.value = val;
fetchData(tenantId);
};
onMounted(() => {
fetchData(tenantId);
});
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>

View File

@ -1,27 +1,18 @@
<template> <template>
<el-dialog <el-dialog v-model="visible" :title="isEdit ? '编辑组织' : '添加组织'" width="500px" :close-on-click-modal="false">
v-model="visible"
:title="isEdit ? '编辑部门' : '添加部门'"
width="500px"
:close-on-click-modal="false"
>
<el-form ref="formRef" :model="formData" :rules="formRules" label-width="100px"> <el-form ref="formRef" :model="formData" :rules="formRules" label-width="100px">
<el-form-item label="上级部门" prop="parent_id">
<el-tree-select <el-form-item label="上级组织" prop="parent_id">
v-model="formData.parent_id" <el-tree-select v-model="formData.parent_id" :data="extendedTreeData"
:data="treeData" :props="props.treeProps || defaultTreeProps" check-strictly placeholder="请选择上级组织" clearable
:props="treeProps" style="width: 100%" />
check-strictly
placeholder="请选择上级部门"
clearable
style="width: 100%"
/>
</el-form-item> </el-form-item>
<el-form-item label="部门名称" prop="org_name">
<el-input v-model="formData.org_name" placeholder="请输入部门名称,例如:连云港云泽集团" /> <el-form-item label="组织名称" prop="org_name">
<el-input v-model="formData.org_name" placeholder="请输入组织名称,例如:连云港云泽集团" />
</el-form-item> </el-form-item>
<el-form-item label="部门编码" prop="org_code"> <el-form-item label="组织编码" prop="org_code">
<el-input v-model="formData.org_code" placeholder="请输入部门编码,例如LYG-YZ-GROUP" /> <el-input v-model="formData.org_code" placeholder="请输入组织编码,例如LYG-YZ-GROUP" />
</el-form-item> </el-form-item>
<el-form-item label="负责人" prop="leader_id"> <el-form-item label="负责人" prop="leader_id">
<el-select v-model="formData.leader_id" placeholder="请选择负责人"> <el-select v-model="formData.leader_id" placeholder="请选择负责人">
@ -31,6 +22,12 @@
<el-form-item label="排序" prop="sort"> <el-form-item label="排序" prop="sort">
<el-input-number v-model="formData.sort" :min="0" :max="999" controls-position="right" style="width: 100%" /> <el-input-number v-model="formData.sort" :min="0" :max="999" controls-position="right" style="width: 100%" />
</el-form-item> </el-form-item>
<el-form-item label="是否是公司" prop="is_company">
<el-radio-group v-model="formData.is_company">
<el-radio :label="1"></el-radio>
<el-radio :label="0"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="状态" prop="status"> <el-form-item label="状态" prop="status">
<el-radio-group v-model="formData.status"> <el-radio-group v-model="formData.status">
<el-radio :label="1">启用</el-radio> <el-radio :label="1">启用</el-radio>
@ -47,9 +44,9 @@
</template> </template>
</el-dialog> </el-dialog>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { ref, reactive, onMounted } from 'vue'
import { ref, reactive, onMounted, computed } from 'vue'
import { ElMessage, type FormInstance, type FormRules } from 'element-plus' import { ElMessage, type FormInstance, type FormRules } from 'element-plus'
import { createOrganization, editOrganization } from '@/api/erp' import { createOrganization, editOrganization } from '@/api/erp'
import { useAuthStore } from '@/stores/auth' import { useAuthStore } from '@/stores/auth'
@ -64,13 +61,26 @@ interface TreeNode {
leader_id?: number leader_id?: number
sort?: number sort?: number
status?: number status?: number
is_company?: number
remark?: string remark?: string
} }
const props = defineProps<{ const props = defineProps<{
treeData: TreeNode[] treeData: TreeNode[]
treeProps?: {
label: string
children: string
value: string
}
}>() }>()
// treeProps
const defaultTreeProps = {
label: 'org_name',
children: 'children',
value: 'id'
}
const emit = defineEmits<{ const emit = defineEmits<{
success: [] success: []
}>() }>()
@ -89,17 +99,30 @@ const formData = reactive({
org_code: '', org_code: '',
leader_id: undefined as number | undefined, leader_id: undefined as number | undefined,
sort: 0, sort: 0,
is_company: 0,
status: 1, status: 1,
remark: '' remark: ''
}) })
const formRules: FormRules = { const formRules: FormRules = {
org_name: [{ required: true, message: '请输入部门名称', trigger: 'blur' }], org_name: [{ required: true, message: '请输入组织名称', trigger: 'blur' }],
org_code: [{ required: true, message: '请输入部门编码', trigger: 'blur' }] org_code: [{ required: true, message: '请输入组织编码', trigger: 'blur' }]
} }
onMounted(() => { const treeOptions = computed(() => {
getLeaderList() return [
{
id: 0,
org_name: '顶级组织', //
children: props.treeData //
}
]
})
//
const extendedTreeData = computed(() => {
const rootNode = { id: 0, org_name: '顶级组织' }
return [rootNode, ...props.treeData]
}) })
const getLeaderList = async () => { const getLeaderList = async () => {
@ -115,10 +138,11 @@ const open = (data?: TreeNode, parentId?: number) => {
// children // children
isEdit.value = true isEdit.value = true
formData.id = data.id formData.id = data.id
formData.parent_id = data.parent_id formData.parent_id = data.parent_id ?? 0
formData.org_name = data.org_name formData.org_name = data.org_name
formData.org_code = data.org_code || '' formData.org_code = data.org_code || ''
formData.leader_id = data.leader_id formData.leader_id = data.leader_id
formData.is_company = data.is_company ?? 0
formData.sort = data.sort ?? 0 formData.sort = data.sort ?? 0
formData.status = data.status ?? 1 formData.status = data.status ?? 1
formData.remark = data.remark || '' formData.remark = data.remark || ''
@ -126,10 +150,11 @@ const open = (data?: TreeNode, parentId?: number) => {
// //
isEdit.value = false isEdit.value = false
formData.id = 0 formData.id = 0
formData.parent_id = parentId formData.parent_id = parentId ?? 0
formData.org_name = '' formData.org_name = ''
formData.org_code = '' formData.org_code = ''
formData.leader_id = undefined formData.leader_id = undefined
formData.is_company = 0
formData.sort = 0 formData.sort = 0
formData.status = 1 formData.status = 1
formData.remark = '' formData.remark = ''
@ -153,8 +178,9 @@ const handleSubmit = async () => {
try { try {
let res let res
// //
const allowedKeys = ['parent_id', 'org_name', 'org_code', 'leader_id', 'sort', 'status', 'remark'] const allowedKeys = ['parent_id', 'org_name', 'org_code', 'leader_id', 'sort', 'is_company', 'status', 'remark']
if (isEdit.value && formData.id) { if (isEdit.value && formData.id) {
// 使 // 使
@ -199,9 +225,11 @@ const handleSubmit = async () => {
} }
} }
onMounted(() => { onMounted(() => {
getLeaderList() getLeaderList()
}) })
defineExpose({ open }) defineExpose({ open })
</script> </script>

View File

@ -53,19 +53,24 @@
<div v-if="selectedNode" class="detail-content"> <div v-if="selectedNode" class="detail-content">
<el-descriptions :column="2" border> <el-descriptions :column="2" border>
<el-descriptions-item label="部门名称"> <el-descriptions-item label="组织名称">
{{ selectedNode.org_name }} {{ selectedNode.org_name }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="部门编码"> <el-descriptions-item label="组织编码">
{{ selectedNode.org_code || '-' }} {{ selectedNode.org_code || '-' }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="上级部门"> <el-descriptions-item label="上级组织">
{{ selectedNode.parent_name || '顶级部门' }} {{ selectedNode.parent_name || '顶级组织' }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="负责人"> <el-descriptions-item label="负责人">
{{ selectedNode.leader_name || '-' }} {{ selectedNode.leader_name || '-' }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="状态" :span="2"> <el-descriptions-item label="是否是公司">
<el-tag :type="selectedNode.is_company === 1 ? 'primary' : 'info'">
{{ selectedNode.is_company === 1 ? '是' : '否' }}
</el-tag>
</el-descriptions-item>
<el-descriptions-item label="状态">
<el-tag :type="selectedNode.status === 1 ? 'success' : 'danger'"> <el-tag :type="selectedNode.status === 1 ? 'success' : 'danger'">
{{ selectedNode.status === 1 ? '启用' : '禁用' }} {{ selectedNode.status === 1 ? '启用' : '禁用' }}
</el-tag> </el-tag>
@ -119,6 +124,7 @@ interface TreeNode {
parent_name?: string parent_name?: string
leader_id?: number leader_id?: number
leader_name?: string leader_name?: string
is_company?: number
sort?: number sort?: number
status?: number status?: number
remark?: string remark?: string
@ -154,6 +160,7 @@ const buildTree = (list: any[]): TreeNode[] => {
parent_name: item.parent_name, parent_name: item.parent_name,
leader_id: item.leader_id, leader_id: item.leader_id,
leader_name: item.leader_name, leader_name: item.leader_name,
is_company: item.is_company,
sort: item.sort, sort: item.sort,
status: item.status, status: item.status,
remark: item.remark, remark: item.remark,
@ -193,6 +200,7 @@ const loadOrganizationDetail = async (id: number) => {
parent_name: data.parent_name, parent_name: data.parent_name,
leader_id: data.leader_id, leader_id: data.leader_id,
leader_name: data.leader_name, leader_name: data.leader_name,
is_company: data.is_company,
sort: data.sort, sort: data.sort,
status: data.status, status: data.status,
remark: data.remark, remark: data.remark,