拆分数据填报,修改全过程新框架

This commit is contained in:
扈兆增 2026-06-16 16:52:50 +08:00
parent ce8855d3c2
commit 8f999af2fe
303 changed files with 46670 additions and 1378050 deletions

View File

@ -1,13 +0,0 @@
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>front-process</title>
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/main.ts"></script>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -1,22 +0,0 @@
{
"name": "front-process",
"private": true,
"version": "0.1.0",
"scripts": {
"dev": "vite --port 5174 --strictPort",
"build": "vue-tsc --noEmit && vite build",
"preview": "vite preview --port 5174 --strictPort"
},
"dependencies": {
"ant-design-vue": "^4.2.6",
"vue": "^3.2.40",
"vue-router": "^4.1.6"
},
"devDependencies": {
"@types/node": "^16.11.7",
"@vitejs/plugin-vue": "^4.0.0",
"typescript": "^4.7.4",
"vite": "^4.0.3",
"vue-tsc": "^0.35.0"
}
}

View File

@ -1,794 +0,0 @@
lockfileVersion: '9.0'
settings:
autoInstallPeers: true
excludeLinksFromLockfile: false
importers:
.:
dependencies:
ant-design-vue:
specifier: ^4.2.6
version: 4.2.6(vue@3.5.30(typescript@4.9.5))
vue:
specifier: ^3.2.40
version: 3.5.30(typescript@4.9.5)
vue-router:
specifier: ^4.1.6
version: 4.6.4(vue@3.5.30(typescript@4.9.5))
devDependencies:
'@types/node':
specifier: ^16.11.7
version: 16.18.126
'@vitejs/plugin-vue':
specifier: ^4.0.0
version: 4.6.2(vite@4.5.14(@types/node@16.18.126))(vue@3.5.30(typescript@4.9.5))
typescript:
specifier: ^4.7.4
version: 4.9.5
vite:
specifier: ^4.0.3
version: 4.5.14(@types/node@16.18.126)
vue-tsc:
specifier: ^0.35.0
version: 0.35.2(typescript@4.9.5)
packages:
'@ant-design/colors@6.0.0':
resolution: {integrity: sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ==}
'@ant-design/icons-svg@4.4.2':
resolution: {integrity: sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==}
'@ant-design/icons-vue@7.0.1':
resolution: {integrity: sha512-eCqY2unfZK6Fe02AwFlDHLfoyEFreP6rBwAZMIJ1LugmfMiVgwWDYlp1YsRugaPtICYOabV1iWxXdP12u9U43Q==}
peerDependencies:
vue: '>=3.0.3'
'@babel/helper-string-parser@7.27.1':
resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==}
engines: {node: '>=6.9.0'}
'@babel/helper-validator-identifier@7.28.5':
resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==}
engines: {node: '>=6.9.0'}
'@babel/parser@7.29.2':
resolution: {integrity: sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==}
engines: {node: '>=6.0.0'}
hasBin: true
'@babel/runtime@7.29.2':
resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==}
engines: {node: '>=6.9.0'}
'@babel/types@7.29.0':
resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==}
engines: {node: '>=6.9.0'}
'@ctrl/tinycolor@3.6.1':
resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==}
engines: {node: '>=10'}
'@emotion/hash@0.9.2':
resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==}
'@emotion/unitless@0.8.1':
resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==}
'@esbuild/android-arm64@0.18.20':
resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==}
engines: {node: '>=12'}
cpu: [arm64]
os: [android]
'@esbuild/android-arm@0.18.20':
resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==}
engines: {node: '>=12'}
cpu: [arm]
os: [android]
'@esbuild/android-x64@0.18.20':
resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==}
engines: {node: '>=12'}
cpu: [x64]
os: [android]
'@esbuild/darwin-arm64@0.18.20':
resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==}
engines: {node: '>=12'}
cpu: [arm64]
os: [darwin]
'@esbuild/darwin-x64@0.18.20':
resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==}
engines: {node: '>=12'}
cpu: [x64]
os: [darwin]
'@esbuild/freebsd-arm64@0.18.20':
resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==}
engines: {node: '>=12'}
cpu: [arm64]
os: [freebsd]
'@esbuild/freebsd-x64@0.18.20':
resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==}
engines: {node: '>=12'}
cpu: [x64]
os: [freebsd]
'@esbuild/linux-arm64@0.18.20':
resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==}
engines: {node: '>=12'}
cpu: [arm64]
os: [linux]
'@esbuild/linux-arm@0.18.20':
resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==}
engines: {node: '>=12'}
cpu: [arm]
os: [linux]
'@esbuild/linux-ia32@0.18.20':
resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==}
engines: {node: '>=12'}
cpu: [ia32]
os: [linux]
'@esbuild/linux-loong64@0.18.20':
resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==}
engines: {node: '>=12'}
cpu: [loong64]
os: [linux]
'@esbuild/linux-mips64el@0.18.20':
resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==}
engines: {node: '>=12'}
cpu: [mips64el]
os: [linux]
'@esbuild/linux-ppc64@0.18.20':
resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==}
engines: {node: '>=12'}
cpu: [ppc64]
os: [linux]
'@esbuild/linux-riscv64@0.18.20':
resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==}
engines: {node: '>=12'}
cpu: [riscv64]
os: [linux]
'@esbuild/linux-s390x@0.18.20':
resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==}
engines: {node: '>=12'}
cpu: [s390x]
os: [linux]
'@esbuild/linux-x64@0.18.20':
resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==}
engines: {node: '>=12'}
cpu: [x64]
os: [linux]
'@esbuild/netbsd-x64@0.18.20':
resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==}
engines: {node: '>=12'}
cpu: [x64]
os: [netbsd]
'@esbuild/openbsd-x64@0.18.20':
resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==}
engines: {node: '>=12'}
cpu: [x64]
os: [openbsd]
'@esbuild/sunos-x64@0.18.20':
resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==}
engines: {node: '>=12'}
cpu: [x64]
os: [sunos]
'@esbuild/win32-arm64@0.18.20':
resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==}
engines: {node: '>=12'}
cpu: [arm64]
os: [win32]
'@esbuild/win32-ia32@0.18.20':
resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==}
engines: {node: '>=12'}
cpu: [ia32]
os: [win32]
'@esbuild/win32-x64@0.18.20':
resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==}
engines: {node: '>=12'}
cpu: [x64]
os: [win32]
'@jridgewell/sourcemap-codec@1.5.5':
resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==}
'@simonwep/pickr@1.8.2':
resolution: {integrity: sha512-/l5w8BIkrpP6n1xsetx9MWPWlU6OblN5YgZZphxan0Tq4BByTCETL6lyIeY8lagalS2Nbt4F2W034KHLIiunKA==}
'@types/node@16.18.126':
resolution: {integrity: sha512-OTcgaiwfGFBKacvfwuHzzn1KLxH/er8mluiy8/uM3sGXHaRe73RrSIj01jow9t4kJEW633Ov+cOexXeiApTyAw==}
'@vitejs/plugin-vue@4.6.2':
resolution: {integrity: sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw==}
engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies:
vite: ^4.0.0 || ^5.0.0
vue: ^3.2.25
'@volar/code-gen@0.35.2':
resolution: {integrity: sha512-MoZHuNnPfUWnCNkQUI5+U+gvLTxrU+XlCTusdNOTFYUUAa+M68MH0RxFIS9Ybj4uAUWTcZx0Ow1q5t/PZozo+Q==}
'@volar/source-map@0.35.2':
resolution: {integrity: sha512-PFHh9wN/qMkOWYyvmB8ckvIzolrpNOvK5EBdxxdTpiPJhfYjW82rMDBnYf6RxCe7yQxrUrmve6BWVO7flxWNVQ==}
'@volar/vue-code-gen@0.35.2':
resolution: {integrity: sha512-8H6P8EtN06eSVGjtcJhGqZzFIg6/nWoHVOlnhc5vKqC7tXwpqPbyMQae0tO7pLBd5qSb/dYU5GQcBAHsi2jgyA==}
deprecated: 'WARNING: This project has been renamed to @vue/language-core. Install using @vue/language-core instead.'
'@volar/vue-typescript@0.35.2':
resolution: {integrity: sha512-PZI6Urb+Vr5Dvgf9xysM8X7TP09inWDy1wjDtprBoBhxS7r0Dg3V0qZuJa7sSGz7M0QMa5R/CBaZPhlxFCfJBw==}
deprecated: 'WARNING: This project has been renamed to @vue/typescript. Install using @vue/typescript instead.'
'@vue/compiler-core@3.5.30':
resolution: {integrity: sha512-s3DfdZkcu/qExZ+td75015ljzHc6vE+30cFMGRPROYjqkroYI5NV2X1yAMX9UeyBNWB9MxCfPcsjpLS11nzkkw==}
'@vue/compiler-dom@3.5.30':
resolution: {integrity: sha512-eCFYESUEVYHhiMuK4SQTldO3RYxyMR/UQL4KdGD1Yrkfdx4m/HYuZ9jSfPdA+nWJY34VWndiYdW/wZXyiPEB9g==}
'@vue/compiler-sfc@3.5.30':
resolution: {integrity: sha512-LqmFPDn89dtU9vI3wHJnwaV6GfTRD87AjWpTWpyrdVOObVtjIuSeZr181z5C4PmVx/V3j2p+0f7edFKGRMpQ5A==}
'@vue/compiler-ssr@3.5.30':
resolution: {integrity: sha512-NsYK6OMTnx109PSL2IAyf62JP6EUdk4Dmj6AkWcJGBvN0dQoMYtVekAmdqgTtWQgEJo+Okstbf/1p7qZr5H+bA==}
'@vue/devtools-api@6.6.4':
resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==}
'@vue/reactivity@3.5.30':
resolution: {integrity: sha512-179YNgKATuwj9gB+66snskRDOitDiuOZqkYia7mHKJaidOMo/WJxHKF8DuGc4V4XbYTJANlfEKb0yxTQotnx4Q==}
'@vue/runtime-core@3.5.30':
resolution: {integrity: sha512-e0Z+8PQsUTdwV8TtEsLzUM7SzC7lQwYKePydb7K2ZnmS6jjND+WJXkmmfh/swYzRyfP1EY3fpdesyYoymCzYfg==}
'@vue/runtime-dom@3.5.30':
resolution: {integrity: sha512-2UIGakjU4WSQ0T4iwDEW0W7vQj6n7AFn7taqZ9Cvm0Q/RA2FFOziLESrDL4GmtI1wV3jXg5nMoJSYO66egDUBw==}
'@vue/server-renderer@3.5.30':
resolution: {integrity: sha512-v+R34icapydRwbZRD0sXwtHqrQJv38JuMB4JxbOxd8NEpGLny7cncMp53W9UH/zo4j8eDHjQ1dEJXwzFQknjtQ==}
peerDependencies:
vue: 3.5.30
'@vue/shared@3.5.30':
resolution: {integrity: sha512-YXgQ7JjaO18NeK2K9VTbDHaFy62WrObMa6XERNfNOkAhD1F1oDSf3ZJ7K6GqabZ0BvSDHajp8qfS5Sa2I9n8uQ==}
ant-design-vue@4.2.6:
resolution: {integrity: sha512-t7eX13Yj3i9+i5g9lqFyYneoIb3OzTvQjq9Tts1i+eiOd3Eva/6GagxBSXM1fOCjqemIu0FYVE1ByZ/38epR3Q==}
engines: {node: '>=12.22.0'}
peerDependencies:
vue: '>=3.2.0'
array-tree-filter@2.1.0:
resolution: {integrity: sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==}
async-validator@4.2.5:
resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==}
compute-scroll-into-view@1.0.20:
resolution: {integrity: sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==}
core-js@3.49.0:
resolution: {integrity: sha512-es1U2+YTtzpwkxVLwAFdSpaIMyQaq0PBgm3YD1W3Qpsn1NAmO3KSgZfu+oGSWVu6NvLHoHCV/aYcsE5wiB7ALg==}
csstype@3.2.3:
resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==}
dayjs@1.11.20:
resolution: {integrity: sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==}
dom-align@1.12.4:
resolution: {integrity: sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw==}
dom-scroll-into-view@2.0.1:
resolution: {integrity: sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w==}
entities@7.0.1:
resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==}
engines: {node: '>=0.12'}
esbuild@0.18.20:
resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==}
engines: {node: '>=12'}
hasBin: true
estree-walker@2.0.2:
resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
fsevents@2.3.3:
resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
os: [darwin]
is-plain-object@3.0.1:
resolution: {integrity: sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==}
engines: {node: '>=0.10.0'}
js-tokens@4.0.0:
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
lodash-es@4.17.23:
resolution: {integrity: sha512-kVI48u3PZr38HdYz98UmfPnXl2DXrpdctLrFLCd3kOx1xUkOmpFPx7gCWWM5MPkL/fD8zb+Ph0QzjGFs4+hHWg==}
lodash@4.17.23:
resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==}
loose-envify@1.4.0:
resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
hasBin: true
magic-string@0.30.21:
resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
nanoid@3.3.11:
resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
nanopop@2.4.2:
resolution: {integrity: sha512-NzOgmMQ+elxxHeIha+OG/Pv3Oc3p4RU2aBhwWwAqDpXrdTbtRylbRLQztLy8dMMwfl6pclznBdfUhccEn9ZIzw==}
picocolors@1.1.1:
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
postcss@8.5.8:
resolution: {integrity: sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==}
engines: {node: ^10 || ^12 || >=14}
resize-observer-polyfill@1.5.1:
resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==}
rollup@3.30.0:
resolution: {integrity: sha512-kQvGasUgN+AlWGliFn2POSajRQEsULVYFGTvOZmK06d7vCD+YhZztt70kGk3qaeAXeWYL5eO7zx+rAubBc55eA==}
engines: {node: '>=14.18.0', npm: '>=8.0.0'}
hasBin: true
scroll-into-view-if-needed@2.2.31:
resolution: {integrity: sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==}
shallow-equal@1.2.1:
resolution: {integrity: sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==}
source-map-js@1.2.1:
resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
engines: {node: '>=0.10.0'}
stylis@4.3.6:
resolution: {integrity: sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==}
throttle-debounce@5.0.2:
resolution: {integrity: sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==}
engines: {node: '>=12.22'}
typescript@4.9.5:
resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==}
engines: {node: '>=4.2.0'}
hasBin: true
vite@4.5.14:
resolution: {integrity: sha512-+v57oAaoYNnO3hIu5Z/tJRZjq5aHM2zDve9YZ8HngVHbhk66RStobhb1sqPMIPEleV6cNKYK4eGrAbE9Ulbl2g==}
engines: {node: ^14.18.0 || >=16.0.0}
hasBin: true
peerDependencies:
'@types/node': '>= 14'
less: '*'
lightningcss: ^1.21.0
sass: '*'
stylus: '*'
sugarss: '*'
terser: ^5.4.0
peerDependenciesMeta:
'@types/node':
optional: true
less:
optional: true
lightningcss:
optional: true
sass:
optional: true
stylus:
optional: true
sugarss:
optional: true
terser:
optional: true
vue-router@4.6.4:
resolution: {integrity: sha512-Hz9q5sa33Yhduglwz6g9skT8OBPii+4bFn88w6J+J4MfEo4KRRpmiNG/hHHkdbRFlLBOqxN8y8gf2Fb0MTUgVg==}
peerDependencies:
vue: ^3.5.0
vue-tsc@0.35.2:
resolution: {integrity: sha512-aqY16VlODHzqtKGUkqdumNpH+s5ABCkufRyvMKQlL/mua+N2DfSVnHufzSNNUMr7vmOO0YsNg27jsspBMq4iGA==}
hasBin: true
peerDependencies:
typescript: '*'
vue-types@3.0.2:
resolution: {integrity: sha512-IwUC0Aq2zwaXqy74h4WCvFCUtoV0iSWr0snWnE9TnU18S66GAQyqQbRf2qfJtUuiFsBf6qp0MEwdonlwznlcrw==}
engines: {node: '>=10.15.0'}
peerDependencies:
vue: ^3.0.0
vue@3.5.30:
resolution: {integrity: sha512-hTHLc6VNZyzzEH/l7PFGjpcTvUgiaPK5mdLkbjrTeWSRcEfxFrv56g/XckIYlE9ckuobsdwqd5mk2g1sBkMewg==}
peerDependencies:
typescript: '*'
peerDependenciesMeta:
typescript:
optional: true
warning@4.0.3:
resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==}
snapshots:
'@ant-design/colors@6.0.0':
dependencies:
'@ctrl/tinycolor': 3.6.1
'@ant-design/icons-svg@4.4.2': {}
'@ant-design/icons-vue@7.0.1(vue@3.5.30(typescript@4.9.5))':
dependencies:
'@ant-design/colors': 6.0.0
'@ant-design/icons-svg': 4.4.2
vue: 3.5.30(typescript@4.9.5)
'@babel/helper-string-parser@7.27.1': {}
'@babel/helper-validator-identifier@7.28.5': {}
'@babel/parser@7.29.2':
dependencies:
'@babel/types': 7.29.0
'@babel/runtime@7.29.2': {}
'@babel/types@7.29.0':
dependencies:
'@babel/helper-string-parser': 7.27.1
'@babel/helper-validator-identifier': 7.28.5
'@ctrl/tinycolor@3.6.1': {}
'@emotion/hash@0.9.2': {}
'@emotion/unitless@0.8.1': {}
'@esbuild/android-arm64@0.18.20':
optional: true
'@esbuild/android-arm@0.18.20':
optional: true
'@esbuild/android-x64@0.18.20':
optional: true
'@esbuild/darwin-arm64@0.18.20':
optional: true
'@esbuild/darwin-x64@0.18.20':
optional: true
'@esbuild/freebsd-arm64@0.18.20':
optional: true
'@esbuild/freebsd-x64@0.18.20':
optional: true
'@esbuild/linux-arm64@0.18.20':
optional: true
'@esbuild/linux-arm@0.18.20':
optional: true
'@esbuild/linux-ia32@0.18.20':
optional: true
'@esbuild/linux-loong64@0.18.20':
optional: true
'@esbuild/linux-mips64el@0.18.20':
optional: true
'@esbuild/linux-ppc64@0.18.20':
optional: true
'@esbuild/linux-riscv64@0.18.20':
optional: true
'@esbuild/linux-s390x@0.18.20':
optional: true
'@esbuild/linux-x64@0.18.20':
optional: true
'@esbuild/netbsd-x64@0.18.20':
optional: true
'@esbuild/openbsd-x64@0.18.20':
optional: true
'@esbuild/sunos-x64@0.18.20':
optional: true
'@esbuild/win32-arm64@0.18.20':
optional: true
'@esbuild/win32-ia32@0.18.20':
optional: true
'@esbuild/win32-x64@0.18.20':
optional: true
'@jridgewell/sourcemap-codec@1.5.5': {}
'@simonwep/pickr@1.8.2':
dependencies:
core-js: 3.49.0
nanopop: 2.4.2
'@types/node@16.18.126': {}
'@vitejs/plugin-vue@4.6.2(vite@4.5.14(@types/node@16.18.126))(vue@3.5.30(typescript@4.9.5))':
dependencies:
vite: 4.5.14(@types/node@16.18.126)
vue: 3.5.30(typescript@4.9.5)
'@volar/code-gen@0.35.2':
dependencies:
'@volar/source-map': 0.35.2
'@volar/source-map@0.35.2': {}
'@volar/vue-code-gen@0.35.2':
dependencies:
'@volar/code-gen': 0.35.2
'@volar/source-map': 0.35.2
'@vue/compiler-core': 3.5.30
'@vue/compiler-dom': 3.5.30
'@vue/shared': 3.5.30
'@volar/vue-typescript@0.35.2':
dependencies:
'@volar/code-gen': 0.35.2
'@volar/source-map': 0.35.2
'@volar/vue-code-gen': 0.35.2
'@vue/compiler-sfc': 3.5.30
'@vue/reactivity': 3.5.30
'@vue/compiler-core@3.5.30':
dependencies:
'@babel/parser': 7.29.2
'@vue/shared': 3.5.30
entities: 7.0.1
estree-walker: 2.0.2
source-map-js: 1.2.1
'@vue/compiler-dom@3.5.30':
dependencies:
'@vue/compiler-core': 3.5.30
'@vue/shared': 3.5.30
'@vue/compiler-sfc@3.5.30':
dependencies:
'@babel/parser': 7.29.2
'@vue/compiler-core': 3.5.30
'@vue/compiler-dom': 3.5.30
'@vue/compiler-ssr': 3.5.30
'@vue/shared': 3.5.30
estree-walker: 2.0.2
magic-string: 0.30.21
postcss: 8.5.8
source-map-js: 1.2.1
'@vue/compiler-ssr@3.5.30':
dependencies:
'@vue/compiler-dom': 3.5.30
'@vue/shared': 3.5.30
'@vue/devtools-api@6.6.4': {}
'@vue/reactivity@3.5.30':
dependencies:
'@vue/shared': 3.5.30
'@vue/runtime-core@3.5.30':
dependencies:
'@vue/reactivity': 3.5.30
'@vue/shared': 3.5.30
'@vue/runtime-dom@3.5.30':
dependencies:
'@vue/reactivity': 3.5.30
'@vue/runtime-core': 3.5.30
'@vue/shared': 3.5.30
csstype: 3.2.3
'@vue/server-renderer@3.5.30(vue@3.5.30(typescript@4.9.5))':
dependencies:
'@vue/compiler-ssr': 3.5.30
'@vue/shared': 3.5.30
vue: 3.5.30(typescript@4.9.5)
'@vue/shared@3.5.30': {}
ant-design-vue@4.2.6(vue@3.5.30(typescript@4.9.5)):
dependencies:
'@ant-design/colors': 6.0.0
'@ant-design/icons-vue': 7.0.1(vue@3.5.30(typescript@4.9.5))
'@babel/runtime': 7.29.2
'@ctrl/tinycolor': 3.6.1
'@emotion/hash': 0.9.2
'@emotion/unitless': 0.8.1
'@simonwep/pickr': 1.8.2
array-tree-filter: 2.1.0
async-validator: 4.2.5
csstype: 3.2.3
dayjs: 1.11.20
dom-align: 1.12.4
dom-scroll-into-view: 2.0.1
lodash: 4.17.23
lodash-es: 4.17.23
resize-observer-polyfill: 1.5.1
scroll-into-view-if-needed: 2.2.31
shallow-equal: 1.2.1
stylis: 4.3.6
throttle-debounce: 5.0.2
vue: 3.5.30(typescript@4.9.5)
vue-types: 3.0.2(vue@3.5.30(typescript@4.9.5))
warning: 4.0.3
array-tree-filter@2.1.0: {}
async-validator@4.2.5: {}
compute-scroll-into-view@1.0.20: {}
core-js@3.49.0: {}
csstype@3.2.3: {}
dayjs@1.11.20: {}
dom-align@1.12.4: {}
dom-scroll-into-view@2.0.1: {}
entities@7.0.1: {}
esbuild@0.18.20:
optionalDependencies:
'@esbuild/android-arm': 0.18.20
'@esbuild/android-arm64': 0.18.20
'@esbuild/android-x64': 0.18.20
'@esbuild/darwin-arm64': 0.18.20
'@esbuild/darwin-x64': 0.18.20
'@esbuild/freebsd-arm64': 0.18.20
'@esbuild/freebsd-x64': 0.18.20
'@esbuild/linux-arm': 0.18.20
'@esbuild/linux-arm64': 0.18.20
'@esbuild/linux-ia32': 0.18.20
'@esbuild/linux-loong64': 0.18.20
'@esbuild/linux-mips64el': 0.18.20
'@esbuild/linux-ppc64': 0.18.20
'@esbuild/linux-riscv64': 0.18.20
'@esbuild/linux-s390x': 0.18.20
'@esbuild/linux-x64': 0.18.20
'@esbuild/netbsd-x64': 0.18.20
'@esbuild/openbsd-x64': 0.18.20
'@esbuild/sunos-x64': 0.18.20
'@esbuild/win32-arm64': 0.18.20
'@esbuild/win32-ia32': 0.18.20
'@esbuild/win32-x64': 0.18.20
estree-walker@2.0.2: {}
fsevents@2.3.3:
optional: true
is-plain-object@3.0.1: {}
js-tokens@4.0.0: {}
lodash-es@4.17.23: {}
lodash@4.17.23: {}
loose-envify@1.4.0:
dependencies:
js-tokens: 4.0.0
magic-string@0.30.21:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
nanoid@3.3.11: {}
nanopop@2.4.2: {}
picocolors@1.1.1: {}
postcss@8.5.8:
dependencies:
nanoid: 3.3.11
picocolors: 1.1.1
source-map-js: 1.2.1
resize-observer-polyfill@1.5.1: {}
rollup@3.30.0:
optionalDependencies:
fsevents: 2.3.3
scroll-into-view-if-needed@2.2.31:
dependencies:
compute-scroll-into-view: 1.0.20
shallow-equal@1.2.1: {}
source-map-js@1.2.1: {}
stylis@4.3.6: {}
throttle-debounce@5.0.2: {}
typescript@4.9.5: {}
vite@4.5.14(@types/node@16.18.126):
dependencies:
esbuild: 0.18.20
postcss: 8.5.8
rollup: 3.30.0
optionalDependencies:
'@types/node': 16.18.126
fsevents: 2.3.3
vue-router@4.6.4(vue@3.5.30(typescript@4.9.5)):
dependencies:
'@vue/devtools-api': 6.6.4
vue: 3.5.30(typescript@4.9.5)
vue-tsc@0.35.2(typescript@4.9.5):
dependencies:
'@volar/vue-typescript': 0.35.2
typescript: 4.9.5
vue-types@3.0.2(vue@3.5.30(typescript@4.9.5)):
dependencies:
is-plain-object: 3.0.1
vue: 3.5.30(typescript@4.9.5)
vue@3.5.30(typescript@4.9.5):
dependencies:
'@vue/compiler-dom': 3.5.30
'@vue/compiler-sfc': 3.5.30
'@vue/runtime-dom': 3.5.30
'@vue/server-renderer': 3.5.30(vue@3.5.30(typescript@4.9.5))
'@vue/shared': 3.5.30
optionalDependencies:
typescript: 4.9.5
warning@4.0.3:
dependencies:
loose-envify: 1.4.0

View File

@ -1,14 +0,0 @@
{
"name": "process",
"version": "0.1.0",
"entry": "/process/",
"routeBase": "/process",
"routes": [
{
"path": "/process/antd-demo",
"title": "AntD Demo",
"perm": "process:demo:view"
}
]
}

View File

@ -1,4 +0,0 @@
<template>
<router-view />
</template>

View File

@ -1,8 +0,0 @@
import { createApp } from 'vue';
import App from './App.vue';
import router from './router';
import Antd from 'ant-design-vue';
import 'ant-design-vue/dist/reset.css';
createApp(App).use(router).use(Antd).mount('#app');

View File

@ -1,19 +0,0 @@
import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router';
import Demo from '../views/Demo.vue';
const routes: RouteRecordRaw[] = [
{
path: '/',
redirect: '/antd-demo'
},
{
path: '/antd-demo',
component: Demo
}
];
export default createRouter({
history: createWebHistory('/process/'),
routes
});

View File

@ -1,49 +0,0 @@
<template>
<div style="padding: 24px">
<a-typography-title :level="3" style="margin: 0 0 12px 0">
Ant Design Vue Demofront-process
</a-typography-title>
<a-alert
message="该页面由 front-system 通过 Wujie 挂载展示"
type="success"
show-icon
style="margin-bottom: 16px"
/>
<a-space>
<a-button type="primary" @click="onClick">AntD 按钮</a-button>
<a-tag color="blue">Vue3 + Vite</a-tag>
<a-tag color="green">Ant Design Vue</a-tag>
</a-space>
<a-divider />
<a-card title="示例表格" :bordered="false">
<a-table :columns="columns" :data-source="data" :pagination="false" row-key="id" />
</a-card>
</div>
</template>
<script setup lang="ts">
import type { TableColumnsType } from 'ant-design-vue';
import { message } from 'ant-design-vue';
type Row = { id: number; name: string; status: string };
const columns: TableColumnsType<Row> = [
{ title: 'ID', dataIndex: 'id', key: 'id', width: 80 },
{ title: '名称', dataIndex: 'name', key: 'name' },
{ title: '状态', dataIndex: 'status', key: 'status', width: 120 }
];
const data: Row[] = [
{ id: 1, name: '流程A', status: '启用' },
{ id: 2, name: '流程B', status: '停用' }
];
function onClick() {
message.success('Ant Design Vue 组件工作正常');
}
</script>

View File

@ -1,19 +0,0 @@
{
"compilerOptions": {
"target": "ES2020",
"useDefineForClassFields": true,
"module": "ESNext",
"moduleResolution": "Bundler",
"strict": true,
"jsx": "preserve",
"resolveJsonModule": true,
"isolatedModules": true,
"esModuleInterop": true,
"lib": ["ES2020", "DOM", "DOM.Iterable"],
"skipLibCheck": true,
"types": ["vite/client"],
"noEmit": true
},
"include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"]
}

View File

@ -1,13 +0,0 @@
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
export default defineConfig({
base: '/process/',
plugins: [vue()],
server: {
host: '0.0.0.0',
port: 5174,
strictPort: true
}
});

View File

@ -0,0 +1,15 @@
# http://editorconfig.org
root = true
[*] # 表示所有文件适用
charset = utf-8 # 设置文件字符集为 utf-8
indent_style = space # 缩进风格tab | space
indent_size = 2 # 缩进大小
end_of_line = lf # 控制换行类型(lf | cr | crlf)
trim_trailing_whitespace = true # 去除行首的任意空白字符
insert_final_newline = true # 始终在文件末尾插入一个新行
[*.md] # 表示仅 md 文件适用以下规则
max_line_length = off
trim_trailing_whitespace = false

View File

@ -0,0 +1,32 @@
## 开发环境
# 变量必须以 VITE_ 为前缀才能暴露给外部读取
NODE_ENV='development'
VITE_APP_TITLE = '水电水利建设项目全过程环境管理信息平台'
VITE_APP_PORT = 3000
VITE_APP_BASE_API = '/dev-api'
# 本地环境
VITE_APP_BASE_URL = 'http://10.84.121.127:8093'
# 测试环境
# VITE_APP_BASE_URL = 'http://172.16.21.142:8093'
# VITE_APP_BASE_URL = 'http://172.16.21.142:8096'
# 汤伟
# VITE_APP_BASE_URL = 'http://10.84.121.21:8093'
# VITE_APP_BASE_URL = 'http://192.168.1.162:8093'
# 测试环境线上10.84.121.122:
VITE_APP_TEST_ONLINE_URL = 'https://211.99.26.225:12122'
# 开发环境导入预览地址
VITE_APP_BASE_API_URL = 'http://10.84.121.21:8093'
## 开发环境 附件服务地址
VITE_APP_ATTACHMENT_URL = 'https://211.99.26.225:12125'
attachment
# 地图服务地址
VITE_APP_MAP_URL = 'https://211.99.26.225:18085'
# ?menu=systemManageMenu&page=disposeManage

View File

@ -0,0 +1,19 @@
## 生产环境
NODE_ENV='production'
VITE_APP_TITLE = 'qgc-buji-web'
VITE_APP_PORT = 3000
VITE_APP_BASE_API = '/prod-api'
## 生产环境API地址
VITE_APP_BASE_URL = 'http://localhost:8093'
## 生产环境导入预览地址
VITE_APP_BASE_API_URL = 'https://211.99.26.225:12130/prod-api'
## 生产环境预览 图片视频地址
VITE_APP_PREVIEW_URL = 'https://211.99.26.225:12125'
## 开发环境 附件服务地址
VITE_APP_ATTACHMENT_URL = 'https://211.99.26.225:12125'
attachment
# 地图服务地址
VITE_APP_MAP_URL = 'https://211.99.26.225:18085'

View File

@ -0,0 +1,6 @@
## 模拟环境
NODE_ENV='staging'
VITE_APP_TITLE = 'qgc-buji-web'
VITE_APP_PORT = 3000
VITE_APP_BASE_API = '/prod--api'

View File

@ -0,0 +1,16 @@
*.sh
node_modules
*.md
*.woff
*.ttf
.vscode
.idea
dist
/public
/docs
.husky
.local
/bin
.eslintrc.js
prettier.config.js
src/assets

View File

@ -0,0 +1,32 @@
module.exports = {
env: {
browser: true,
es2021: true,
node: true
},
globals: {
defineProps: 'readonly',
defineEmits: 'readonly',
defineExpose: 'readonly',
DialogType: "readonly",
OptionType: "readonly",
},
parser: 'vue-eslint-parser',
extends: [
'eslint:recommended',
'plugin:vue/vue3-essential',
'plugin:@typescript-eslint/recommended'
],
parserOptions: {
ecmaVersion: 'latest',
parser: '@typescript-eslint/parser',
sourceType: 'module'
},
plugins: ['vue', '@typescript-eslint'],
rules: {
'vue/multi-word-component-names': 'off',
'@typescript-eslint/no-empty-function': 'off', // 关闭空方法检查
'@typescript-eslint/no-explicit-any': 'off', // 关闭any类型的警告
'vue/no-v-model-argument': 'off'
}
};

17
frontend-sjtb/.gitignore vendored Normal file
View File

@ -0,0 +1,17 @@
node_modules
.DS_Store
dist
dist-ssr
*.local
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.local
package-lock.json
yarn.lock

View File

@ -0,0 +1,4 @@
{
"permissions": {},
"outputStyle": "Vibe"
}

View File

@ -0,0 +1,9 @@
/dist/*
.local
.output.js
/node_modules/**
**/*.svg
**/*.sh
/public/*

View File

@ -0,0 +1,36 @@
/**
* 代码格式化配置
*/
module.exports = {
// 指定每个缩进级别的空格数
tabWidth: 2,
// 使用制表符而不是空格缩进行
useTabs: false,
// 在语句末尾打印分号
semi: true,
// 使用单引号而不是双引号
singleQuote: true,
// 更改引用对象属性的时间 可选值"<as-needed|consistent|preserve>"
quoteProps: 'as-needed',
// 多行时尽可能打印尾随逗号。(例如,单行数组永远不会出现逗号结尾。) 可选值"<none|es5|all>"默认none
trailingComma: 'none',
// 在对象文字中的括号之间打印空格
bracketSpacing: true,
// 在单独的箭头函数参数周围包括括号 always(x) => x \ avoidx => x
arrowParens: 'avoid',
// 这两个选项可用于格式化以给定字符偏移量(分别包括和不包括)开始和结束的代码
rangeStart: 0,
rangeEnd: Infinity,
// 指定要使用的解析器,不需要写文件开头的 @prettier
requirePragma: false,
// 不需要自动在文件开头插入 @prettier
insertPragma: false,
// 换行设置 always\never\preserve
proseWrap: 'never',
// 指定HTML文件的全局空格敏感度 css\strict\ignore
htmlWhitespaceSensitivity: 'css',
// Vue文件脚本和样式标签缩进
vueIndentScriptAndStyle: false,
// 换行符使用 lf 结尾是 可选值"<auto|lf|crlf|cr>"
endOfLine: 'lf',
};

21
frontend-sjtb/LICENSE Normal file
View File

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2022 有来开源组织
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -0,0 +1,26 @@
module.exports = {
// 继承的规则
extends: ['@commitlint/config-conventional'],
// 定义规则类型
rules: {
// type 类型定义,表示 git 提交的 type 必须在以下类型范围内
'type-enum': [
2,
'always',
[
'feat', // 新功能 feature
'fix', // 修复 bug
'docs', // 文档注释
'style', // 代码格式(不影响代码运行的变动)
'refactor', // 重构(既不增加新功能也不是修复bug)
'perf', // 性能优化
'test', // 增加测试
'chore', // 构建过程或辅助工具的变动
'revert', // 回退
'build' // 打包
]
],
// subject 大小写不做校验
'subject-case': [0]
}
};

15
frontend-sjtb/index.html Normal file
View File

@ -0,0 +1,15 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" href="/logo.png" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="qgc-buji-web" />
<meta name="keywords" content="qgc-buji-web" />
<title>水电水利建设项目全过程环境管理信息平台数据填报子系统</title>
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/main.ts"></script>
</body>
</html>

View File

@ -0,0 +1,85 @@
{
"name": "qgc-buji-web",
"version": "1.2.0",
"scripts": {
"dev": "vite serve --mode development",
"build": "vite build --mode production",
"build:mvn": "vite build --mode production",
"serve": "vite preview",
"lint": "eslint src/**/*.{ts,js,vue} --fix",
"prettier": "prettier --write ."
},
"dependencies": {
"@ant-design/icons-vue": "^7.0.1",
"@element-plus/icons-vue": "^2.0.10",
"@types/js-cookie": "^3.0.2",
"@vueuse/core": "^9.1.1",
"@wangeditor/editor": "^5.0.0",
"@wangeditor/editor-for-vue": "^5.1.10",
"ant-design-vue": "latest",
"axios": "^1.2.0",
"better-scroll": "^2.4.2",
"cesium": "^1.141.0",
"dayjs": "^1.11.20",
"default-passive-events": "^2.0.0",
"dom-to-image": "^2.6.0",
"echarts": "^5.2.2",
"element-plus": "^2.2.27",
"esri-leaflet": "^3.0.19",
"js-base64": "^3.7.5",
"js-cookie": "^3.0.1",
"jsencrypt": "^3.3.2",
"jszip": "^3.10.1",
"leaflet": "^1.9.4",
"lodash": "^4.18.1",
"moment": "^2.30.1",
"nprogress": "^0.2.0",
"ol": "^10.8.0",
"path-browserify": "^1.0.1",
"path-to-regexp": "^6.2.0",
"pdfjs-dist": "^6.0.227",
"pinia": "^2.0.12",
"screenfull": "^6.0.0",
"sortablejs": "^1.14.0",
"video.js": "^8.23.7",
"videojs-contrib-hls": "^5.15.0",
"vue": "^3.2.40",
"vue-i18n": "^9.1.9",
"vue-router": "^4.1.6",
"vuedraggable": "^2.24.3",
"wujie": "^1.0.24",
"wujie-vue3": "^1.0.24",
"xlsx": "^0.18.5"
},
"devDependencies": {
"@commitlint/cli": "^16.2.3",
"@commitlint/config-conventional": "^16.2.1",
"@types/dom-to-image": "^2.6.7",
"@types/lodash": "^4.17.24",
"@types/node": "^16.11.7",
"@types/nprogress": "^0.2.0",
"@types/path-browserify": "^1.0.0",
"@typescript-eslint/eslint-plugin": "^5.19.0",
"@typescript-eslint/parser": "^5.19.0",
"@vitejs/plugin-vue": "^4.0.0",
"autoprefixer": "^10.4.13",
"eslint": "^8.14.0",
"eslint-config-prettier": "^8.5.0",
"eslint-plugin-prettier": "^4.0.0",
"eslint-plugin-vue": "^8.6.0",
"fast-glob": "^3.2.11",
"husky": "^7.0.4",
"postcss": "^8.4.20",
"prettier": "^2.6.2",
"sass": "^1.53.0",
"tailwindcss": "^3.2.4",
"typescript": "latest",
"vite": "^4.0.3",
"vite-plugin-cesium": "^1.2.22",
"vite-plugin-svg-icons": "^2.0.1",
"vue-tsc": "latest"
},
"repository": "https://gitee.com/youlaiorg/vue3-element-admin.git",
"author": "有来开源组织",
"license": "MIT"
}

8124
frontend-sjtb/pnpm-lock.yaml Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,6 @@
module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

1
frontend-sjtb/readme.md Normal file
View File

@ -0,0 +1 @@
这里放置前端项目的readme文件

15
frontend-sjtb/src/App.vue Normal file
View File

@ -0,0 +1,15 @@
<script setup lang="ts">
import { ElConfigProvider } from 'element-plus';
import { useAppStore,usetTheme } from '@/store/modules/app';
import locale from "ant-design-vue/es/locale/zh_CN";
const appStore = useAppStore();
</script>
<template>
<el-config-provider :locale="appStore.locale" :size="appStore.size">
<a-config-provider :theme="usetTheme" :locale="locale">
<router-view />
</a-config-provider>
</el-config-provider>
</template>

View File

@ -0,0 +1,175 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { LoginData, TokenResult, VerifyCode } from './types';
export function getAccessToken() {
return request({
url: '/register/accessToken',
method: 'get'
});
}
/**
*
* @param data {LoginForm}
* @returns
*/
export function loginApi(data: LoginData): AxiosPromise<TokenResult> {
return request({
url: '/user/login',
method: 'post',
params: data
});
}
/**
*
*/
export function logoutApi() {
return request({
url: '/user/logout',
method: 'post'
});
}
/**
*
*/
export function getCaptcha(): AxiosPromise<VerifyCode> {
return request({
url: '/user/code?t=' + new Date().getTime().toString(),
method: 'get'
});
}
/**
*
*/
export function registerUser(data: any): AxiosPromise<any> {
return request({
url: '/sms/register',
method: 'post',
data
});
}
/**
*
* @param companyId ID(),
*/
export function getBasinList(): AxiosPromise<any[]> {
return request({
url: '/register/dropdown/rvcd',
method: 'get',
headers: {
'register-token': localStorage.getItem('register-token') || ''
}
// params: baseid ? { baseid } : {}
});
}
/**
* (,)
*/
export function getGroupList(): AxiosPromise<any[]> {
return request({
url: '/register/dropdown/hycd',
method: 'get',
params: { lx: 1 },
headers: {
'register-token': localStorage.getItem('register-token') || ''
}
});
}
/**
*
*/
export function getCompanyList(): AxiosPromise<any[]> {
return request({
url: '/register/dropdown/hycd',
method: 'get',
params: { lx: 2 },
headers: {
'register-token': localStorage.getItem('register-token') || ''
}
});
}
/**
*
*/
export function getStationList(params: any): AxiosPromise<any[]> {
return request({
url: '/register/dropdown/engInfo',
method: 'post',
data: params,
headers: {
'register-token': localStorage.getItem('register-token') || ''
}
});
}
/**
*
* @param phone
* @param type 1- 2-
*/
export function sendSmsCode(phone: string, type = 1): AxiosPromise<any> {
return request({
url: '/sms/sendCode',
method: 'post',
data: { phone, type }
});
}
/**
*
* @param phone
* @param code
* @param type 1- 2-
*/
export function verifySmsCode(
phone: string,
code: string,
type = 1
): AxiosPromise<any> {
return request({
url: '/sms/verifyCode',
method: 'post',
data: { phone, code, type }
});
}
/**
*
* @param phone
* @param code
*/
export function smsLoginApi(
phone: string,
code: string
): AxiosPromise<TokenResult> {
return request({
url: '/sms/login',
method: 'post',
data: { phone, code }
});
}
/**
*
* @param phone
* @param code
* @param password
*/
export function resetPassword(
phone: string,
code: string,
password: string
): AxiosPromise<any> {
return request({
url: '/sms/resetPassword',
method: 'post',
data: { phone, code, password }
});
}

View File

@ -0,0 +1,34 @@
/**
*
*/
export interface LoginData {
username: string;
password: string;
code: string;
uuid: string;
/**
* Code
*/
//verifyCode: string;
/**
* Code服务端缓存key(UUID)
*/
// verifyCodeKey: string;
}
/**
* Token响应类型
*/
export interface TokenResult {
token: string;
refreshToken: string;
expires: number;
}
/**
*
*/
export interface VerifyCode {
verifyCodeImg: string;
verifyCodeKey: string;
}

View File

@ -0,0 +1,139 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { DeptForm, DeptQuery, Dept } from './types';
//获取组织架构
export function getTreelist(queryParams:any) {
return request({
url: '/system/organization/getOrgTree',
method: 'POST',
params: queryParams
});
}
//新增企业或部门
export function addTreelist(queryParams:any) {
return request({
url: '/system/organization/addOrg',
method: 'POST',
data: queryParams
});
}
// 修改企业部门
export function updataTreelist(queryParams:any) {
return request({
url: '/system/organization/updateById',
method: 'POST',
data: queryParams
});
}
//删除企业
export function delTreelist(queryParams:any) {
return request({
url: '/system/organization/deleteById',
method: 'POST',
params: queryParams
});
}
//获取部门信息
export function gettableData(queryParams:any) {
return request({
url: '/system/organization/getOrganizationById',
method: 'POST',
params: queryParams
});
}
//部门是否有效
export function deptIsVaild(queryParams:any) {
return request({
url: '/system/organization/setIsValid',
method: 'POST',
params: queryParams
});
}
//修改部门信息
export function reviseDepartment(queryParams:any) {
return request({
url: '/system/organization/updateById',
method: 'POST',
data: queryParams
});
}
/**
*
*
* @param queryParams
*/
export function listDepartments(queryParams?: DeptQuery): AxiosPromise<Dept[]> {
return request({
url: '/api/v1/dept',
method: 'get',
params: queryParams
});
}
/**
*
*/
export function listDeptOptions(): AxiosPromise<Dept[]> {
return request({
url: '/api/v1/dept/options',
method: 'get'
});
}
/**
*
*
* @param id
*/
export function getDeptForm(id: string): AxiosPromise<DeptForm> {
return request({
url: '/api/v1/dept/' + id + '/form',
method: 'get'
});
}
/**
*
*
* @param data
*/
export function addDept(data: DeptForm) {
return request({
url: '/api/v1/dept',
method: 'post',
data: data
});
}
/**
*
*
* @param id
* @param data
*/
export function updateDept(id: string, data: DeptForm) {
return request({
url: '/api/v1/dept/' + id,
method: 'put',
data: data
});
}
/**
*
*
* @param ids
*/
export function deleteDept(ids: string) {
return request({
url: '/api/v1/dept/' + ids,
method: 'delete'
});
}

View File

@ -0,0 +1,34 @@
/**
*
*/
export interface DeptQuery {
keywords: string | undefined;
status: number | undefined;
}
/**
*
*/
export interface Dept {
id: string;
name: string;
parentId: string;
treePath: string;
sort: number;
status: number;
leader?: string;
mobile?: string;
email?: string;
children: Dept[];
}
/**
*
*/
export interface DeptForm {
id?: string;
parentId: string;
name: string;
sort: number;
status: number;
}

View File

@ -0,0 +1,250 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import {
DictQuery,
DictPageResult,
DictTypeForm,
DictItemQuery,
DictItemPageResult,
DictItemForm
} from './types';
// 查询字典
export function getTreelist(params:any) {
return request({
url: '/system/dictionary/dictList',
method: 'get',
params: params
});
}
// 新增字典
export function addDict(params:any) {
return request({
url: '/system/dictionary/addDict',
method: 'post',
data: params
});
}
// 修改字典
export function updateDict(params:any) {
return request({
url: '/system/dictionary/updateDict',
method: 'post',
data: params
});
}
// 删除字典
export function deleteById(params:any) {
return request({
url: '/system/dictionary/deleteById',
method: 'post',
params: params
});
}
// 字典排序
export function changeDictOrder(params:any) {
return request({
url: '/system/dictionary/changeDictOrder',
method: 'post',
params: params
});
}
// 查询字典项
export function getDictItemById(params:any) {
return request({
url: '/system/dictionaryItems/page',
method: 'get',
params: params
});
}
// 新增字典项
export function addDictionaryItem(params:any) {
return request({
url: '/system/dictionaryItems/addDictionaryItem',
method: 'post',
data: params
});
}
// 修改字典项
export function updateDictionaryItem(params:any) {
return request({
url: '/system/dictionaryItems/updateDictionaryItem',
method: 'post',
data: params
});
}
// 删除字典项
export function deleteDictItemById(params:any) {
return request({
url: '/system/dictionaryItems/deleteDictItemById',
method: 'post',
params: params
});
}
// 批量删除字典项
export function deleteDictItemByIds(params:any) {
return request({
url: '/system/dictionaryItems/deleteDictItemByIds',
method: 'post',
params: params
});
}
// 字典项排序
export function changeItemOrder(params:any) {
return request({
url: '/system/dictionaryItems/changeItemOrder',
method: 'post',
params: params
});
}
//根据字典编号查询字典项列表
export function getDictItemsByCode(params:any) {
return request({
url: '/system/dictionary/getDictItemsByCode',
method: 'get',
params: params
});
}
/**
*
*
* @param queryParams
*/
export function listDictTypePages(
queryParams: DictQuery
): AxiosPromise<DictPageResult> {
return request({
url: '/api/v1/dict/types/pages',
method: 'get',
params: queryParams
});
}
/**
*
*
* @param id
*/
export function getDictTypeForm(id: number): AxiosPromise<DictTypeForm> {
return request({
url: '/api/v1/dict/types/' + id + '/form',
method: 'get'
});
}
/**
*
*
* @param data
*/
export function addDictType(data: DictTypeForm) {
return request({
url: '/api/v1/dict/types',
method: 'post',
data: data
});
}
/**
*
*
* @param id
* @param data
*/
export function updateDictType(id: number, data: DictTypeForm) {
return request({
url: '/api/v1/dict/types/' + id,
method: 'put',
data: data
});
}
/**
*
*/
export function deleteDictTypes(ids: string) {
return request({
url: '/api/v1/dict/types/' + ids,
method: 'delete'
});
}
/**
*
*
* @param typeCode
*/
export function getDictionaries(typeCode: string): AxiosPromise<any[]> {
return request({
url: '/api/v1/dict/types/' + typeCode + '/items',
method: 'get'
});
}
/**
*
*/
export function listDictItemPages(
queryParams: DictItemQuery
): AxiosPromise<DictItemPageResult> {
return request({
url: '/api/v1/dict/items/pages',
method: 'get',
params: queryParams
});
}
/**
*
*
* @param id
*/
export function getDictItemData(id: number): AxiosPromise<DictItemForm> {
return request({
url: '/api/v1/dict/items/' + id + '/form',
method: 'get'
});
}
/**
*
*
* @param data
*/
export function saveDictItem(data: DictItemForm) {
return request({
url: '/api/v1/dict/items',
method: 'post',
data: data
});
}
/**
*
*
* @param id
* @param data
*/
export function updateDictItem(id: number, data: DictItemForm) {
return request({
url: '/api/v1/dict/items/' + id,
method: 'put',
data: data
});
}
/**
*
*
* @param ids ID(,)
*/
export function deleteDictItems(ids: string) {
return request({
url: '/api/v1/dict/items/' + ids,
method: 'delete'
});
}

View File

@ -0,0 +1,92 @@
/**
*
*/
export interface DictQuery extends PageQuery {
/**
*
*/
name?: string;
}
interface PageResult<T> {
total: number;
list: T[];
}
/**
*
*/
export interface Dict {
id: number;
code: string;
name: string;
status: number;
remark: string;
}
/**
*
*/
export type DictPageResult = PageResult<Dict[]>;
/**
*
*/
export interface DictTypeForm {
id: number | undefined;
name: string;
code: string;
status: number;
remark: string;
}
interface PageQuery {
pageIndex: number;
pageSize: number;
}
/**
*
*/
export interface DictItemQuery extends PageQuery {
/**
*
*/
name?: string;
/**
*
*/
typeCode?: string;
}
/**
*
*/
export interface DictItem {
id: number;
name: string;
value: string;
typeCode: string;
sort: number;
status: number;
defaulted: number;
remark?: string;
}
/**
*
*/
export type DictItemPageResult = PageResult<DictItem[]>;
/**
*
*/
export interface DictItemForm {
id?: number;
typeCode?: string;
typeName?: string;
name: string;
code: string;
value: string;
status: number;
sort: number;
remark: string;
}

View File

@ -0,0 +1,34 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { FileInfo } from './types';
/**
*
*
* @param file
*/
export function uploadFileApi(file: File): AxiosPromise<FileInfo> {
const formData = new FormData();
formData.append('file', file);
return request({
url: '/api/v1/files',
method: 'post',
data: formData,
headers: {
'Content-Type': 'multipart/form-data'
}
});
}
/**
*
*
* @param filePath
*/
export function deleteFileApi(filePath?: string) {
return request({
url: '/api/v1/files',
method: 'delete',
params: { filePath: filePath }
});
}

View File

@ -0,0 +1,7 @@
/**
* API类型声明
*/
export interface FileInfo {
name: string;
url: string;
}

View File

@ -0,0 +1,138 @@
import request from '@/utils/request';
// 分页查询过鱼数据
export function getFishDraftPage(data: any) {
return request({
url: '/data/fishDraft/page',
method: 'post',
data
});
}
//新增过鱼数据
export function addFishDraft(queryParams: any) {
return request({
url: '/data/fishDraft/saveDraft',
method: 'post',
data: queryParams
});
}
//修改过鱼数据
export function editFishDraft(queryParams: any) {
return request({
url: '/data/fishDraft/updateDraft',
method: 'post',
data: queryParams
});
}
//删除 过鱼数据
export function delFishDraft(data: any) {
return request({
url: '/data/fishDraft/batchRemoveDraft',
method: 'post',
data
});
}
//提交过鱼数据
export function submitFishDraft(data: any) {
return request({
url: '/data/fishDraft/submitDrafts',
method: 'post',
data
});
}
//提交全部过鱼数据
export function batchApproveAll() {
return request({
url: '/data/fishDraft/submitDraftsAll',
method: 'post'
});
}
//审批过鱼数据
export function successFishDraft(data: any) {
return request({
url: '/data/fishDraft/batchApprove',
method: 'post',
data
});
}
//驳回过鱼数据
export function rejectFishDraft(data: any) {
return request({
url: '/data/fishDraft/reject',
method: 'post',
data
});
}
// 导入zip
export function importFishZip(data: FormData) {
return request({
url: '/data/fishDraft/importZip',
method: 'post',
data,
headers: { 'Content-Type': 'multipart/form-data' },
timeout: 1000 * 60 * 5 // 5分钟
});
}
// 取消导入任务
export function cancelImportTask(data: any) {
return request({
url: '/data/fishDraft/cancelImport',
method: 'post',
data
});
}
//检测用户导入状态
export function checkImportStatus() {
return request({
url: '/data/fishDraft/checkImportStatus',
method: 'get'
});
}
// 查询用户导入结果
export function getLastImportResult() {
return request({
url: '/data/fishDraft/getLastImportResult',
method: 'get'
});
}
export function deleteFile(params: any) {
return request({
url: '/data/fishDraft/deleteFile',
method: 'get',
params
});
}
// 批量保存草稿
export function batchSaveDraft(data: any) {
return request({
url: '/data/fishDraft/batchSaveDraft',
method: 'post',
data
});
}
// 批量删除 审批已驳回的
export function batchRemoveDraft(data: any) {
return request({
url: '/data/approvalMain/batchDelete',
method: 'post',
data
});
}
// 过鱼倒数统计
export function statistics(data: any) {
return request({
url: '/data/fishDraft/statistics',
method: 'post',
data
});
}
// 催促
export function batchUrgeContent(data: any) {
return request({
url: '/sms/batchUrgeContent',
method: 'post',
data
});
}

View File

@ -0,0 +1,159 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { MenuQuery, Menu, Resource, MenuForm } from './types';
//获取菜单表格
export function getdata(queryParams:any) {
return request({
url: '/system/menu/getMenuButtonTree',
method: 'post',
params: queryParams
});
}
//新增目录
export function addmenu(queryParams:any) {
return request({
url: '/system/menu/addMenu',
method: 'post',
data: queryParams
});
}
//修改目录
export function editmenu(queryParams:any) {
return request({
url: '/system/menu/updateById',
method: 'post',
data: queryParams
});
}
//删除
export function deltmenu(queryParams:any) {
return request({
url: '/system/menu/deleteById',
method: 'post',
params: queryParams
});
}
//排序
export function moveOrderno(params:any) {
return request({
url: '/system/menu/changeMenuOrder',
method: 'post',
params: params
});
}
//上传图标之前获取ID
//上传单个图标
export function uploadIcon (data:any) {
return request({
headers: {
'Content-Type': 'multipart/form-data'
},
url: '/system/menu/uploadIcon',
method: 'POST',
data
});
}
//删除单个图标
export function moveIcon(params:any) {
return request({
url: '/system/menu/deleteIcon',
method: 'post',
params: params
});
}
/**
*
*/
export function listRoutes() {
return request({
url: 'system/menu/treeRoutes',
method: 'get',
});
}
/**
*
*
* @param queryParams
*/
export function listMenus(queryParams: MenuQuery): AxiosPromise<Menu[]> {
return request({
url: '/api/v1/menus',
method: 'get',
params: queryParams
});
}
/**
*
*/
export function listMenuOptions(): AxiosPromise<Menu[]> {
return request({
url: '/api/v1/menus/options',
method: 'get'
});
}
/**
* (+)
*/
export function listResources(): AxiosPromise<Resource[]> {
return request({
url: '/api/v1/menus/resources',
method: 'get'
});
}
/**
*
* @param id
*/
export function getMenuDetail(id: string): AxiosPromise<MenuForm> {
return request({
url: '/api/v1/menus/' + id,
method: 'get'
});
}
/**
*
*
* @param data
*/
export function addMenu(data: MenuForm) {
return request({
url: '/api/v1/menus',
method: 'post',
data: data
});
}
/**
*
*
* @param id
* @param data
*/
export function updateMenu(id: string, data: MenuForm) {
return request({
url: '/api/v1/menus/' + id,
method: 'put',
data: data
});
}
/**
*
*
* @param ids ID(,)
*/
export function deleteMenus(ids: string) {
return request({
url: '/api/v1/menus/' + ids,
method: 'delete'
});
}

View File

@ -0,0 +1,105 @@
/**
*
*/
export interface MenuQuery {
keywords?: string;
}
/**
*
*/
export interface Menu {
id?: number;
parentId: number;
type?: string | 'CATEGORY' | 'MENU' | 'EXTLINK';
createTime: string;
updateTime: string;
name: string;
icon: string;
component: string;
sort: number;
visible: number;
children: Menu[];
}
/**
*
*/
export interface MenuForm {
/**
* ID
*/
id?: string;
/**
* ID
*/
parentId: string;
/**
*
*/
name: string;
/**
* (1:;0:;)
*/
visible: number;
icon?: string;
/**
*
*/
sort: number;
/**
*
*/
component?: string;
/**
*
*/
path: string;
/**
*
*/
redirect?: string;
/**
*
*/
type: string;
/**
*
*/
perm?: string;
}
/**
* (+)
*/
export interface Resource {
/**
*
*/
value: string;
/**
*
*/
label: string;
/**
*
*/
children: Resource[];
}
/**
*
*/
export interface Permission {
/**
*
*/
value: string;
/**
*
*/
label: string;
}

View File

@ -0,0 +1,18 @@
import request from '@/utils/request';
//获取所有角色
export function getLogList(params:any){
return request({
url: '/system/log/getLogList' ,
method: 'post',
params: params
});
}
export function exportExcel(queryParams: any) {
return request({
url: '/system/log/exportExcel',
method: 'get',
params: queryParams,
responseType: 'arraybuffer'
});
}

View File

@ -0,0 +1,196 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { RoleQuery, RoleForm } from './types';
//获取所有角色
export function listRolePages(queryParams:any){
return request({
url: '/system/role/list' ,
method: 'post',
params:queryParams
});
}
//角色是否有效
export function isvaildTo(queryParams:any){
return request({
url: '/system/role/setIsvaild' ,
method: 'post',
params:queryParams
});
}
//新增角色
export function addDept(queryParams:any){
return request({
url:'/system/role/addRole' ,
method: 'post',
data: queryParams
});
}
//更新角色信息
export function renewDept (queryParams:any){
return request({
url:'/system/role/updateById' ,
method: 'post',
data: queryParams
});
}
//单个删除角色
export function deleDept (queryParams:any){
return request({
url:'/system/role/deleteById' ,
method: 'post',
params: queryParams
});
}
//获取分配权限
export function assignmentPer (queryParams:any){
return request({
url:'/system/menu/permissionAssignment' ,
method: 'post',
params: queryParams
});
}
//发出分配权限
export function setMenuById (queryParams:any){
return request({
url:'/system/role/setMenuById' ,
method: 'post',
params: queryParams
});
}
////获取组织范围
export function setOrgscope (queryParams:any){
return request({
url:'/system/organization/getOrgScopeTree' ,
method: 'post',
params: queryParams
});
}
//修改组织范围
export function postOrgscope (queryParams:any){
return request({
url:'/system/role/setOrgscope' ,
method: 'post',
params: queryParams
});
}
//删除角色
// export function delDept(queryParams:any){
// return request({
// url:'/system/role/addRole' ,
// method: 'post',
// data: queryParams
// });
// }
/**
*
*
* @param queryParam
*/
// export function listRolePages(
// queryParams?: RoleQuery
// ): AxiosPromise<RolePageResult> {
// return request({
// url: '/system/role/list',
// method: 'post',
// params: queryParams
// });
// }
/**
*
*
* @param queryParams
*/
export function listRoleOptions(
queryParams?: RoleQuery
): AxiosPromise<any[]> {
return request({
url: '/api/v1/roles/options',
method: 'get',
params: queryParams
});
}
/**
* ID集合
*
* @param queryParams
*/
export function getRoleMenuIds(roleId: string): AxiosPromise<number[]> {
return request({
url: '/api/v1/roles/' + roleId + '/menuIds',
method: 'get'
});
}
/**
*
*
* @param queryParams
*/
export function updateRoleMenus(
roleId: string,
data: number[]
): AxiosPromise<any> {
return request({
url: '/api/v1/roles/' + roleId + '/menus',
method: 'put',
data: data
});
}
/**
*
*
* @param id
*/
export function getRoleDetail(id: number): AxiosPromise<RoleForm> {
return request({
url: '/api/v1/roles/' + id,
method: 'get'
});
}
/**
*
*
* @param data
*/
export function addRole(data: RoleForm) {
return request({
url: '/api/v1/roles',
method: 'post',
data: data
});
}
/**
*
*
* @param id
* @param data
*/
export function updateRole(id: number, data: RoleForm) {
return request({
url: '/api/v1/roles/' + id,
method: 'put',
data: data
});
}
/**
* (,)
*
* @param ids
*/
export function deleteRoles(ids: string) {
return request({
url: '/api/v1/roles/' + ids,
method: 'delete'
});
}

View File

@ -0,0 +1,47 @@
/**
*
*/
interface PageQuery {
pageIndex: number;
pageSize: number;
}
export interface RoleQuery extends PageQuery {
keywords?: string;
}
interface PageResult<T> {
total: number;
list: T[];
}
/**
*
*/
export interface Role {
id: string;
name: string;
code: string;
sort: number;
status: number;
deleted: number;
menuIds?: any;
permissionIds?: any;
}
/**
*
*/
export type RolePageResult = PageResult<Role[]>;
/**
*
*/
export interface RoleForm {
id?: number;
name: string;
code: string;
sort: number;
status: number;
/**
*
*/
dataScope: number;
}

View File

@ -0,0 +1,75 @@
import request from '@/utils/request';
// 基地下拉列表
export function getBaseDropdown(data: any) {
return request({
url: '/env/hydrobase/dropdown',
method: 'get',
data
});
}
// 流域下拉列表
export function getSelectForDropdown(data: any) {
return request({
url: '/env/rvcd/selectForDropdown',
method: 'get',
data
});
}
//电站下拉列表
export function getEngInfoDropdown(data: any) {
return request({
url: '/env/engInfo/dropdown',
method: 'post',
data
});
}
// 重新验证并更新行数据
export function revalidateAndUpdateRow(data: any) {
return request({
url: '/data/fishDraft/revalidateAndUpdateRow',
method: 'post',
data
});
}
// 删除 行数据
export function deleteRowById(data: any) {
return request({
url: '/data/fishDraft/deleteRowById',
method: 'post',
data
});
}
//过鱼设施下拉列表
export function getFpssDropdown(params: any) {
return request({
url: '/env/fpss/dropdown',
method: 'get',
params
});
}
//鱼类名称下拉列表
export function getFishDictoryDropdown() {
return request({
url: '/env/fishDictory/listByName',
method: 'get'
});
}
// 类似鱼类名称下拉列表
export function getSimilarFishDictoryDropdown(params: any) {
return request({
url: '/env/fishDictory/similar',
method: 'get',
params
});
}
// 上传文件
export function uploadFile(data: any) {
return request({
url: import.meta.env.VITE_APP_ATTACHMENT_URL + '/upload',
method: 'post',
data,
headers: { 'Content-Type': 'multipart/form-data' }
});
}

View File

@ -0,0 +1,45 @@
import request from '@/utils/request';
export function queryPageList(queryParams:any){
return request({
url: '/data/approvalMain/queryPageList' ,
method: 'post',
data:queryParams
});
}
// 查询审批操作日志列表
export function getApprovalLogList(params: any) {
return request({
url: '/data/approvalLog/queryPageList',
method: 'post',
data: params
});
}
// 查询审批变更记录列表
export function getApprovalChangeLogList(params: any) {
return request({
url: '/data/approvalChangeLog/queryPageList',
method: 'post',
data: params
});
}
// 批量审批
export function batchApproveByApprovalId(data: any) {
return request({
url: '/data/fishDraft/batchApproveByApprovalId',
method: 'post',
data
});
}
// 批量驳回
export function batchReject(data: { approvalIds: string[], rejectReason: string }) {
return request({
url: '/data/fishDraft/batchReject',
method: 'post',
data
});
}

View File

@ -0,0 +1,62 @@
import request from '@/utils/request';
/**
* Kendo
* @param params
* @param sortConfig
*/
export function getKendoList(params: any, sortConfig?: any[]) {
return request({
url: '/dec-lygk-base-server/base/vmsstbprpt/GetKendoList',
method: 'post',
data: {
filters: params,
sorts: sortConfig || []
}
});
}
/**
* Kendo
* @param params
* @param sortConfig
*/
export function getKendoListCust(params: any, sortConfig?: any[]) {
return request({
url: '/dec-lygk-base-server/base/vmsstbprpt/GetKendoListCust',
method: 'post',
data: {
filters: params,
sorts: sortConfig || []
}
});
}
/**
* other
* @param filters
* @param sorts
* @param needTotal
* @param fields
* @param defaultSort
*/
export function getIntroduce(
filters: any[],
sorts?: any[],
needTotal?: boolean,
fields?: string[],
defaultSort?: any
) {
return request({
url: '/dec-lygk-base-server/base/introduce/getIntroduce',
method: 'post',
data: {
logic: 'and',
filters: filters,
sorts: sorts || [],
needTotal: needTotal || false,
fields: fields || [],
defaultSort: defaultSort
}
});
}

View File

@ -0,0 +1,26 @@
import request from '@/utils/request';
// 获取所有沿程配置数据
export function getAllConfigTree(data: any) {
return request({
url: '/api/dec-lygk-base-server/base/msalongb/GetKendoList',
method: 'post',
data: data
});
}
// 保存沿程配置
export function saveBaseWbsb(data: any) {
return request({
url: '/api/dec-lygk-base-server/base/wbsb/addOrUpdate',
method: 'post',
data: data
});
}
// 删除沿程配置
export function deleteBaseWbsb(data: any) {
return request({
url: '/api/dec-lygk-base-server/base/wbsb/delete',
method: 'get',
params: data
});
}

View File

@ -0,0 +1,34 @@
import request from '@/utils/request';
// 获取所有地图 图层树
export function getAllMapLayerTree(data: any) {
return request({
url: '/api/wmp-sys-server/mapLayer/getAllMapLayerTree',
method: 'post',
data: data
});
}
// 保存地图 图层
export function saveMapLayer(data: any) {
return request({
url: '/api/wmp-sys-server/mapLayer/save',
method: 'post',
data: data
});
}
// 删除地图 图层
export function deleteMapLayer(data: any) {
return request({
url: '/api/wmp-sys-server/mapLayer/delete',
method: 'post',
data: data
});
}
// 获取所有地图 图层树
export function getAllMapLayerParentIdTree(data: any) {
return request({
url: '/api/wmp-sys-server/mapLayer/getAllMapLayerTree',
method: 'post',
data: data
});
}

View File

@ -0,0 +1,35 @@
import request from '@/utils/request';
// 获取所有地图 图例树
export function getAllMapLegendTree(data: any) {
return request({
url: '/api/wmp-sys-server/mapLegend/GetKendoList',
method: 'post',
data: data
});
}
// 保存地图 图例
export function saveMapLegend(data: any) {
return request({
url: '/api/wmp-sys-server/mapLegend/save',
method: 'post',
data: data
});
}
// 删除地图 图例
export function deleteMapLegend(data: any) {
return request({
url: '/api/wmp-sys-server/mapLegend/delete',
method: 'post',
data: data
});
}
// 获取所有地图 图例树
export function getAllMapLegendParentIdTree(data: any) {
return request({
url: '/api/wmp-sys-server/mapLegend/getAllMapLegendTree',
method: 'get',
params: data
});
}

View File

@ -0,0 +1,26 @@
import request from '@/utils/request';
// 获取所有倾斜摄影
export function getAllTiltPhotoTree(data: any) {
return request({
url: '/api/wmp-sys-server/sys/oblique/GetKendoListCust',
method: 'post',
data: data
});
}
// 保存倾斜摄影
export function saveTiltPhoto(data: any) {
return request({
url: '/api/wmp-sys-server/sys/oblique/addOrUpdate',
method: 'post',
data: data
});
}
// 删除倾斜摄影
export function deleteTiltPhoto(data: any) {
return request({
url: '/api/wmp-sys-server/sys/oblique/delete',
method: 'get',
params: data
});
}

View File

@ -0,0 +1,279 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { UserForm, UserInfo, UserPageResult, UserQuery } from './types';
//获取企业树 数据
export function getTreelist(queryParams:any) {
return request({
url: '/system/organization/getOrgTree',
method: 'POST',
params: queryParams
});
}
//获取用户列表信息
export function gettableData(queryParams:any) {
return request({
url: '/system/user/queryUsers',
method: 'get',
params: queryParams
});
}
// 审核用户列表
export function queryPendingAuditUsers(queryParams:any) {
return request({
url: '/system/user/queryPendingAuditUsers',
method: 'get',
params: queryParams
});
}
//用户-禁用,启用
export function DataStatus (queryParams:any) {
return request({
url: '/system/user/setStatus',
method: 'POST',
params: queryParams
});
}
//删除用户
export function deltableData (queryParams:any) {
return request({
url: '/system/user/deleteById',
method: 'POST',
params: queryParams
});
}
//批量删除
export function delChoise (queryParams:any) {
return request({
url: '/system/user/deleteUserByIds',
method: 'POST',
params: queryParams
});
}
//获取角色
export function getRole (queryParams:any) {
return request({
url: '/system/role/list',
method: 'POST',
params: queryParams
});
}
//新建用户
export function addUsers (queryParams:any,roleids:any) {
return request({
url: '/system/user/addUser?'+'roleids='+roleids,
method: 'POST',
data: queryParams,
});
}
//更改用户
export function updataUser (queryParams:any,roleids:any) {
return request({
url: '/system/user/updateUser?'+'roleids='+roleids,
method: 'POST',
data: queryParams,
});
}
//更改用户
export function updatePersonalInfo (queryParams:any) {
return request({
url: '/user/updatePersonalInfo',
method: 'POST',
data: queryParams,
});
}
//更改头像
export function updateAvatar (data:any) {
return request({
headers: {
'Content-Type': 'multipart/form-data'
},
url: '/system/user/updateAvatar',
method: 'POST',
data
});
}
//重置密码
export function setpass (queryParams:any) {
return request({
url: '/system/user/resetPassword',
method: 'POST',
params: queryParams,
});
}
export function updatePassword (queryParams:any) {
return request({
url: '/user/updatePassword',
method: 'GET',
params: queryParams,
});
}
//获取过鱼设施权限树
export function getFishtree(queryParams:any) {
return request({
url: '/env/tree/rvcdEng',
method: 'get',
params: queryParams
});
}
//保存权限
export function saveFishqvan(queryParams:any) {
return request({
url: '/data/userDataScope/batchAdd',
method: 'post',
data: queryParams
});
}
//查询用户有效权限
export function getuserdata(queryParams:any) {
return request({
url: '/data/userDataScope/getValidPermissions',
method: 'get',
params: queryParams
});
}
// 审计用户(审批通过/驳回)
export function auditUser(data: any) {
return request({
url: '/system/user/auditUser',
method: 'post',
data
});
}
/**
*
*/
export function getUserInfo(): AxiosPromise<UserInfo> {
return request({
url: '/user/me',
method: 'get'
});
}
/**
*
*
* @param queryParams
*/
export function listUserPages(
queryParams: UserQuery
): AxiosPromise<UserPageResult> {
return request({
url: '/api/v1/users/pages',
method: 'get',
params: queryParams
});
}
/**
*
*
* @param userId
*/
export function getUserForm(userId: number): AxiosPromise<UserForm> {
return request({
url: '/api/v1/users/' + userId + '/form',
method: 'get'
});
}
/**
*
*
* @param data
*/
export function addUser(data: any) {
return request({
url: '/api/v1/users',
method: 'post',
data: data
});
}
/**
*
*
* @param id
* @param data
*/
export function updateUser(id: number, data: UserForm) {
return request({
url: '/api/v1/users/' + id,
method: 'put',
data: data
});
}
/**
*
*
* @param id
* @param status
*/
export function updateUserStatus(id: number, status: number) {
return request({
url: '/api/v1/users/' + id + '/status',
method: 'patch',
params: { status: status }
});
}
/**
*
*
* @param id
* @param password
*/
export function updateUserPassword(id: number, password: string) {
return request({
url: '/api/v1/users/' + id + '/password',
method: 'patch',
params: { password: password }
});
}
/**
*
*
* @param ids
*/
export function deleteUsers(ids: string) {
return request({
url: '/api/v1/users/' + ids,
method: 'delete'
});
}
/**
*
*
* @returns
*/
export function downloadTemplate() {
return request({
url: '/api/v1/users/template',
method: 'get',
responseType: 'arraybuffer'
});
}
/**
*
*
* @param queryParams
* @returns
*/
export function exportUser(queryParams: UserQuery) {
return request({
url: '/api/v1/users/_export',
method: 'get',
params: queryParams,
responseType: 'arraybuffer'
});
}

View File

@ -0,0 +1,75 @@
/**
*
*/
export interface UserInfo {
permissions: string[];
userInfo: any;
nickname: string;
avatar: string;
roles: string[];
perms: string[];
}
/**
*
*/
export interface PageQuery {
keywords: string;
status: number;
deptId: number;
}
export interface UserQuery extends PageQuery {
keywords: string;
status: number;
deptId: number;
}
/**
*
*/
export interface UserType {
id: string;
username: string;
nickname: string;
mobile: string;
gender: number;
avatar: string;
email: string;
status: number;
deptName: string;
roleNames: string;
createTime: string;
}
interface PageResult<T> {
total: number;
list: T[];
}
/**
*
*/
export type UserPageResult = PageResult<any[]>;
/**
*
*/
export interface UserForm {
id: number | undefined;
deptId: number;
username: string;
nickname: string;
password: string;
mobile: string;
email: string;
gender: number;
status: number;
remark: string;
roleIds: number[];
}
/**
*
*/
export interface UserImportData {
deptId: number;
roleIds: number[];
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 243 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 253 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 528 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 491 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 640 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 642 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 366 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 564 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 537 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 520 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 527 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 677 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 655 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 469 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 462 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 385 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 372 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 289 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 317 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 313 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 401 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 427 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 223 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 233 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 513 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 662 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 485 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 448 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 359 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 171 B

Some files were not shown because too many files have changed in this diff Show More