Commit 80135afd6cbd5c0eff7e6738d8b902bf1d7a9cfe
Merge branch 'warning'
Showing
52 changed files
with
11606 additions
and
2271 deletions
.umirc.ts
... | ... | @@ -15,8 +15,8 @@ export default defineConfig({ |
15 | 15 | proxy: { |
16 | 16 | '/api/': { |
17 | 17 | target: 'http://localhost:8085/', |
18 | - // target: 'http://192.168.1.6:8085/', | |
19 | - // target: 'http://39.108.227.113:8085/', | |
18 | + //target: 'http://192.168.1.6:8085/', | |
19 | + //target: 'http://39.108.227.113:8085/', | |
20 | 20 | changeOrigin: true, |
21 | 21 | pathRewrite: { '^/api': '' }, |
22 | 22 | }, |
... | ... | @@ -141,10 +141,21 @@ export default defineConfig({ |
141 | 141 | }, |
142 | 142 | { |
143 | 143 | name: '客户管理', |
144 | - path: '/client', | |
145 | - component: './Client', | |
144 | + path: '/Client', | |
146 | 145 | icon: 'BookOutlined', |
147 | 146 | access: 'canReadAdminAndSales', |
147 | + routes: [ | |
148 | + { | |
149 | + name: '客户列表', | |
150 | + path: 'clint', | |
151 | + component: './Client/Client', | |
152 | + }, | |
153 | + { | |
154 | + name: '跟进记录', | |
155 | + path: 'FollowRecord', | |
156 | + component: './Client/FollowRecord', | |
157 | + }, | |
158 | + ], | |
148 | 159 | }, |
149 | 160 | { |
150 | 161 | name: '打印', | ... | ... |
order-erp.service-1.0-SNAPSHOT.jar
0 → 100644
No preview for this file type
package-lock.json
... | ... | @@ -4498,6 +4498,12 @@ |
4498 | 4498 | "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-2.0.3.tgz", |
4499 | 4499 | "integrity": "sha512-jhAJzaanK5LqyLQ50jJNIrB8fjL9gwWZTgYjevPvkDLMU+kTAZkYsobI59nYoeSrH1PucuyJEi247Pb90t6XUg==" |
4500 | 4500 | }, |
4501 | + "node_modules/@types/estree": { | |
4502 | + "version": "1.0.6", | |
4503 | + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", | |
4504 | + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", | |
4505 | + "peer": true | |
4506 | + }, | |
4501 | 4507 | "node_modules/@types/geojson": { |
4502 | 4508 | "version": "7946.0.14", |
4503 | 4509 | "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.14.tgz", |
... | ... | @@ -4516,6 +4522,16 @@ |
4516 | 4522 | "resolved": "https://registry.npmjs.org/@types/hapi__joi/-/hapi__joi-17.1.9.tgz", |
4517 | 4523 | "integrity": "sha512-oOMFT8vmCTFncsF1engrs04jatz8/Anwx3De9uxnOK4chgSEgWBvFtpSoJo8u3784JNO+ql5tzRR6phHoRnscQ==" |
4518 | 4524 | }, |
4525 | + "node_modules/@types/history": { | |
4526 | + "version": "5.0.0", | |
4527 | + "resolved": "https://registry.npmjs.org/@types/history/-/history-5.0.0.tgz", | |
4528 | + "integrity": "sha512-hy8b7Y1J8OGe6LbAjj3xniQrj3v6lsivCcrmf4TzSgPzLkhIeKgc5IZnT7ReIqmEuodjfO8EYAuoFvIrHi/+jQ==", | |
4529 | + "deprecated": "This is a stub types definition. history provides its own type definitions, so you do not need this installed.", | |
4530 | + "peer": true, | |
4531 | + "dependencies": { | |
4532 | + "history": "*" | |
4533 | + } | |
4534 | + }, | |
4519 | 4535 | "node_modules/@types/hoist-non-react-statics": { |
4520 | 4536 | "version": "3.3.5", |
4521 | 4537 | "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz", |
... | ... | @@ -4535,6 +4551,12 @@ |
4535 | 4551 | "resolved": "https://registry.npmjs.org/@types/invariant/-/invariant-2.2.37.tgz", |
4536 | 4552 | "integrity": "sha512-IwpIMieE55oGWiXkQPSBY1nw1nFs6bsKXTFskNY8sdS17K24vyEBRQZEwlRS7ZmXCWnJcQtbxWzly+cODWGs2A==" |
4537 | 4553 | }, |
4554 | + "node_modules/@types/isomorphic-fetch": { | |
4555 | + "version": "0.0.34", | |
4556 | + "resolved": "https://registry.npmjs.org/@types/isomorphic-fetch/-/isomorphic-fetch-0.0.34.tgz", | |
4557 | + "integrity": "sha512-BmJKuPCZCR6pbYYgi5nKFJrPC4pLoBgsi/B1nFN64Ba+hLLGUcKPIh7eVlR2xG763Ap08hgQafq/Wx4RFb0omQ==", | |
4558 | + "peer": true | |
4559 | + }, | |
4538 | 4560 | "node_modules/@types/istanbul-lib-coverage": { |
4539 | 4561 | "version": "2.0.6", |
4540 | 4562 | "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", |
... | ... | @@ -4645,6 +4667,51 @@ |
4645 | 4667 | "@types/react": "*" |
4646 | 4668 | } |
4647 | 4669 | }, |
4670 | + "node_modules/@types/react-router": { | |
4671 | + "version": "5.1.20", | |
4672 | + "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz", | |
4673 | + "integrity": "sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==", | |
4674 | + "peer": true, | |
4675 | + "dependencies": { | |
4676 | + "@types/history": "^4.7.11", | |
4677 | + "@types/react": "*" | |
4678 | + } | |
4679 | + }, | |
4680 | + "node_modules/@types/react-router-dom": { | |
4681 | + "version": "4.3.5", | |
4682 | + "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-4.3.5.tgz", | |
4683 | + "integrity": "sha512-eFajSUASYbPHg2BDM1G8Btx+YqGgvROPIg6sBhl3O4kbDdYXdFdfrgQFf/pcBuQVObjfT9AL/dd15jilR5DIEA==", | |
4684 | + "peer": true, | |
4685 | + "dependencies": { | |
4686 | + "@types/history": "*", | |
4687 | + "@types/react": "*", | |
4688 | + "@types/react-router": "*" | |
4689 | + } | |
4690 | + }, | |
4691 | + "node_modules/@types/react-router-redux": { | |
4692 | + "version": "5.0.27", | |
4693 | + "resolved": "https://registry.npmjs.org/@types/react-router-redux/-/react-router-redux-5.0.27.tgz", | |
4694 | + "integrity": "sha512-qC5lbuP2K/kMR/HE3e5ltCJptyiQhmfV0wbklqcqWDbNdpJBDwUsBGP4f/0RDYJf09+OTbz43u6iG+8E0Zcwqw==", | |
4695 | + "peer": true, | |
4696 | + "dependencies": { | |
4697 | + "@types/history": "^4.7.11", | |
4698 | + "@types/react": "*", | |
4699 | + "@types/react-router": "^5.1.0", | |
4700 | + "redux": ">= 3.7.2" | |
4701 | + } | |
4702 | + }, | |
4703 | + "node_modules/@types/react-router-redux/node_modules/@types/history": { | |
4704 | + "version": "4.7.11", | |
4705 | + "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", | |
4706 | + "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==", | |
4707 | + "peer": true | |
4708 | + }, | |
4709 | + "node_modules/@types/react-router/node_modules/@types/history": { | |
4710 | + "version": "4.7.11", | |
4711 | + "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", | |
4712 | + "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==", | |
4713 | + "peer": true | |
4714 | + }, | |
4648 | 4715 | "node_modules/@types/scheduler": { |
4649 | 4716 | "version": "0.16.6", |
4650 | 4717 | "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.6.tgz", |
... | ... | @@ -6725,6 +6792,152 @@ |
6725 | 6792 | "vite": "^4.2.0" |
6726 | 6793 | } |
6727 | 6794 | }, |
6795 | + "node_modules/@webassemblyjs/ast": { | |
6796 | + "version": "1.12.1", | |
6797 | + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", | |
6798 | + "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", | |
6799 | + "peer": true, | |
6800 | + "dependencies": { | |
6801 | + "@webassemblyjs/helper-numbers": "1.11.6", | |
6802 | + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" | |
6803 | + } | |
6804 | + }, | |
6805 | + "node_modules/@webassemblyjs/floating-point-hex-parser": { | |
6806 | + "version": "1.11.6", | |
6807 | + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", | |
6808 | + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", | |
6809 | + "peer": true | |
6810 | + }, | |
6811 | + "node_modules/@webassemblyjs/helper-api-error": { | |
6812 | + "version": "1.11.6", | |
6813 | + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", | |
6814 | + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", | |
6815 | + "peer": true | |
6816 | + }, | |
6817 | + "node_modules/@webassemblyjs/helper-buffer": { | |
6818 | + "version": "1.12.1", | |
6819 | + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", | |
6820 | + "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", | |
6821 | + "peer": true | |
6822 | + }, | |
6823 | + "node_modules/@webassemblyjs/helper-numbers": { | |
6824 | + "version": "1.11.6", | |
6825 | + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", | |
6826 | + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", | |
6827 | + "peer": true, | |
6828 | + "dependencies": { | |
6829 | + "@webassemblyjs/floating-point-hex-parser": "1.11.6", | |
6830 | + "@webassemblyjs/helper-api-error": "1.11.6", | |
6831 | + "@xtuc/long": "4.2.2" | |
6832 | + } | |
6833 | + }, | |
6834 | + "node_modules/@webassemblyjs/helper-wasm-bytecode": { | |
6835 | + "version": "1.11.6", | |
6836 | + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", | |
6837 | + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", | |
6838 | + "peer": true | |
6839 | + }, | |
6840 | + "node_modules/@webassemblyjs/helper-wasm-section": { | |
6841 | + "version": "1.12.1", | |
6842 | + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", | |
6843 | + "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", | |
6844 | + "peer": true, | |
6845 | + "dependencies": { | |
6846 | + "@webassemblyjs/ast": "1.12.1", | |
6847 | + "@webassemblyjs/helper-buffer": "1.12.1", | |
6848 | + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", | |
6849 | + "@webassemblyjs/wasm-gen": "1.12.1" | |
6850 | + } | |
6851 | + }, | |
6852 | + "node_modules/@webassemblyjs/ieee754": { | |
6853 | + "version": "1.11.6", | |
6854 | + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", | |
6855 | + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", | |
6856 | + "peer": true, | |
6857 | + "dependencies": { | |
6858 | + "@xtuc/ieee754": "^1.2.0" | |
6859 | + } | |
6860 | + }, | |
6861 | + "node_modules/@webassemblyjs/leb128": { | |
6862 | + "version": "1.11.6", | |
6863 | + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", | |
6864 | + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", | |
6865 | + "peer": true, | |
6866 | + "dependencies": { | |
6867 | + "@xtuc/long": "4.2.2" | |
6868 | + } | |
6869 | + }, | |
6870 | + "node_modules/@webassemblyjs/utf8": { | |
6871 | + "version": "1.11.6", | |
6872 | + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", | |
6873 | + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", | |
6874 | + "peer": true | |
6875 | + }, | |
6876 | + "node_modules/@webassemblyjs/wasm-edit": { | |
6877 | + "version": "1.12.1", | |
6878 | + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", | |
6879 | + "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", | |
6880 | + "peer": true, | |
6881 | + "dependencies": { | |
6882 | + "@webassemblyjs/ast": "1.12.1", | |
6883 | + "@webassemblyjs/helper-buffer": "1.12.1", | |
6884 | + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", | |
6885 | + "@webassemblyjs/helper-wasm-section": "1.12.1", | |
6886 | + "@webassemblyjs/wasm-gen": "1.12.1", | |
6887 | + "@webassemblyjs/wasm-opt": "1.12.1", | |
6888 | + "@webassemblyjs/wasm-parser": "1.12.1", | |
6889 | + "@webassemblyjs/wast-printer": "1.12.1" | |
6890 | + } | |
6891 | + }, | |
6892 | + "node_modules/@webassemblyjs/wasm-gen": { | |
6893 | + "version": "1.12.1", | |
6894 | + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", | |
6895 | + "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", | |
6896 | + "peer": true, | |
6897 | + "dependencies": { | |
6898 | + "@webassemblyjs/ast": "1.12.1", | |
6899 | + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", | |
6900 | + "@webassemblyjs/ieee754": "1.11.6", | |
6901 | + "@webassemblyjs/leb128": "1.11.6", | |
6902 | + "@webassemblyjs/utf8": "1.11.6" | |
6903 | + } | |
6904 | + }, | |
6905 | + "node_modules/@webassemblyjs/wasm-opt": { | |
6906 | + "version": "1.12.1", | |
6907 | + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", | |
6908 | + "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", | |
6909 | + "peer": true, | |
6910 | + "dependencies": { | |
6911 | + "@webassemblyjs/ast": "1.12.1", | |
6912 | + "@webassemblyjs/helper-buffer": "1.12.1", | |
6913 | + "@webassemblyjs/wasm-gen": "1.12.1", | |
6914 | + "@webassemblyjs/wasm-parser": "1.12.1" | |
6915 | + } | |
6916 | + }, | |
6917 | + "node_modules/@webassemblyjs/wasm-parser": { | |
6918 | + "version": "1.12.1", | |
6919 | + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", | |
6920 | + "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", | |
6921 | + "peer": true, | |
6922 | + "dependencies": { | |
6923 | + "@webassemblyjs/ast": "1.12.1", | |
6924 | + "@webassemblyjs/helper-api-error": "1.11.6", | |
6925 | + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", | |
6926 | + "@webassemblyjs/ieee754": "1.11.6", | |
6927 | + "@webassemblyjs/leb128": "1.11.6", | |
6928 | + "@webassemblyjs/utf8": "1.11.6" | |
6929 | + } | |
6930 | + }, | |
6931 | + "node_modules/@webassemblyjs/wast-printer": { | |
6932 | + "version": "1.12.1", | |
6933 | + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", | |
6934 | + "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", | |
6935 | + "peer": true, | |
6936 | + "dependencies": { | |
6937 | + "@webassemblyjs/ast": "1.12.1", | |
6938 | + "@xtuc/long": "4.2.2" | |
6939 | + } | |
6940 | + }, | |
6728 | 6941 | "node_modules/@webgpu/glslang": { |
6729 | 6942 | "version": "0.0.15", |
6730 | 6943 | "resolved": "https://registry.npmjs.org/@webgpu/glslang/-/glslang-0.0.15.tgz", |
... | ... | @@ -6740,6 +6953,18 @@ |
6740 | 6953 | "resolved": "https://registry.npmjs.org/@xobotyi/scrollbar-width/-/scrollbar-width-1.9.5.tgz", |
6741 | 6954 | "integrity": "sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==" |
6742 | 6955 | }, |
6956 | + "node_modules/@xtuc/ieee754": { | |
6957 | + "version": "1.2.0", | |
6958 | + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", | |
6959 | + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", | |
6960 | + "peer": true | |
6961 | + }, | |
6962 | + "node_modules/@xtuc/long": { | |
6963 | + "version": "4.2.2", | |
6964 | + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", | |
6965 | + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", | |
6966 | + "peer": true | |
6967 | + }, | |
6743 | 6968 | "node_modules/acorn": { |
6744 | 6969 | "version": "8.11.2", |
6745 | 6970 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", |
... | ... | @@ -6751,6 +6976,39 @@ |
6751 | 6976 | "node": ">=0.4.0" |
6752 | 6977 | } |
6753 | 6978 | }, |
6979 | + "node_modules/acorn-dynamic-import": { | |
6980 | + "version": "2.0.2", | |
6981 | + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", | |
6982 | + "integrity": "sha512-GKp5tQ8h0KMPWIYGRHHXI1s5tUpZixZ3IHF2jAu42wSCf6In/G873s6/y4DdKdhWvzhu1T6mE1JgvnhAKqyYYQ==", | |
6983 | + "deprecated": "This is probably built in to whatever tool you're using. If you still need it... idk", | |
6984 | + "dev": true, | |
6985 | + "peer": true, | |
6986 | + "dependencies": { | |
6987 | + "acorn": "^4.0.3" | |
6988 | + } | |
6989 | + }, | |
6990 | + "node_modules/acorn-dynamic-import/node_modules/acorn": { | |
6991 | + "version": "4.0.13", | |
6992 | + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", | |
6993 | + "integrity": "sha512-fu2ygVGuMmlzG8ZeRJ0bvR41nsAkxxhbyk8bZ1SS521Z7vmgJFTQQlfz/Mp/nJexGBz+v8sC9bM6+lNgskt4Ug==", | |
6994 | + "dev": true, | |
6995 | + "peer": true, | |
6996 | + "bin": { | |
6997 | + "acorn": "bin/acorn" | |
6998 | + }, | |
6999 | + "engines": { | |
7000 | + "node": ">=0.4.0" | |
7001 | + } | |
7002 | + }, | |
7003 | + "node_modules/acorn-import-attributes": { | |
7004 | + "version": "1.9.5", | |
7005 | + "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", | |
7006 | + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", | |
7007 | + "peer": true, | |
7008 | + "peerDependencies": { | |
7009 | + "acorn": "^8" | |
7010 | + } | |
7011 | + }, | |
6754 | 7012 | "node_modules/acorn-jsx": { |
6755 | 7013 | "version": "5.3.2", |
6756 | 7014 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", |
... | ... | @@ -7033,6 +7291,28 @@ |
7033 | 7291 | "node": ">=10" |
7034 | 7292 | } |
7035 | 7293 | }, |
7294 | + "node_modules/arr-diff": { | |
7295 | + "version": "4.0.0", | |
7296 | + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", | |
7297 | + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", | |
7298 | + "dev": true, | |
7299 | + "optional": true, | |
7300 | + "peer": true, | |
7301 | + "engines": { | |
7302 | + "node": ">=0.10.0" | |
7303 | + } | |
7304 | + }, | |
7305 | + "node_modules/arr-flatten": { | |
7306 | + "version": "1.1.0", | |
7307 | + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", | |
7308 | + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", | |
7309 | + "dev": true, | |
7310 | + "optional": true, | |
7311 | + "peer": true, | |
7312 | + "engines": { | |
7313 | + "node": ">=0.10.0" | |
7314 | + } | |
7315 | + }, | |
7036 | 7316 | "node_modules/arr-union": { |
7037 | 7317 | "version": "3.1.0", |
7038 | 7318 | "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", |
... | ... | @@ -7087,6 +7367,17 @@ |
7087 | 7367 | "node": ">=8" |
7088 | 7368 | } |
7089 | 7369 | }, |
7370 | + "node_modules/array-unique": { | |
7371 | + "version": "0.3.2", | |
7372 | + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", | |
7373 | + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", | |
7374 | + "dev": true, | |
7375 | + "optional": true, | |
7376 | + "peer": true, | |
7377 | + "engines": { | |
7378 | + "node": ">=0.10.0" | |
7379 | + } | |
7380 | + }, | |
7090 | 7381 | "node_modules/array.prototype.flat": { |
7091 | 7382 | "version": "1.3.2", |
7092 | 7383 | "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", |
... | ... | @@ -7226,6 +7517,20 @@ |
7226 | 7517 | "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", |
7227 | 7518 | "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==" |
7228 | 7519 | }, |
7520 | + "node_modules/async-each": { | |
7521 | + "version": "1.0.6", | |
7522 | + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz", | |
7523 | + "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==", | |
7524 | + "dev": true, | |
7525 | + "funding": [ | |
7526 | + { | |
7527 | + "type": "individual", | |
7528 | + "url": "https://paulmillr.com/funding/" | |
7529 | + } | |
7530 | + ], | |
7531 | + "optional": true, | |
7532 | + "peer": true | |
7533 | + }, | |
7229 | 7534 | "node_modules/async-validator": { |
7230 | 7535 | "version": "4.2.5", |
7231 | 7536 | "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz", |
... | ... | @@ -7244,6 +7549,20 @@ |
7244 | 7549 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", |
7245 | 7550 | "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" |
7246 | 7551 | }, |
7552 | + "node_modules/atob": { | |
7553 | + "version": "2.1.2", | |
7554 | + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", | |
7555 | + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", | |
7556 | + "dev": true, | |
7557 | + "optional": true, | |
7558 | + "peer": true, | |
7559 | + "bin": { | |
7560 | + "atob": "bin/atob.js" | |
7561 | + }, | |
7562 | + "engines": { | |
7563 | + "node": ">= 4.5.0" | |
7564 | + } | |
7565 | + }, | |
7247 | 7566 | "node_modules/atomic-sleep": { |
7248 | 7567 | "version": "1.0.0", |
7249 | 7568 | "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", |
... | ... | @@ -7479,11 +7798,60 @@ |
7479 | 7798 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", |
7480 | 7799 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" |
7481 | 7800 | }, |
7801 | + "node_modules/base": { | |
7802 | + "version": "0.11.2", | |
7803 | + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", | |
7804 | + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", | |
7805 | + "dev": true, | |
7806 | + "optional": true, | |
7807 | + "peer": true, | |
7808 | + "dependencies": { | |
7809 | + "cache-base": "^1.0.1", | |
7810 | + "class-utils": "^0.3.5", | |
7811 | + "component-emitter": "^1.2.1", | |
7812 | + "define-property": "^1.0.0", | |
7813 | + "isobject": "^3.0.1", | |
7814 | + "mixin-deep": "^1.2.0", | |
7815 | + "pascalcase": "^0.1.1" | |
7816 | + }, | |
7817 | + "engines": { | |
7818 | + "node": ">=0.10.0" | |
7819 | + } | |
7820 | + }, | |
7482 | 7821 | "node_modules/base-64": { |
7483 | 7822 | "version": "1.0.0", |
7484 | 7823 | "resolved": "https://registry.npmjs.org/base-64/-/base-64-1.0.0.tgz", |
7485 | 7824 | "integrity": "sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==" |
7486 | 7825 | }, |
7826 | + "node_modules/base/node_modules/define-property": { | |
7827 | + "version": "1.0.0", | |
7828 | + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", | |
7829 | + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", | |
7830 | + "dev": true, | |
7831 | + "optional": true, | |
7832 | + "peer": true, | |
7833 | + "dependencies": { | |
7834 | + "is-descriptor": "^1.0.0" | |
7835 | + }, | |
7836 | + "engines": { | |
7837 | + "node": ">=0.10.0" | |
7838 | + } | |
7839 | + }, | |
7840 | + "node_modules/base/node_modules/is-descriptor": { | |
7841 | + "version": "1.0.3", | |
7842 | + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", | |
7843 | + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", | |
7844 | + "dev": true, | |
7845 | + "optional": true, | |
7846 | + "peer": true, | |
7847 | + "dependencies": { | |
7848 | + "is-accessor-descriptor": "^1.0.1", | |
7849 | + "is-data-descriptor": "^1.0.1" | |
7850 | + }, | |
7851 | + "engines": { | |
7852 | + "node": ">= 0.4" | |
7853 | + } | |
7854 | + }, | |
7487 | 7855 | "node_modules/base64-js": { |
7488 | 7856 | "version": "1.5.1", |
7489 | 7857 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", |
... | ... | @@ -7532,6 +7900,17 @@ |
7532 | 7900 | "node": ">=8" |
7533 | 7901 | } |
7534 | 7902 | }, |
7903 | + "node_modules/bindings": { | |
7904 | + "version": "1.5.0", | |
7905 | + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", | |
7906 | + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", | |
7907 | + "dev": true, | |
7908 | + "optional": true, | |
7909 | + "peer": true, | |
7910 | + "dependencies": { | |
7911 | + "file-uri-to-path": "1.0.0" | |
7912 | + } | |
7913 | + }, | |
7535 | 7914 | "node_modules/bl": { |
7536 | 7915 | "version": "5.1.0", |
7537 | 7916 | "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz", |
... | ... | @@ -7832,6 +8211,28 @@ |
7832 | 8211 | "typewise-core": "^1.2" |
7833 | 8212 | } |
7834 | 8213 | }, |
8214 | + "node_modules/cache-base": { | |
8215 | + "version": "1.0.1", | |
8216 | + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", | |
8217 | + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", | |
8218 | + "dev": true, | |
8219 | + "optional": true, | |
8220 | + "peer": true, | |
8221 | + "dependencies": { | |
8222 | + "collection-visit": "^1.0.0", | |
8223 | + "component-emitter": "^1.2.1", | |
8224 | + "get-value": "^2.0.6", | |
8225 | + "has-value": "^1.0.0", | |
8226 | + "isobject": "^3.0.1", | |
8227 | + "set-value": "^2.0.0", | |
8228 | + "to-object-path": "^0.3.0", | |
8229 | + "union-value": "^1.0.0", | |
8230 | + "unset-value": "^1.0.0" | |
8231 | + }, | |
8232 | + "engines": { | |
8233 | + "node": ">=0.10.0" | |
8234 | + } | |
8235 | + }, | |
7835 | 8236 | "node_modules/cacheable-request": { |
7836 | 8237 | "version": "2.1.4", |
7837 | 8238 | "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", |
... | ... | @@ -8101,6 +8502,15 @@ |
8101 | 8502 | "fsevents": "~2.3.2" |
8102 | 8503 | } |
8103 | 8504 | }, |
8505 | + "node_modules/chrome-trace-event": { | |
8506 | + "version": "1.0.4", | |
8507 | + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", | |
8508 | + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", | |
8509 | + "peer": true, | |
8510 | + "engines": { | |
8511 | + "node": ">=6.0" | |
8512 | + } | |
8513 | + }, | |
8104 | 8514 | "node_modules/ci-info": { |
8105 | 8515 | "version": "3.9.0", |
8106 | 8516 | "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", |
... | ... | @@ -8129,6 +8539,23 @@ |
8129 | 8539 | "resolved": "https://registry.npmjs.org/clamp/-/clamp-1.0.1.tgz", |
8130 | 8540 | "integrity": "sha512-kgMuFyE78OC6Dyu3Dy7vcx4uy97EIbVxJB/B0eJ3bUNAkwdNcxYzgKltnyADiYwsR7SEqkkUPsEUT//OVS6XMA==" |
8131 | 8541 | }, |
8542 | + "node_modules/class-utils": { | |
8543 | + "version": "0.3.6", | |
8544 | + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", | |
8545 | + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", | |
8546 | + "dev": true, | |
8547 | + "optional": true, | |
8548 | + "peer": true, | |
8549 | + "dependencies": { | |
8550 | + "arr-union": "^3.1.0", | |
8551 | + "define-property": "^0.2.5", | |
8552 | + "isobject": "^3.0.0", | |
8553 | + "static-extend": "^0.1.1" | |
8554 | + }, | |
8555 | + "engines": { | |
8556 | + "node": ">=0.10.0" | |
8557 | + } | |
8558 | + }, | |
8132 | 8559 | "node_modules/classnames": { |
8133 | 8560 | "version": "2.3.2", |
8134 | 8561 | "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", |
... | ... | @@ -8386,6 +8813,16 @@ |
8386 | 8813 | "integrity": "sha512-q4dMFMlXtKR3XNBHyMHt/3pwYNA69EDk00lloMOaaUMKPUXBw6lpXtbu3MMVG6/uOihGnRDOlkyqsONEUj60+w==", |
8387 | 8814 | "dev": true |
8388 | 8815 | }, |
8816 | + "node_modules/code-point-at": { | |
8817 | + "version": "1.1.0", | |
8818 | + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", | |
8819 | + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", | |
8820 | + "dev": true, | |
8821 | + "peer": true, | |
8822 | + "engines": { | |
8823 | + "node": ">=0.10.0" | |
8824 | + } | |
8825 | + }, | |
8389 | 8826 | "node_modules/codepage": { |
8390 | 8827 | "version": "1.10.2", |
8391 | 8828 | "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.10.2.tgz", |
... | ... | @@ -8409,6 +8846,21 @@ |
8409 | 8846 | "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", |
8410 | 8847 | "dev": true |
8411 | 8848 | }, |
8849 | + "node_modules/collection-visit": { | |
8850 | + "version": "1.0.0", | |
8851 | + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", | |
8852 | + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", | |
8853 | + "dev": true, | |
8854 | + "optional": true, | |
8855 | + "peer": true, | |
8856 | + "dependencies": { | |
8857 | + "map-visit": "^1.0.0", | |
8858 | + "object-visit": "^1.0.0" | |
8859 | + }, | |
8860 | + "engines": { | |
8861 | + "node": ">=0.10.0" | |
8862 | + } | |
8863 | + }, | |
8412 | 8864 | "node_modules/color": { |
8413 | 8865 | "version": "3.2.1", |
8414 | 8866 | "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", |
... | ... | @@ -8482,6 +8934,17 @@ |
8482 | 8934 | "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", |
8483 | 8935 | "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==" |
8484 | 8936 | }, |
8937 | + "node_modules/component-emitter": { | |
8938 | + "version": "1.3.1", | |
8939 | + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", | |
8940 | + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", | |
8941 | + "dev": true, | |
8942 | + "optional": true, | |
8943 | + "peer": true, | |
8944 | + "funding": { | |
8945 | + "url": "https://github.com/sponsors/sindresorhus" | |
8946 | + } | |
8947 | + }, | |
8485 | 8948 | "node_modules/compute-scroll-into-view": { |
8486 | 8949 | "version": "3.1.0", |
8487 | 8950 | "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.0.tgz", |
... | ... | @@ -8595,6 +9058,17 @@ |
8595 | 9058 | "url": "https://github.com/sponsors/mesqueeb" |
8596 | 9059 | } |
8597 | 9060 | }, |
9061 | + "node_modules/copy-descriptor": { | |
9062 | + "version": "0.1.1", | |
9063 | + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", | |
9064 | + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", | |
9065 | + "dev": true, | |
9066 | + "optional": true, | |
9067 | + "peer": true, | |
9068 | + "engines": { | |
9069 | + "node": ">=0.10.0" | |
9070 | + } | |
9071 | + }, | |
8598 | 9072 | "node_modules/copy-to-clipboard": { |
8599 | 9073 | "version": "3.3.3", |
8600 | 9074 | "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz", |
... | ... | @@ -9548,6 +10022,20 @@ |
9548 | 10022 | "url": "https://github.com/sponsors/ljharb" |
9549 | 10023 | } |
9550 | 10024 | }, |
10025 | + "node_modules/define-property": { | |
10026 | + "version": "0.2.5", | |
10027 | + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", | |
10028 | + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", | |
10029 | + "dev": true, | |
10030 | + "optional": true, | |
10031 | + "peer": true, | |
10032 | + "dependencies": { | |
10033 | + "is-descriptor": "^0.1.0" | |
10034 | + }, | |
10035 | + "engines": { | |
10036 | + "node": ">=0.10.0" | |
10037 | + } | |
10038 | + }, | |
9551 | 10039 | "node_modules/defined": { |
9552 | 10040 | "version": "1.0.1", |
9553 | 10041 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", |
... | ... | @@ -9900,6 +10388,33 @@ |
9900 | 10388 | "node": ">= 6" |
9901 | 10389 | } |
9902 | 10390 | }, |
10391 | + "node_modules/dva-core": { | |
10392 | + "version": "1.6.0-beta.7", | |
10393 | + "resolved": "https://registry.npmjs.org/dva-core/-/dva-core-1.6.0-beta.7.tgz", | |
10394 | + "integrity": "sha512-e+0yOEWUK+XbnqflX+KXoLZDGxn+kLKgcT6XYT8GyRe0xcbmLEbwDZO0DXUkdsbxfqSOlLkIprMUoYJ3D5B4Gg==", | |
10395 | + "peer": true, | |
10396 | + "dependencies": { | |
10397 | + "@babel/runtime": "^7.0.0", | |
10398 | + "flatten": "^1.0.2", | |
10399 | + "global": "^4.3.2", | |
10400 | + "invariant": "^2.2.1", | |
10401 | + "is-plain-object": "^2.0.3", | |
10402 | + "redux-saga": "^0.16.0", | |
10403 | + "warning": "^3.0.0" | |
10404 | + }, | |
10405 | + "peerDependencies": { | |
10406 | + "redux": "4.x" | |
10407 | + } | |
10408 | + }, | |
10409 | + "node_modules/dva-core/node_modules/warning": { | |
10410 | + "version": "3.0.0", | |
10411 | + "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", | |
10412 | + "integrity": "sha512-jMBt6pUrKn5I+OGgtQ4YZLdhIeJmObddh6CsibPxyQ5yPZm1XExSyzC1LCNX7BzhxWgiHmizBWJTHJIjMjTQYQ==", | |
10413 | + "peer": true, | |
10414 | + "dependencies": { | |
10415 | + "loose-envify": "^1.0.0" | |
10416 | + } | |
10417 | + }, | |
9903 | 10418 | "node_modules/dva-loading": { |
9904 | 10419 | "version": "3.0.24", |
9905 | 10420 | "resolved": "https://registry.npmjs.org/dva-loading/-/dva-loading-3.0.24.tgz", |
... | ... | @@ -9967,6 +10482,27 @@ |
9967 | 10482 | "node": ">= 4" |
9968 | 10483 | } |
9969 | 10484 | }, |
10485 | + "node_modules/encoding": { | |
10486 | + "version": "0.1.13", | |
10487 | + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", | |
10488 | + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", | |
10489 | + "peer": true, | |
10490 | + "dependencies": { | |
10491 | + "iconv-lite": "^0.6.2" | |
10492 | + } | |
10493 | + }, | |
10494 | + "node_modules/encoding/node_modules/iconv-lite": { | |
10495 | + "version": "0.6.3", | |
10496 | + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", | |
10497 | + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", | |
10498 | + "peer": true, | |
10499 | + "dependencies": { | |
10500 | + "safer-buffer": ">= 2.1.2 < 3.0.0" | |
10501 | + }, | |
10502 | + "engines": { | |
10503 | + "node": ">=0.10.0" | |
10504 | + } | |
10505 | + }, | |
9970 | 10506 | "node_modules/end-of-stream": { |
9971 | 10507 | "version": "1.4.4", |
9972 | 10508 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", |
... | ... | @@ -10002,7 +10538,7 @@ |
10002 | 10538 | "version": "0.1.8", |
10003 | 10539 | "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", |
10004 | 10540 | "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", |
10005 | - "optional": true, | |
10541 | + "devOptional": true, | |
10006 | 10542 | "dependencies": { |
10007 | 10543 | "prr": "~1.0.1" |
10008 | 10544 | }, |
... | ... | @@ -10148,6 +10684,12 @@ |
10148 | 10684 | "node": ">= 0.4" |
10149 | 10685 | } |
10150 | 10686 | }, |
10687 | + "node_modules/es-module-lexer": { | |
10688 | + "version": "1.5.4", | |
10689 | + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", | |
10690 | + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", | |
10691 | + "peer": true | |
10692 | + }, | |
10151 | 10693 | "node_modules/es-set-tostringtag": { |
10152 | 10694 | "version": "2.0.2", |
10153 | 10695 | "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", |
... | ... | @@ -10736,6 +11278,45 @@ |
10736 | 11278 | "node": ">=0.8" |
10737 | 11279 | } |
10738 | 11280 | }, |
11281 | + "node_modules/expand-brackets": { | |
11282 | + "version": "2.1.4", | |
11283 | + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", | |
11284 | + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", | |
11285 | + "dev": true, | |
11286 | + "optional": true, | |
11287 | + "peer": true, | |
11288 | + "dependencies": { | |
11289 | + "debug": "^2.3.3", | |
11290 | + "define-property": "^0.2.5", | |
11291 | + "extend-shallow": "^2.0.1", | |
11292 | + "posix-character-classes": "^0.1.0", | |
11293 | + "regex-not": "^1.0.0", | |
11294 | + "snapdragon": "^0.8.1", | |
11295 | + "to-regex": "^3.0.1" | |
11296 | + }, | |
11297 | + "engines": { | |
11298 | + "node": ">=0.10.0" | |
11299 | + } | |
11300 | + }, | |
11301 | + "node_modules/expand-brackets/node_modules/debug": { | |
11302 | + "version": "2.6.9", | |
11303 | + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", | |
11304 | + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", | |
11305 | + "dev": true, | |
11306 | + "optional": true, | |
11307 | + "peer": true, | |
11308 | + "dependencies": { | |
11309 | + "ms": "2.0.0" | |
11310 | + } | |
11311 | + }, | |
11312 | + "node_modules/expand-brackets/node_modules/ms": { | |
11313 | + "version": "2.0.0", | |
11314 | + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", | |
11315 | + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", | |
11316 | + "dev": true, | |
11317 | + "optional": true, | |
11318 | + "peer": true | |
11319 | + }, | |
10739 | 11320 | "node_modules/ext": { |
10740 | 11321 | "version": "1.7.0", |
10741 | 11322 | "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", |
... | ... | @@ -10799,6 +11380,56 @@ |
10799 | 11380 | "node": ">=4" |
10800 | 11381 | } |
10801 | 11382 | }, |
11383 | + "node_modules/extglob": { | |
11384 | + "version": "2.0.4", | |
11385 | + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", | |
11386 | + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", | |
11387 | + "dev": true, | |
11388 | + "optional": true, | |
11389 | + "peer": true, | |
11390 | + "dependencies": { | |
11391 | + "array-unique": "^0.3.2", | |
11392 | + "define-property": "^1.0.0", | |
11393 | + "expand-brackets": "^2.1.4", | |
11394 | + "extend-shallow": "^2.0.1", | |
11395 | + "fragment-cache": "^0.2.1", | |
11396 | + "regex-not": "^1.0.0", | |
11397 | + "snapdragon": "^0.8.1", | |
11398 | + "to-regex": "^3.0.1" | |
11399 | + }, | |
11400 | + "engines": { | |
11401 | + "node": ">=0.10.0" | |
11402 | + } | |
11403 | + }, | |
11404 | + "node_modules/extglob/node_modules/define-property": { | |
11405 | + "version": "1.0.0", | |
11406 | + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", | |
11407 | + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", | |
11408 | + "dev": true, | |
11409 | + "optional": true, | |
11410 | + "peer": true, | |
11411 | + "dependencies": { | |
11412 | + "is-descriptor": "^1.0.0" | |
11413 | + }, | |
11414 | + "engines": { | |
11415 | + "node": ">=0.10.0" | |
11416 | + } | |
11417 | + }, | |
11418 | + "node_modules/extglob/node_modules/is-descriptor": { | |
11419 | + "version": "1.0.3", | |
11420 | + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", | |
11421 | + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", | |
11422 | + "dev": true, | |
11423 | + "optional": true, | |
11424 | + "peer": true, | |
11425 | + "dependencies": { | |
11426 | + "is-accessor-descriptor": "^1.0.1", | |
11427 | + "is-data-descriptor": "^1.0.1" | |
11428 | + }, | |
11429 | + "engines": { | |
11430 | + "node": ">= 0.4" | |
11431 | + } | |
11432 | + }, | |
10802 | 11433 | "node_modules/extrude-polyline": { |
10803 | 11434 | "version": "1.0.6", |
10804 | 11435 | "resolved": "https://registry.npmjs.org/extrude-polyline/-/extrude-polyline-1.0.6.tgz", |
... | ... | @@ -10970,6 +11601,14 @@ |
10970 | 11601 | "node": ">=4" |
10971 | 11602 | } |
10972 | 11603 | }, |
11604 | + "node_modules/file-uri-to-path": { | |
11605 | + "version": "1.0.0", | |
11606 | + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", | |
11607 | + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", | |
11608 | + "dev": true, | |
11609 | + "optional": true, | |
11610 | + "peer": true | |
11611 | + }, | |
10973 | 11612 | "node_modules/filename-reserved-regex": { |
10974 | 11613 | "version": "2.0.0", |
10975 | 11614 | "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", |
... | ... | @@ -11180,6 +11819,17 @@ |
11180 | 11819 | "is-callable": "^1.1.3" |
11181 | 11820 | } |
11182 | 11821 | }, |
11822 | + "node_modules/for-in": { | |
11823 | + "version": "1.0.2", | |
11824 | + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", | |
11825 | + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", | |
11826 | + "dev": true, | |
11827 | + "optional": true, | |
11828 | + "peer": true, | |
11829 | + "engines": { | |
11830 | + "node": ">=0.10.0" | |
11831 | + } | |
11832 | + }, | |
11183 | 11833 | "node_modules/fork-ts-checker-webpack-plugin": { |
11184 | 11834 | "version": "8.0.0", |
11185 | 11835 | "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-8.0.0.tgz", |
... | ... | @@ -11359,6 +12009,20 @@ |
11359 | 12009 | "url": "https://github.com/sponsors/rawify" |
11360 | 12010 | } |
11361 | 12011 | }, |
12012 | + "node_modules/fragment-cache": { | |
12013 | + "version": "0.2.1", | |
12014 | + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", | |
12015 | + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", | |
12016 | + "dev": true, | |
12017 | + "optional": true, | |
12018 | + "peer": true, | |
12019 | + "dependencies": { | |
12020 | + "map-cache": "^0.2.2" | |
12021 | + }, | |
12022 | + "engines": { | |
12023 | + "node": ">=0.10.0" | |
12024 | + } | |
12025 | + }, | |
11362 | 12026 | "node_modules/from2": { |
11363 | 12027 | "version": "2.3.0", |
11364 | 12028 | "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", |
... | ... | @@ -11619,6 +12283,12 @@ |
11619 | 12283 | "node": ">= 6" |
11620 | 12284 | } |
11621 | 12285 | }, |
12286 | + "node_modules/glob-to-regexp": { | |
12287 | + "version": "0.4.1", | |
12288 | + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", | |
12289 | + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", | |
12290 | + "peer": true | |
12291 | + }, | |
11622 | 12292 | "node_modules/global": { |
11623 | 12293 | "version": "4.4.0", |
11624 | 12294 | "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", |
... | ... | @@ -11945,6 +12615,79 @@ |
11945 | 12615 | "url": "https://github.com/sponsors/ljharb" |
11946 | 12616 | } |
11947 | 12617 | }, |
12618 | + "node_modules/has-value": { | |
12619 | + "version": "1.0.0", | |
12620 | + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", | |
12621 | + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", | |
12622 | + "dev": true, | |
12623 | + "optional": true, | |
12624 | + "peer": true, | |
12625 | + "dependencies": { | |
12626 | + "get-value": "^2.0.6", | |
12627 | + "has-values": "^1.0.0", | |
12628 | + "isobject": "^3.0.0" | |
12629 | + }, | |
12630 | + "engines": { | |
12631 | + "node": ">=0.10.0" | |
12632 | + } | |
12633 | + }, | |
12634 | + "node_modules/has-values": { | |
12635 | + "version": "1.0.0", | |
12636 | + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", | |
12637 | + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", | |
12638 | + "dev": true, | |
12639 | + "optional": true, | |
12640 | + "peer": true, | |
12641 | + "dependencies": { | |
12642 | + "is-number": "^3.0.0", | |
12643 | + "kind-of": "^4.0.0" | |
12644 | + }, | |
12645 | + "engines": { | |
12646 | + "node": ">=0.10.0" | |
12647 | + } | |
12648 | + }, | |
12649 | + "node_modules/has-values/node_modules/is-number": { | |
12650 | + "version": "3.0.0", | |
12651 | + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", | |
12652 | + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", | |
12653 | + "dev": true, | |
12654 | + "optional": true, | |
12655 | + "peer": true, | |
12656 | + "dependencies": { | |
12657 | + "kind-of": "^3.0.2" | |
12658 | + }, | |
12659 | + "engines": { | |
12660 | + "node": ">=0.10.0" | |
12661 | + } | |
12662 | + }, | |
12663 | + "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { | |
12664 | + "version": "3.2.2", | |
12665 | + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", | |
12666 | + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", | |
12667 | + "dev": true, | |
12668 | + "optional": true, | |
12669 | + "peer": true, | |
12670 | + "dependencies": { | |
12671 | + "is-buffer": "^1.1.5" | |
12672 | + }, | |
12673 | + "engines": { | |
12674 | + "node": ">=0.10.0" | |
12675 | + } | |
12676 | + }, | |
12677 | + "node_modules/has-values/node_modules/kind-of": { | |
12678 | + "version": "4.0.0", | |
12679 | + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", | |
12680 | + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", | |
12681 | + "dev": true, | |
12682 | + "optional": true, | |
12683 | + "peer": true, | |
12684 | + "dependencies": { | |
12685 | + "is-buffer": "^1.1.5" | |
12686 | + }, | |
12687 | + "engines": { | |
12688 | + "node": ">=0.10.0" | |
12689 | + } | |
12690 | + }, | |
11948 | 12691 | "node_modules/hash-base": { |
11949 | 12692 | "version": "3.1.0", |
11950 | 12693 | "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", |
... | ... | @@ -12595,6 +13338,16 @@ |
12595 | 13338 | "node": ">= 0.4" |
12596 | 13339 | } |
12597 | 13340 | }, |
13341 | + "node_modules/interpret": { | |
13342 | + "version": "1.4.0", | |
13343 | + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", | |
13344 | + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", | |
13345 | + "dev": true, | |
13346 | + "peer": true, | |
13347 | + "engines": { | |
13348 | + "node": ">= 0.10" | |
13349 | + } | |
13350 | + }, | |
12598 | 13351 | "node_modules/intl": { |
12599 | 13352 | "version": "1.2.5", |
12600 | 13353 | "resolved": "https://registry.npmjs.org/intl/-/intl-1.2.5.tgz", |
... | ... | @@ -12654,6 +13407,30 @@ |
12654 | 13407 | "resolved": "https://registry.npmjs.org/inversify-inject-decorators/-/inversify-inject-decorators-3.1.0.tgz", |
12655 | 13408 | "integrity": "sha512-/seBlVp5bXrLQS3DpKEmlgeZL6C7Tf/QITd+IMQrbBBGuCbxb7k3hRAWu9XSreNpFzLgSboz3sClLSEmGwHphw==" |
12656 | 13409 | }, |
13410 | + "node_modules/invert-kv": { | |
13411 | + "version": "1.0.0", | |
13412 | + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", | |
13413 | + "integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==", | |
13414 | + "dev": true, | |
13415 | + "peer": true, | |
13416 | + "engines": { | |
13417 | + "node": ">=0.10.0" | |
13418 | + } | |
13419 | + }, | |
13420 | + "node_modules/is-accessor-descriptor": { | |
13421 | + "version": "1.0.1", | |
13422 | + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", | |
13423 | + "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", | |
13424 | + "dev": true, | |
13425 | + "optional": true, | |
13426 | + "peer": true, | |
13427 | + "dependencies": { | |
13428 | + "hasown": "^2.0.0" | |
13429 | + }, | |
13430 | + "engines": { | |
13431 | + "node": ">= 0.10" | |
13432 | + } | |
13433 | + }, | |
12657 | 13434 | "node_modules/is-any-array": { |
12658 | 13435 | "version": "2.0.1", |
12659 | 13436 | "resolved": "https://registry.npmjs.org/is-any-array/-/is-any-array-2.0.1.tgz", |
... | ... | @@ -12783,6 +13560,20 @@ |
12783 | 13560 | "url": "https://github.com/sponsors/ljharb" |
12784 | 13561 | } |
12785 | 13562 | }, |
13563 | + "node_modules/is-data-descriptor": { | |
13564 | + "version": "1.0.1", | |
13565 | + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", | |
13566 | + "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", | |
13567 | + "dev": true, | |
13568 | + "optional": true, | |
13569 | + "peer": true, | |
13570 | + "dependencies": { | |
13571 | + "hasown": "^2.0.0" | |
13572 | + }, | |
13573 | + "engines": { | |
13574 | + "node": ">= 0.4" | |
13575 | + } | |
13576 | + }, | |
12786 | 13577 | "node_modules/is-date-object": { |
12787 | 13578 | "version": "1.0.5", |
12788 | 13579 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", |
... | ... | @@ -12797,6 +13588,21 @@ |
12797 | 13588 | "url": "https://github.com/sponsors/ljharb" |
12798 | 13589 | } |
12799 | 13590 | }, |
13591 | + "node_modules/is-descriptor": { | |
13592 | + "version": "0.1.7", | |
13593 | + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", | |
13594 | + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", | |
13595 | + "dev": true, | |
13596 | + "optional": true, | |
13597 | + "peer": true, | |
13598 | + "dependencies": { | |
13599 | + "is-accessor-descriptor": "^1.0.1", | |
13600 | + "is-data-descriptor": "^1.0.1" | |
13601 | + }, | |
13602 | + "engines": { | |
13603 | + "node": ">= 0.4" | |
13604 | + } | |
13605 | + }, | |
12800 | 13606 | "node_modules/is-directory": { |
12801 | 13607 | "version": "0.3.1", |
12802 | 13608 | "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", |
... | ... | @@ -13103,7 +13909,6 @@ |
13103 | 13909 | "version": "1.1.0", |
13104 | 13910 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", |
13105 | 13911 | "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", |
13106 | - "dev": true, | |
13107 | 13912 | "engines": { |
13108 | 13913 | "node": ">=0.10.0" |
13109 | 13914 | } |
... | ... | @@ -13168,6 +13973,13 @@ |
13168 | 13973 | "url": "https://github.com/sponsors/sindresorhus" |
13169 | 13974 | } |
13170 | 13975 | }, |
13976 | + "node_modules/is-utf8": { | |
13977 | + "version": "0.2.1", | |
13978 | + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", | |
13979 | + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", | |
13980 | + "dev": true, | |
13981 | + "peer": true | |
13982 | + }, | |
13171 | 13983 | "node_modules/is-weakmap": { |
13172 | 13984 | "version": "2.0.1", |
13173 | 13985 | "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", |
... | ... | @@ -13204,6 +14016,17 @@ |
13204 | 14016 | "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", |
13205 | 14017 | "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==" |
13206 | 14018 | }, |
14019 | + "node_modules/is-windows": { | |
14020 | + "version": "1.0.2", | |
14021 | + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", | |
14022 | + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", | |
14023 | + "dev": true, | |
14024 | + "optional": true, | |
14025 | + "peer": true, | |
14026 | + "engines": { | |
14027 | + "node": ">=0.10.0" | |
14028 | + } | |
14029 | + }, | |
13207 | 14030 | "node_modules/is-wsl": { |
13208 | 14031 | "version": "2.2.0", |
13209 | 14032 | "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", |
... | ... | @@ -13247,6 +14070,26 @@ |
13247 | 14070 | "node": ">=0.10.0" |
13248 | 14071 | } |
13249 | 14072 | }, |
14073 | + "node_modules/isomorphic-fetch": { | |
14074 | + "version": "2.2.1", | |
14075 | + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", | |
14076 | + "integrity": "sha512-9c4TNAKYXM5PRyVcwUZrF3W09nQ+sO7+jydgs4ZGW9dhsLG2VOlISJABombdQqQRXCwuYG3sYV/puGf5rp0qmA==", | |
14077 | + "peer": true, | |
14078 | + "dependencies": { | |
14079 | + "node-fetch": "^1.0.1", | |
14080 | + "whatwg-fetch": ">=0.10.0" | |
14081 | + } | |
14082 | + }, | |
14083 | + "node_modules/isomorphic-fetch/node_modules/node-fetch": { | |
14084 | + "version": "1.7.3", | |
14085 | + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", | |
14086 | + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", | |
14087 | + "peer": true, | |
14088 | + "dependencies": { | |
14089 | + "encoding": "^0.1.11", | |
14090 | + "is-stream": "^1.0.1" | |
14091 | + } | |
14092 | + }, | |
13250 | 14093 | "node_modules/isomorphic-unfetch": { |
13251 | 14094 | "version": "4.0.2", |
13252 | 14095 | "resolved": "https://registry.npmjs.org/isomorphic-unfetch/-/isomorphic-unfetch-4.0.2.tgz", |
... | ... | @@ -13628,6 +14471,13 @@ |
13628 | 14471 | "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", |
13629 | 14472 | "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" |
13630 | 14473 | }, |
14474 | + "node_modules/json-loader": { | |
14475 | + "version": "0.5.7", | |
14476 | + "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", | |
14477 | + "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==", | |
14478 | + "dev": true, | |
14479 | + "peer": true | |
14480 | + }, | |
13631 | 14481 | "node_modules/json-parse-better-errors": { |
13632 | 14482 | "version": "1.0.2", |
13633 | 14483 | "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", |
... | ... | @@ -13644,14 +14494,40 @@ |
13644 | 14494 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", |
13645 | 14495 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" |
13646 | 14496 | }, |
13647 | - "node_modules/json-stable-stringify-without-jsonify": { | |
13648 | - "version": "1.0.1", | |
13649 | - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", | |
13650 | - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" | |
13651 | - }, | |
13652 | - "node_modules/json-stringify-pretty-compact": { | |
13653 | - "version": "3.0.0", | |
13654 | - "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-3.0.0.tgz", | |
14497 | + "node_modules/json-stable-stringify": { | |
14498 | + "version": "1.1.1", | |
14499 | + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.1.1.tgz", | |
14500 | + "integrity": "sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg==", | |
14501 | + "dev": true, | |
14502 | + "peer": true, | |
14503 | + "dependencies": { | |
14504 | + "call-bind": "^1.0.5", | |
14505 | + "isarray": "^2.0.5", | |
14506 | + "jsonify": "^0.0.1", | |
14507 | + "object-keys": "^1.1.1" | |
14508 | + }, | |
14509 | + "engines": { | |
14510 | + "node": ">= 0.4" | |
14511 | + }, | |
14512 | + "funding": { | |
14513 | + "url": "https://github.com/sponsors/ljharb" | |
14514 | + } | |
14515 | + }, | |
14516 | + "node_modules/json-stable-stringify-without-jsonify": { | |
14517 | + "version": "1.0.1", | |
14518 | + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", | |
14519 | + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" | |
14520 | + }, | |
14521 | + "node_modules/json-stable-stringify/node_modules/isarray": { | |
14522 | + "version": "2.0.5", | |
14523 | + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", | |
14524 | + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", | |
14525 | + "dev": true, | |
14526 | + "peer": true | |
14527 | + }, | |
14528 | + "node_modules/json-stringify-pretty-compact": { | |
14529 | + "version": "3.0.0", | |
14530 | + "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-3.0.0.tgz", | |
13655 | 14531 | "integrity": "sha512-Rc2suX5meI0S3bfdZuA7JMFBGkJ875ApfVyq2WHELjBiiG22My/l7/8zPpH/CfFVQHuVLd8NLR0nv6vi0BYYKA==" |
13656 | 14532 | }, |
13657 | 14533 | "node_modules/json2module": { |
... | ... | @@ -13693,6 +14569,16 @@ |
13693 | 14569 | "graceful-fs": "^4.1.6" |
13694 | 14570 | } |
13695 | 14571 | }, |
14572 | + "node_modules/jsonify": { | |
14573 | + "version": "0.0.1", | |
14574 | + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", | |
14575 | + "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", | |
14576 | + "dev": true, | |
14577 | + "peer": true, | |
14578 | + "funding": { | |
14579 | + "url": "https://github.com/sponsors/ljharb" | |
14580 | + } | |
14581 | + }, | |
13696 | 14582 | "node_modules/jsx-ast-utils": { |
13697 | 14583 | "version": "3.3.5", |
13698 | 14584 | "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", |
... | ... | @@ -13770,6 +14656,19 @@ |
13770 | 14656 | "node": ">=0.10.0" |
13771 | 14657 | } |
13772 | 14658 | }, |
14659 | + "node_modules/lcid": { | |
14660 | + "version": "1.0.0", | |
14661 | + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", | |
14662 | + "integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==", | |
14663 | + "dev": true, | |
14664 | + "peer": true, | |
14665 | + "dependencies": { | |
14666 | + "invert-kv": "^1.0.0" | |
14667 | + }, | |
14668 | + "engines": { | |
14669 | + "node": ">=0.10.0" | |
14670 | + } | |
14671 | + }, | |
13773 | 14672 | "node_modules/less": { |
13774 | 14673 | "version": "4.1.3", |
13775 | 14674 | "resolved": "https://registry.npmjs.org/less/-/less-4.1.3.tgz", |
... | ... | @@ -14189,6 +15088,58 @@ |
14189 | 15088 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1" |
14190 | 15089 | } |
14191 | 15090 | }, |
15091 | + "node_modules/load-json-file": { | |
15092 | + "version": "1.1.0", | |
15093 | + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", | |
15094 | + "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", | |
15095 | + "dev": true, | |
15096 | + "peer": true, | |
15097 | + "dependencies": { | |
15098 | + "graceful-fs": "^4.1.2", | |
15099 | + "parse-json": "^2.2.0", | |
15100 | + "pify": "^2.0.0", | |
15101 | + "pinkie-promise": "^2.0.0", | |
15102 | + "strip-bom": "^2.0.0" | |
15103 | + }, | |
15104 | + "engines": { | |
15105 | + "node": ">=0.10.0" | |
15106 | + } | |
15107 | + }, | |
15108 | + "node_modules/load-json-file/node_modules/parse-json": { | |
15109 | + "version": "2.2.0", | |
15110 | + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", | |
15111 | + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", | |
15112 | + "dev": true, | |
15113 | + "peer": true, | |
15114 | + "dependencies": { | |
15115 | + "error-ex": "^1.2.0" | |
15116 | + }, | |
15117 | + "engines": { | |
15118 | + "node": ">=0.10.0" | |
15119 | + } | |
15120 | + }, | |
15121 | + "node_modules/load-json-file/node_modules/strip-bom": { | |
15122 | + "version": "2.0.0", | |
15123 | + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", | |
15124 | + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", | |
15125 | + "dev": true, | |
15126 | + "peer": true, | |
15127 | + "dependencies": { | |
15128 | + "is-utf8": "^0.2.0" | |
15129 | + }, | |
15130 | + "engines": { | |
15131 | + "node": ">=0.10.0" | |
15132 | + } | |
15133 | + }, | |
15134 | + "node_modules/loader-runner": { | |
15135 | + "version": "4.3.0", | |
15136 | + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", | |
15137 | + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", | |
15138 | + "peer": true, | |
15139 | + "engines": { | |
15140 | + "node": ">=6.11.5" | |
15141 | + } | |
15142 | + }, | |
14192 | 15143 | "node_modules/loader-utils": { |
14193 | 15144 | "version": "2.0.4", |
14194 | 15145 | "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", |
... | ... | @@ -14595,6 +15546,17 @@ |
14595 | 15546 | "inversify": "^5.0.1" |
14596 | 15547 | } |
14597 | 15548 | }, |
15549 | + "node_modules/map-cache": { | |
15550 | + "version": "0.2.2", | |
15551 | + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", | |
15552 | + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", | |
15553 | + "dev": true, | |
15554 | + "optional": true, | |
15555 | + "peer": true, | |
15556 | + "engines": { | |
15557 | + "node": ">=0.10.0" | |
15558 | + } | |
15559 | + }, | |
14598 | 15560 | "node_modules/map-obj": { |
14599 | 15561 | "version": "4.3.0", |
14600 | 15562 | "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", |
... | ... | @@ -14606,6 +15568,20 @@ |
14606 | 15568 | "url": "https://github.com/sponsors/sindresorhus" |
14607 | 15569 | } |
14608 | 15570 | }, |
15571 | + "node_modules/map-visit": { | |
15572 | + "version": "1.0.0", | |
15573 | + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", | |
15574 | + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", | |
15575 | + "dev": true, | |
15576 | + "optional": true, | |
15577 | + "peer": true, | |
15578 | + "dependencies": { | |
15579 | + "object-visit": "^1.0.0" | |
15580 | + }, | |
15581 | + "engines": { | |
15582 | + "node": ">=0.10.0" | |
15583 | + } | |
15584 | + }, | |
14609 | 15585 | "node_modules/mapbox-gl": { |
14610 | 15586 | "version": "1.13.3", |
14611 | 15587 | "resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-1.13.3.tgz", |
... | ... | @@ -14740,6 +15716,17 @@ |
14740 | 15716 | "node": ">= 4.0.0" |
14741 | 15717 | } |
14742 | 15718 | }, |
15719 | + "node_modules/memory-fs": { | |
15720 | + "version": "0.4.1", | |
15721 | + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", | |
15722 | + "integrity": "sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==", | |
15723 | + "dev": true, | |
15724 | + "peer": true, | |
15725 | + "dependencies": { | |
15726 | + "errno": "^0.1.3", | |
15727 | + "readable-stream": "^2.0.1" | |
15728 | + } | |
15729 | + }, | |
14743 | 15730 | "node_modules/meow": { |
14744 | 15731 | "version": "9.0.0", |
14745 | 15732 | "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", |
... | ... | @@ -14927,6 +15914,35 @@ |
14927 | 15914 | "node": ">= 6" |
14928 | 15915 | } |
14929 | 15916 | }, |
15917 | + "node_modules/mixin-deep": { | |
15918 | + "version": "1.3.2", | |
15919 | + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", | |
15920 | + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", | |
15921 | + "dev": true, | |
15922 | + "optional": true, | |
15923 | + "peer": true, | |
15924 | + "dependencies": { | |
15925 | + "for-in": "^1.0.2", | |
15926 | + "is-extendable": "^1.0.1" | |
15927 | + }, | |
15928 | + "engines": { | |
15929 | + "node": ">=0.10.0" | |
15930 | + } | |
15931 | + }, | |
15932 | + "node_modules/mixin-deep/node_modules/is-extendable": { | |
15933 | + "version": "1.0.1", | |
15934 | + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", | |
15935 | + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", | |
15936 | + "dev": true, | |
15937 | + "optional": true, | |
15938 | + "peer": true, | |
15939 | + "dependencies": { | |
15940 | + "is-plain-object": "^2.0.4" | |
15941 | + }, | |
15942 | + "engines": { | |
15943 | + "node": ">=0.10.0" | |
15944 | + } | |
15945 | + }, | |
14930 | 15946 | "node_modules/mkdirp": { |
14931 | 15947 | "version": "1.0.4", |
14932 | 15948 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", |
... | ... | @@ -15049,6 +16065,14 @@ |
15049 | 16065 | "thenify-all": "^1.0.0" |
15050 | 16066 | } |
15051 | 16067 | }, |
16068 | + "node_modules/nan": { | |
16069 | + "version": "2.22.0", | |
16070 | + "resolved": "https://registry.npmjs.org/nan/-/nan-2.22.0.tgz", | |
16071 | + "integrity": "sha512-nbajikzWTMwsW+eSsNm3QwlOs7het9gGJU5dDZzRTQGk03vyBOauxgI4VakDzE0PtsGTmXPsXTbbjVhRwR5mpw==", | |
16072 | + "dev": true, | |
16073 | + "optional": true, | |
16074 | + "peer": true | |
16075 | + }, | |
15052 | 16076 | "node_modules/nano-css": { |
15053 | 16077 | "version": "5.6.1", |
15054 | 16078 | "resolved": "https://registry.npmjs.org/nano-css/-/nano-css-5.6.1.tgz", |
... | ... | @@ -15085,6 +16109,89 @@ |
15085 | 16109 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" |
15086 | 16110 | } |
15087 | 16111 | }, |
16112 | + "node_modules/nanomatch": { | |
16113 | + "version": "1.2.13", | |
16114 | + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", | |
16115 | + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", | |
16116 | + "dev": true, | |
16117 | + "optional": true, | |
16118 | + "peer": true, | |
16119 | + "dependencies": { | |
16120 | + "arr-diff": "^4.0.0", | |
16121 | + "array-unique": "^0.3.2", | |
16122 | + "define-property": "^2.0.2", | |
16123 | + "extend-shallow": "^3.0.2", | |
16124 | + "fragment-cache": "^0.2.1", | |
16125 | + "is-windows": "^1.0.2", | |
16126 | + "kind-of": "^6.0.2", | |
16127 | + "object.pick": "^1.3.0", | |
16128 | + "regex-not": "^1.0.0", | |
16129 | + "snapdragon": "^0.8.1", | |
16130 | + "to-regex": "^3.0.1" | |
16131 | + }, | |
16132 | + "engines": { | |
16133 | + "node": ">=0.10.0" | |
16134 | + } | |
16135 | + }, | |
16136 | + "node_modules/nanomatch/node_modules/define-property": { | |
16137 | + "version": "2.0.2", | |
16138 | + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", | |
16139 | + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", | |
16140 | + "dev": true, | |
16141 | + "optional": true, | |
16142 | + "peer": true, | |
16143 | + "dependencies": { | |
16144 | + "is-descriptor": "^1.0.2", | |
16145 | + "isobject": "^3.0.1" | |
16146 | + }, | |
16147 | + "engines": { | |
16148 | + "node": ">=0.10.0" | |
16149 | + } | |
16150 | + }, | |
16151 | + "node_modules/nanomatch/node_modules/extend-shallow": { | |
16152 | + "version": "3.0.2", | |
16153 | + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", | |
16154 | + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", | |
16155 | + "dev": true, | |
16156 | + "optional": true, | |
16157 | + "peer": true, | |
16158 | + "dependencies": { | |
16159 | + "assign-symbols": "^1.0.0", | |
16160 | + "is-extendable": "^1.0.1" | |
16161 | + }, | |
16162 | + "engines": { | |
16163 | + "node": ">=0.10.0" | |
16164 | + } | |
16165 | + }, | |
16166 | + "node_modules/nanomatch/node_modules/is-descriptor": { | |
16167 | + "version": "1.0.3", | |
16168 | + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", | |
16169 | + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", | |
16170 | + "dev": true, | |
16171 | + "optional": true, | |
16172 | + "peer": true, | |
16173 | + "dependencies": { | |
16174 | + "is-accessor-descriptor": "^1.0.1", | |
16175 | + "is-data-descriptor": "^1.0.1" | |
16176 | + }, | |
16177 | + "engines": { | |
16178 | + "node": ">= 0.4" | |
16179 | + } | |
16180 | + }, | |
16181 | + "node_modules/nanomatch/node_modules/is-extendable": { | |
16182 | + "version": "1.0.1", | |
16183 | + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", | |
16184 | + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", | |
16185 | + "dev": true, | |
16186 | + "optional": true, | |
16187 | + "peer": true, | |
16188 | + "dependencies": { | |
16189 | + "is-plain-object": "^2.0.4" | |
16190 | + }, | |
16191 | + "engines": { | |
16192 | + "node": ">=0.10.0" | |
16193 | + } | |
16194 | + }, | |
15088 | 16195 | "node_modules/natural-compare": { |
15089 | 16196 | "version": "1.4.0", |
15090 | 16197 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", |
... | ... | @@ -15123,6 +16230,12 @@ |
15123 | 16230 | "node": ">=0.10.0" |
15124 | 16231 | } |
15125 | 16232 | }, |
16233 | + "node_modules/neo-async": { | |
16234 | + "version": "2.6.2", | |
16235 | + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", | |
16236 | + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", | |
16237 | + "peer": true | |
16238 | + }, | |
15126 | 16239 | "node_modules/next-tick": { |
15127 | 16240 | "version": "1.1.0", |
15128 | 16241 | "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", |
... | ... | @@ -15378,6 +16491,16 @@ |
15378 | 16491 | "url": "https://github.com/fb55/nth-check?sponsor=1" |
15379 | 16492 | } |
15380 | 16493 | }, |
16494 | + "node_modules/number-is-nan": { | |
16495 | + "version": "1.0.1", | |
16496 | + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", | |
16497 | + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", | |
16498 | + "dev": true, | |
16499 | + "peer": true, | |
16500 | + "engines": { | |
16501 | + "node": ">=0.10.0" | |
16502 | + } | |
16503 | + }, | |
15381 | 16504 | "node_modules/object-assign": { |
15382 | 16505 | "version": "4.1.1", |
15383 | 16506 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", |
... | ... | @@ -15386,6 +16509,36 @@ |
15386 | 16509 | "node": ">=0.10.0" |
15387 | 16510 | } |
15388 | 16511 | }, |
16512 | + "node_modules/object-copy": { | |
16513 | + "version": "0.1.0", | |
16514 | + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", | |
16515 | + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", | |
16516 | + "dev": true, | |
16517 | + "optional": true, | |
16518 | + "peer": true, | |
16519 | + "dependencies": { | |
16520 | + "copy-descriptor": "^0.1.0", | |
16521 | + "define-property": "^0.2.5", | |
16522 | + "kind-of": "^3.0.3" | |
16523 | + }, | |
16524 | + "engines": { | |
16525 | + "node": ">=0.10.0" | |
16526 | + } | |
16527 | + }, | |
16528 | + "node_modules/object-copy/node_modules/kind-of": { | |
16529 | + "version": "3.2.2", | |
16530 | + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", | |
16531 | + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", | |
16532 | + "dev": true, | |
16533 | + "optional": true, | |
16534 | + "peer": true, | |
16535 | + "dependencies": { | |
16536 | + "is-buffer": "^1.1.5" | |
16537 | + }, | |
16538 | + "engines": { | |
16539 | + "node": ">=0.10.0" | |
16540 | + } | |
16541 | + }, | |
15389 | 16542 | "node_modules/object-hash": { |
15390 | 16543 | "version": "3.0.0", |
15391 | 16544 | "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", |
... | ... | @@ -15426,6 +16579,20 @@ |
15426 | 16579 | "node": ">= 0.4" |
15427 | 16580 | } |
15428 | 16581 | }, |
16582 | + "node_modules/object-visit": { | |
16583 | + "version": "1.0.1", | |
16584 | + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", | |
16585 | + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", | |
16586 | + "dev": true, | |
16587 | + "optional": true, | |
16588 | + "peer": true, | |
16589 | + "dependencies": { | |
16590 | + "isobject": "^3.0.0" | |
16591 | + }, | |
16592 | + "engines": { | |
16593 | + "node": ">=0.10.0" | |
16594 | + } | |
16595 | + }, | |
15429 | 16596 | "node_modules/object.assign": { |
15430 | 16597 | "version": "4.1.5", |
15431 | 16598 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", |
... | ... | @@ -15501,6 +16668,20 @@ |
15501 | 16668 | "url": "https://github.com/sponsors/ljharb" |
15502 | 16669 | } |
15503 | 16670 | }, |
16671 | + "node_modules/object.pick": { | |
16672 | + "version": "1.3.0", | |
16673 | + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", | |
16674 | + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", | |
16675 | + "dev": true, | |
16676 | + "optional": true, | |
16677 | + "peer": true, | |
16678 | + "dependencies": { | |
16679 | + "isobject": "^3.0.1" | |
16680 | + }, | |
16681 | + "engines": { | |
16682 | + "node": ">=0.10.0" | |
16683 | + } | |
16684 | + }, | |
15504 | 16685 | "node_modules/object.values": { |
15505 | 16686 | "version": "1.1.7", |
15506 | 16687 | "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", |
... | ... | @@ -15746,6 +16927,19 @@ |
15746 | 16927 | "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", |
15747 | 16928 | "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==" |
15748 | 16929 | }, |
16930 | + "node_modules/os-locale": { | |
16931 | + "version": "1.4.0", | |
16932 | + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", | |
16933 | + "integrity": "sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==", | |
16934 | + "dev": true, | |
16935 | + "peer": true, | |
16936 | + "dependencies": { | |
16937 | + "lcid": "^1.0.0" | |
16938 | + }, | |
16939 | + "engines": { | |
16940 | + "node": ">=0.10.0" | |
16941 | + } | |
16942 | + }, | |
15749 | 16943 | "node_modules/os-tmpdir": { |
15750 | 16944 | "version": "1.0.2", |
15751 | 16945 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", |
... | ... | @@ -15913,11 +17107,30 @@ |
15913 | 17107 | "tslib": "^2.0.3" |
15914 | 17108 | } |
15915 | 17109 | }, |
15916 | - "node_modules/path-browserify": { | |
15917 | - "version": "1.0.1", | |
15918 | - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", | |
15919 | - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", | |
15920 | - "dev": true | |
17110 | + "node_modules/pascalcase": { | |
17111 | + "version": "0.1.1", | |
17112 | + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", | |
17113 | + "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", | |
17114 | + "dev": true, | |
17115 | + "optional": true, | |
17116 | + "peer": true, | |
17117 | + "engines": { | |
17118 | + "node": ">=0.10.0" | |
17119 | + } | |
17120 | + }, | |
17121 | + "node_modules/path-browserify": { | |
17122 | + "version": "1.0.1", | |
17123 | + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", | |
17124 | + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", | |
17125 | + "dev": true | |
17126 | + }, | |
17127 | + "node_modules/path-dirname": { | |
17128 | + "version": "1.0.2", | |
17129 | + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", | |
17130 | + "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", | |
17131 | + "dev": true, | |
17132 | + "optional": true, | |
17133 | + "peer": true | |
15921 | 17134 | }, |
15922 | 17135 | "node_modules/path-exists": { |
15923 | 17136 | "version": "4.0.0", |
... | ... | @@ -16130,6 +17343,17 @@ |
16130 | 17343 | "polyline-miter-util": "^1.0.1" |
16131 | 17344 | } |
16132 | 17345 | }, |
17346 | + "node_modules/posix-character-classes": { | |
17347 | + "version": "0.1.1", | |
17348 | + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", | |
17349 | + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", | |
17350 | + "dev": true, | |
17351 | + "optional": true, | |
17352 | + "peer": true, | |
17353 | + "engines": { | |
17354 | + "node": ">=0.10.0" | |
17355 | + } | |
17356 | + }, | |
16133 | 17357 | "node_modules/possible-typed-array-names": { |
16134 | 17358 | "version": "1.0.0", |
16135 | 17359 | "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", |
... | ... | @@ -17065,7 +18289,7 @@ |
17065 | 18289 | "version": "1.0.1", |
17066 | 18290 | "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", |
17067 | 18291 | "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", |
17068 | - "optional": true | |
18292 | + "devOptional": true | |
17069 | 18293 | }, |
17070 | 18294 | "node_modules/public-encrypt": { |
17071 | 18295 | "version": "4.0.3", |
... | ... | @@ -17819,6 +19043,19 @@ |
17819 | 19043 | "react-dom": ">=16.9.0" |
17820 | 19044 | } |
17821 | 19045 | }, |
19046 | + "node_modules/react": { | |
19047 | + "version": "17.0.2", | |
19048 | + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", | |
19049 | + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", | |
19050 | + "peer": true, | |
19051 | + "dependencies": { | |
19052 | + "loose-envify": "^1.1.0", | |
19053 | + "object-assign": "^4.1.1" | |
19054 | + }, | |
19055 | + "engines": { | |
19056 | + "node": ">=0.10.0" | |
19057 | + } | |
19058 | + }, | |
17822 | 19059 | "node_modules/react-color": { |
17823 | 19060 | "version": "2.17.3", |
17824 | 19061 | "resolved": "https://registry.npmjs.org/react-color/-/react-color-2.17.3.tgz", |
... | ... | @@ -17843,6 +19080,20 @@ |
17843 | 19080 | "react": ">=16.0.0" |
17844 | 19081 | } |
17845 | 19082 | }, |
19083 | + "node_modules/react-dom": { | |
19084 | + "version": "17.0.2", | |
19085 | + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", | |
19086 | + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", | |
19087 | + "peer": true, | |
19088 | + "dependencies": { | |
19089 | + "loose-envify": "^1.1.0", | |
19090 | + "object-assign": "^4.1.1", | |
19091 | + "scheduler": "^0.20.2" | |
19092 | + }, | |
19093 | + "peerDependencies": { | |
19094 | + "react": "17.0.2" | |
19095 | + } | |
19096 | + }, | |
17846 | 19097 | "node_modules/react-error-overlay": { |
17847 | 19098 | "version": "6.0.9", |
17848 | 19099 | "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.9.tgz", |
... | ... | @@ -18558,6 +19809,74 @@ |
18558 | 19809 | "react-dom": ">=16.8" |
18559 | 19810 | } |
18560 | 19811 | }, |
19812 | + "node_modules/react-router-redux": { | |
19813 | + "version": "5.0.0-alpha.9", | |
19814 | + "resolved": "https://registry.npmjs.org/react-router-redux/-/react-router-redux-5.0.0-alpha.9.tgz", | |
19815 | + "integrity": "sha512-euSgNIANnRXr4GydIuwA7RZCefrLQzIw5WdXspS8NPYbV+FxrKSS9MKG7U9vb6vsKHONnA4VxrVNWfnMUnUQAw==", | |
19816 | + "deprecated": "This project is no longer maintained.", | |
19817 | + "peer": true, | |
19818 | + "dependencies": { | |
19819 | + "history": "^4.7.2", | |
19820 | + "prop-types": "^15.6.0", | |
19821 | + "react-router": "^4.2.0" | |
19822 | + }, | |
19823 | + "peerDependencies": { | |
19824 | + "react": ">=15" | |
19825 | + } | |
19826 | + }, | |
19827 | + "node_modules/react-router-redux/node_modules/history": { | |
19828 | + "version": "4.10.1", | |
19829 | + "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", | |
19830 | + "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", | |
19831 | + "peer": true, | |
19832 | + "dependencies": { | |
19833 | + "@babel/runtime": "^7.1.2", | |
19834 | + "loose-envify": "^1.2.0", | |
19835 | + "resolve-pathname": "^3.0.0", | |
19836 | + "tiny-invariant": "^1.0.2", | |
19837 | + "tiny-warning": "^1.0.0", | |
19838 | + "value-equal": "^1.0.1" | |
19839 | + } | |
19840 | + }, | |
19841 | + "node_modules/react-router-redux/node_modules/hoist-non-react-statics": { | |
19842 | + "version": "2.5.5", | |
19843 | + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", | |
19844 | + "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==", | |
19845 | + "peer": true | |
19846 | + }, | |
19847 | + "node_modules/react-router-redux/node_modules/isarray": { | |
19848 | + "version": "0.0.1", | |
19849 | + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", | |
19850 | + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", | |
19851 | + "peer": true | |
19852 | + }, | |
19853 | + "node_modules/react-router-redux/node_modules/path-to-regexp": { | |
19854 | + "version": "1.9.0", | |
19855 | + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz", | |
19856 | + "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==", | |
19857 | + "peer": true, | |
19858 | + "dependencies": { | |
19859 | + "isarray": "0.0.1" | |
19860 | + } | |
19861 | + }, | |
19862 | + "node_modules/react-router-redux/node_modules/react-router": { | |
19863 | + "version": "4.3.1", | |
19864 | + "resolved": "https://registry.npmjs.org/react-router/-/react-router-4.3.1.tgz", | |
19865 | + "integrity": "sha512-yrvL8AogDh2X42Dt9iknk4wF4V8bWREPirFfS9gLU1huk6qK41sg7Z/1S81jjTrGHxa3B8R3J6xIkDAA6CVarg==", | |
19866 | + "peer": true, | |
19867 | + "dependencies": { | |
19868 | + "history": "^4.7.2", | |
19869 | + "hoist-non-react-statics": "^2.5.0", | |
19870 | + "invariant": "^2.2.4", | |
19871 | + "loose-envify": "^1.3.1", | |
19872 | + "path-to-regexp": "^1.7.0", | |
19873 | + "prop-types": "^15.6.1", | |
19874 | + "warning": "^4.0.1" | |
19875 | + }, | |
19876 | + "peerDependencies": { | |
19877 | + "react": ">=15" | |
19878 | + } | |
19879 | + }, | |
18561 | 19880 | "node_modules/react-universal-interface": { |
18562 | 19881 | "version": "0.6.2", |
18563 | 19882 | "resolved": "https://registry.npmjs.org/react-universal-interface/-/react-universal-interface-0.6.2.tgz", |
... | ... | @@ -18874,6 +20193,50 @@ |
18874 | 20193 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", |
18875 | 20194 | "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" |
18876 | 20195 | }, |
20196 | + "node_modules/regex-not": { | |
20197 | + "version": "1.0.2", | |
20198 | + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", | |
20199 | + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", | |
20200 | + "dev": true, | |
20201 | + "optional": true, | |
20202 | + "peer": true, | |
20203 | + "dependencies": { | |
20204 | + "extend-shallow": "^3.0.2", | |
20205 | + "safe-regex": "^1.1.0" | |
20206 | + }, | |
20207 | + "engines": { | |
20208 | + "node": ">=0.10.0" | |
20209 | + } | |
20210 | + }, | |
20211 | + "node_modules/regex-not/node_modules/extend-shallow": { | |
20212 | + "version": "3.0.2", | |
20213 | + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", | |
20214 | + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", | |
20215 | + "dev": true, | |
20216 | + "optional": true, | |
20217 | + "peer": true, | |
20218 | + "dependencies": { | |
20219 | + "assign-symbols": "^1.0.0", | |
20220 | + "is-extendable": "^1.0.1" | |
20221 | + }, | |
20222 | + "engines": { | |
20223 | + "node": ">=0.10.0" | |
20224 | + } | |
20225 | + }, | |
20226 | + "node_modules/regex-not/node_modules/is-extendable": { | |
20227 | + "version": "1.0.1", | |
20228 | + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", | |
20229 | + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", | |
20230 | + "dev": true, | |
20231 | + "optional": true, | |
20232 | + "peer": true, | |
20233 | + "dependencies": { | |
20234 | + "is-plain-object": "^2.0.4" | |
20235 | + }, | |
20236 | + "engines": { | |
20237 | + "node": ">=0.10.0" | |
20238 | + } | |
20239 | + }, | |
18877 | 20240 | "node_modules/regexp.prototype.flags": { |
18878 | 20241 | "version": "1.5.2", |
18879 | 20242 | "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", |
... | ... | @@ -18920,6 +20283,14 @@ |
18920 | 20283 | "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.4.2.tgz", |
18921 | 20284 | "integrity": "sha512-7pXIJqJOq5tFgG1A2Zxti3Ht8jJF337m4sowbuHsW30ZnkQFnDzy9qBNhgzX8ZLW4+UBcXiiR7SwR6pokHsxiA==" |
18922 | 20285 | }, |
20286 | + "node_modules/remove-trailing-separator": { | |
20287 | + "version": "1.1.0", | |
20288 | + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", | |
20289 | + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", | |
20290 | + "dev": true, | |
20291 | + "optional": true, | |
20292 | + "peer": true | |
20293 | + }, | |
18923 | 20294 | "node_modules/renderkid": { |
18924 | 20295 | "version": "3.0.0", |
18925 | 20296 | "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", |
... | ... | @@ -18932,6 +20303,17 @@ |
18932 | 20303 | "strip-ansi": "^6.0.1" |
18933 | 20304 | } |
18934 | 20305 | }, |
20306 | + "node_modules/repeat-element": { | |
20307 | + "version": "1.1.4", | |
20308 | + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", | |
20309 | + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", | |
20310 | + "dev": true, | |
20311 | + "optional": true, | |
20312 | + "peer": true, | |
20313 | + "engines": { | |
20314 | + "node": ">=0.10.0" | |
20315 | + } | |
20316 | + }, | |
18935 | 20317 | "node_modules/repeat-string": { |
18936 | 20318 | "version": "1.6.1", |
18937 | 20319 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", |
... | ... | @@ -18956,6 +20338,13 @@ |
18956 | 20338 | "node": ">=0.10.0" |
18957 | 20339 | } |
18958 | 20340 | }, |
20341 | + "node_modules/require-main-filename": { | |
20342 | + "version": "1.0.1", | |
20343 | + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", | |
20344 | + "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==", | |
20345 | + "dev": true, | |
20346 | + "peer": true | |
20347 | + }, | |
18959 | 20348 | "node_modules/resize-observer-polyfill": { |
18960 | 20349 | "version": "1.5.1", |
18961 | 20350 | "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", |
... | ... | @@ -18985,6 +20374,12 @@ |
18985 | 20374 | "node": ">=4" |
18986 | 20375 | } |
18987 | 20376 | }, |
20377 | + "node_modules/resolve-pathname": { | |
20378 | + "version": "3.0.0", | |
20379 | + "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", | |
20380 | + "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==", | |
20381 | + "peer": true | |
20382 | + }, | |
18988 | 20383 | "node_modules/resolve-pkg-maps": { |
18989 | 20384 | "version": "1.0.0", |
18990 | 20385 | "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", |
... | ... | @@ -19001,6 +20396,15 @@ |
19001 | 20396 | "protocol-buffers-schema": "^3.3.1" |
19002 | 20397 | } |
19003 | 20398 | }, |
20399 | + "node_modules/resolve-url": { | |
20400 | + "version": "0.2.1", | |
20401 | + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", | |
20402 | + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", | |
20403 | + "deprecated": "https://github.com/lydell/resolve-url#deprecated", | |
20404 | + "dev": true, | |
20405 | + "optional": true, | |
20406 | + "peer": true | |
20407 | + }, | |
19004 | 20408 | "node_modules/responselike": { |
19005 | 20409 | "version": "1.0.2", |
19006 | 20410 | "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", |
... | ... | @@ -19053,6 +20457,17 @@ |
19053 | 20457 | "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", |
19054 | 20458 | "dev": true |
19055 | 20459 | }, |
20460 | + "node_modules/ret": { | |
20461 | + "version": "0.1.15", | |
20462 | + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", | |
20463 | + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", | |
20464 | + "dev": true, | |
20465 | + "optional": true, | |
20466 | + "peer": true, | |
20467 | + "engines": { | |
20468 | + "node": ">=0.12" | |
20469 | + } | |
20470 | + }, | |
19056 | 20471 | "node_modules/reusify": { |
19057 | 20472 | "version": "1.0.4", |
19058 | 20473 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", |
... | ... | @@ -19392,6 +20807,17 @@ |
19392 | 20807 | } |
19393 | 20808 | ] |
19394 | 20809 | }, |
20810 | + "node_modules/safe-regex": { | |
20811 | + "version": "1.1.0", | |
20812 | + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", | |
20813 | + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", | |
20814 | + "dev": true, | |
20815 | + "optional": true, | |
20816 | + "peer": true, | |
20817 | + "dependencies": { | |
20818 | + "ret": "~0.1.10" | |
20819 | + } | |
20820 | + }, | |
19395 | 20821 | "node_modules/safe-regex-test": { |
19396 | 20822 | "version": "1.0.3", |
19397 | 20823 | "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", |
... | ... | @@ -19427,6 +20853,16 @@ |
19427 | 20853 | "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", |
19428 | 20854 | "optional": true |
19429 | 20855 | }, |
20856 | + "node_modules/scheduler": { | |
20857 | + "version": "0.20.2", | |
20858 | + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", | |
20859 | + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", | |
20860 | + "peer": true, | |
20861 | + "dependencies": { | |
20862 | + "loose-envify": "^1.1.0", | |
20863 | + "object-assign": "^4.1.1" | |
20864 | + } | |
20865 | + }, | |
19430 | 20866 | "node_modules/schema-utils": { |
19431 | 20867 | "version": "3.3.0", |
19432 | 20868 | "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", |
... | ... | @@ -19495,6 +20931,22 @@ |
19495 | 20931 | "semver": "bin/semver.js" |
19496 | 20932 | } |
19497 | 20933 | }, |
20934 | + "node_modules/serialize-javascript": { | |
20935 | + "version": "6.0.2", | |
20936 | + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", | |
20937 | + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", | |
20938 | + "peer": true, | |
20939 | + "dependencies": { | |
20940 | + "randombytes": "^2.1.0" | |
20941 | + } | |
20942 | + }, | |
20943 | + "node_modules/set-blocking": { | |
20944 | + "version": "2.0.0", | |
20945 | + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", | |
20946 | + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", | |
20947 | + "dev": true, | |
20948 | + "peer": true | |
20949 | + }, | |
19498 | 20950 | "node_modules/set-function-length": { |
19499 | 20951 | "version": "1.2.1", |
19500 | 20952 | "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", |
... | ... | @@ -19683,72 +21135,196 @@ |
19683 | 21135 | "url": "https://github.com/chalk/slice-ansi?sponsor=1" |
19684 | 21136 | } |
19685 | 21137 | }, |
19686 | - "node_modules/sonic-boom": { | |
19687 | - "version": "2.8.0", | |
19688 | - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-2.8.0.tgz", | |
19689 | - "integrity": "sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==", | |
21138 | + "node_modules/snapdragon": { | |
21139 | + "version": "0.8.2", | |
21140 | + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", | |
21141 | + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", | |
21142 | + "dev": true, | |
21143 | + "optional": true, | |
21144 | + "peer": true, | |
19690 | 21145 | "dependencies": { |
19691 | - "atomic-sleep": "^1.0.0" | |
21146 | + "base": "^0.11.1", | |
21147 | + "debug": "^2.2.0", | |
21148 | + "define-property": "^0.2.5", | |
21149 | + "extend-shallow": "^2.0.1", | |
21150 | + "map-cache": "^0.2.2", | |
21151 | + "source-map": "^0.5.6", | |
21152 | + "source-map-resolve": "^0.5.0", | |
21153 | + "use": "^3.1.0" | |
21154 | + }, | |
21155 | + "engines": { | |
21156 | + "node": ">=0.10.0" | |
19692 | 21157 | } |
19693 | 21158 | }, |
19694 | - "node_modules/sort-asc": { | |
19695 | - "version": "0.2.0", | |
19696 | - "resolved": "https://registry.npmjs.org/sort-asc/-/sort-asc-0.2.0.tgz", | |
19697 | - "integrity": "sha512-umMGhjPeHAI6YjABoSTrFp2zaBtXBej1a0yKkuMUyjjqu6FJsTF+JYwCswWDg+zJfk/5npWUUbd33HH/WLzpaA==", | |
21159 | + "node_modules/snapdragon-node": { | |
21160 | + "version": "2.1.1", | |
21161 | + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", | |
21162 | + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", | |
21163 | + "dev": true, | |
21164 | + "optional": true, | |
21165 | + "peer": true, | |
21166 | + "dependencies": { | |
21167 | + "define-property": "^1.0.0", | |
21168 | + "isobject": "^3.0.0", | |
21169 | + "snapdragon-util": "^3.0.1" | |
21170 | + }, | |
19698 | 21171 | "engines": { |
19699 | 21172 | "node": ">=0.10.0" |
19700 | 21173 | } |
19701 | 21174 | }, |
19702 | - "node_modules/sort-desc": { | |
19703 | - "version": "0.2.0", | |
19704 | - "resolved": "https://registry.npmjs.org/sort-desc/-/sort-desc-0.2.0.tgz", | |
19705 | - "integrity": "sha512-NqZqyvL4VPW+RAxxXnB8gvE1kyikh8+pR+T+CXLksVRN9eiQqkQlPwqWYU0mF9Jm7UnctShlxLyAt1CaBOTL1w==", | |
21175 | + "node_modules/snapdragon-node/node_modules/define-property": { | |
21176 | + "version": "1.0.0", | |
21177 | + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", | |
21178 | + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", | |
21179 | + "dev": true, | |
21180 | + "optional": true, | |
21181 | + "peer": true, | |
21182 | + "dependencies": { | |
21183 | + "is-descriptor": "^1.0.0" | |
21184 | + }, | |
19706 | 21185 | "engines": { |
19707 | 21186 | "node": ">=0.10.0" |
19708 | 21187 | } |
19709 | 21188 | }, |
19710 | - "node_modules/sort-keys": { | |
19711 | - "version": "2.0.0", | |
19712 | - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", | |
19713 | - "integrity": "sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==", | |
21189 | + "node_modules/snapdragon-node/node_modules/is-descriptor": { | |
21190 | + "version": "1.0.3", | |
21191 | + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", | |
21192 | + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", | |
19714 | 21193 | "dev": true, |
21194 | + "optional": true, | |
21195 | + "peer": true, | |
19715 | 21196 | "dependencies": { |
19716 | - "is-plain-obj": "^1.0.0" | |
21197 | + "is-accessor-descriptor": "^1.0.1", | |
21198 | + "is-data-descriptor": "^1.0.1" | |
19717 | 21199 | }, |
19718 | 21200 | "engines": { |
19719 | - "node": ">=4" | |
21201 | + "node": ">= 0.4" | |
19720 | 21202 | } |
19721 | 21203 | }, |
19722 | - "node_modules/sort-keys-length": { | |
19723 | - "version": "1.0.1", | |
19724 | - "resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz", | |
19725 | - "integrity": "sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw==", | |
21204 | + "node_modules/snapdragon-util": { | |
21205 | + "version": "3.0.1", | |
21206 | + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", | |
21207 | + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", | |
19726 | 21208 | "dev": true, |
21209 | + "optional": true, | |
21210 | + "peer": true, | |
19727 | 21211 | "dependencies": { |
19728 | - "sort-keys": "^1.0.0" | |
21212 | + "kind-of": "^3.2.0" | |
19729 | 21213 | }, |
19730 | 21214 | "engines": { |
19731 | 21215 | "node": ">=0.10.0" |
19732 | 21216 | } |
19733 | 21217 | }, |
19734 | - "node_modules/sort-keys-length/node_modules/sort-keys": { | |
19735 | - "version": "1.1.2", | |
19736 | - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", | |
19737 | - "integrity": "sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==", | |
21218 | + "node_modules/snapdragon-util/node_modules/kind-of": { | |
21219 | + "version": "3.2.2", | |
21220 | + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", | |
21221 | + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", | |
19738 | 21222 | "dev": true, |
21223 | + "optional": true, | |
21224 | + "peer": true, | |
19739 | 21225 | "dependencies": { |
19740 | - "is-plain-obj": "^1.0.0" | |
21226 | + "is-buffer": "^1.1.5" | |
19741 | 21227 | }, |
19742 | 21228 | "engines": { |
19743 | 21229 | "node": ">=0.10.0" |
19744 | 21230 | } |
19745 | 21231 | }, |
19746 | - "node_modules/sort-object": { | |
19747 | - "version": "3.0.3", | |
19748 | - "resolved": "https://registry.npmjs.org/sort-object/-/sort-object-3.0.3.tgz", | |
19749 | - "integrity": "sha512-nK7WOY8jik6zaG9CRwZTaD5O7ETWDLZYMM12pqY8htll+7dYeqGfEUPcUBHOpSJg2vJOrvFIY2Dl5cX2ih1hAQ==", | |
19750 | - "dependencies": { | |
19751 | - "bytewise": "^1.1.0", | |
21232 | + "node_modules/snapdragon/node_modules/debug": { | |
21233 | + "version": "2.6.9", | |
21234 | + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", | |
21235 | + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", | |
21236 | + "dev": true, | |
21237 | + "optional": true, | |
21238 | + "peer": true, | |
21239 | + "dependencies": { | |
21240 | + "ms": "2.0.0" | |
21241 | + } | |
21242 | + }, | |
21243 | + "node_modules/snapdragon/node_modules/ms": { | |
21244 | + "version": "2.0.0", | |
21245 | + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", | |
21246 | + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", | |
21247 | + "dev": true, | |
21248 | + "optional": true, | |
21249 | + "peer": true | |
21250 | + }, | |
21251 | + "node_modules/snapdragon/node_modules/source-map": { | |
21252 | + "version": "0.5.7", | |
21253 | + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", | |
21254 | + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", | |
21255 | + "dev": true, | |
21256 | + "optional": true, | |
21257 | + "peer": true, | |
21258 | + "engines": { | |
21259 | + "node": ">=0.10.0" | |
21260 | + } | |
21261 | + }, | |
21262 | + "node_modules/sonic-boom": { | |
21263 | + "version": "2.8.0", | |
21264 | + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-2.8.0.tgz", | |
21265 | + "integrity": "sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==", | |
21266 | + "dependencies": { | |
21267 | + "atomic-sleep": "^1.0.0" | |
21268 | + } | |
21269 | + }, | |
21270 | + "node_modules/sort-asc": { | |
21271 | + "version": "0.2.0", | |
21272 | + "resolved": "https://registry.npmjs.org/sort-asc/-/sort-asc-0.2.0.tgz", | |
21273 | + "integrity": "sha512-umMGhjPeHAI6YjABoSTrFp2zaBtXBej1a0yKkuMUyjjqu6FJsTF+JYwCswWDg+zJfk/5npWUUbd33HH/WLzpaA==", | |
21274 | + "engines": { | |
21275 | + "node": ">=0.10.0" | |
21276 | + } | |
21277 | + }, | |
21278 | + "node_modules/sort-desc": { | |
21279 | + "version": "0.2.0", | |
21280 | + "resolved": "https://registry.npmjs.org/sort-desc/-/sort-desc-0.2.0.tgz", | |
21281 | + "integrity": "sha512-NqZqyvL4VPW+RAxxXnB8gvE1kyikh8+pR+T+CXLksVRN9eiQqkQlPwqWYU0mF9Jm7UnctShlxLyAt1CaBOTL1w==", | |
21282 | + "engines": { | |
21283 | + "node": ">=0.10.0" | |
21284 | + } | |
21285 | + }, | |
21286 | + "node_modules/sort-keys": { | |
21287 | + "version": "2.0.0", | |
21288 | + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", | |
21289 | + "integrity": "sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==", | |
21290 | + "dev": true, | |
21291 | + "dependencies": { | |
21292 | + "is-plain-obj": "^1.0.0" | |
21293 | + }, | |
21294 | + "engines": { | |
21295 | + "node": ">=4" | |
21296 | + } | |
21297 | + }, | |
21298 | + "node_modules/sort-keys-length": { | |
21299 | + "version": "1.0.1", | |
21300 | + "resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz", | |
21301 | + "integrity": "sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw==", | |
21302 | + "dev": true, | |
21303 | + "dependencies": { | |
21304 | + "sort-keys": "^1.0.0" | |
21305 | + }, | |
21306 | + "engines": { | |
21307 | + "node": ">=0.10.0" | |
21308 | + } | |
21309 | + }, | |
21310 | + "node_modules/sort-keys-length/node_modules/sort-keys": { | |
21311 | + "version": "1.1.2", | |
21312 | + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", | |
21313 | + "integrity": "sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==", | |
21314 | + "dev": true, | |
21315 | + "dependencies": { | |
21316 | + "is-plain-obj": "^1.0.0" | |
21317 | + }, | |
21318 | + "engines": { | |
21319 | + "node": ">=0.10.0" | |
21320 | + } | |
21321 | + }, | |
21322 | + "node_modules/sort-object": { | |
21323 | + "version": "3.0.3", | |
21324 | + "resolved": "https://registry.npmjs.org/sort-object/-/sort-object-3.0.3.tgz", | |
21325 | + "integrity": "sha512-nK7WOY8jik6zaG9CRwZTaD5O7ETWDLZYMM12pqY8htll+7dYeqGfEUPcUBHOpSJg2vJOrvFIY2Dl5cX2ih1hAQ==", | |
21326 | + "dependencies": { | |
21327 | + "bytewise": "^1.1.0", | |
19752 | 21328 | "get-value": "^2.0.2", |
19753 | 21329 | "is-extendable": "^0.1.1", |
19754 | 21330 | "sort-asc": "^0.2.0", |
... | ... | @@ -19825,6 +21401,13 @@ |
19825 | 21401 | "url": "https://github.com/sponsors/sindresorhus" |
19826 | 21402 | } |
19827 | 21403 | }, |
21404 | + "node_modules/source-list-map": { | |
21405 | + "version": "2.0.1", | |
21406 | + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", | |
21407 | + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", | |
21408 | + "dev": true, | |
21409 | + "peer": true | |
21410 | + }, | |
19828 | 21411 | "node_modules/source-map": { |
19829 | 21412 | "version": "0.7.4", |
19830 | 21413 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", |
... | ... | @@ -19841,6 +21424,22 @@ |
19841 | 21424 | "node": ">=0.10.0" |
19842 | 21425 | } |
19843 | 21426 | }, |
21427 | + "node_modules/source-map-resolve": { | |
21428 | + "version": "0.5.3", | |
21429 | + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", | |
21430 | + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", | |
21431 | + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", | |
21432 | + "dev": true, | |
21433 | + "optional": true, | |
21434 | + "peer": true, | |
21435 | + "dependencies": { | |
21436 | + "atob": "^2.1.2", | |
21437 | + "decode-uri-component": "^0.2.0", | |
21438 | + "resolve-url": "^0.2.1", | |
21439 | + "source-map-url": "^0.4.0", | |
21440 | + "urix": "^0.1.0" | |
21441 | + } | |
21442 | + }, | |
19844 | 21443 | "node_modules/source-map-support": { |
19845 | 21444 | "version": "0.5.21", |
19846 | 21445 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", |
... | ... | @@ -19858,6 +21457,15 @@ |
19858 | 21457 | "node": ">=0.10.0" |
19859 | 21458 | } |
19860 | 21459 | }, |
21460 | + "node_modules/source-map-url": { | |
21461 | + "version": "0.4.1", | |
21462 | + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", | |
21463 | + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", | |
21464 | + "deprecated": "See https://github.com/lydell/source-map-url#deprecated", | |
21465 | + "dev": true, | |
21466 | + "optional": true, | |
21467 | + "peer": true | |
21468 | + }, | |
19861 | 21469 | "node_modules/spdx-correct": { |
19862 | 21470 | "version": "3.2.0", |
19863 | 21471 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", |
... | ... | @@ -20062,6 +21670,21 @@ |
20062 | 21670 | "stacktrace-gps": "^3.0.4" |
20063 | 21671 | } |
20064 | 21672 | }, |
21673 | + "node_modules/static-extend": { | |
21674 | + "version": "0.1.2", | |
21675 | + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", | |
21676 | + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", | |
21677 | + "dev": true, | |
21678 | + "optional": true, | |
21679 | + "peer": true, | |
21680 | + "dependencies": { | |
21681 | + "define-property": "^0.2.5", | |
21682 | + "object-copy": "^0.1.0" | |
21683 | + }, | |
21684 | + "engines": { | |
21685 | + "node": ">=0.10.0" | |
21686 | + } | |
21687 | + }, | |
20065 | 21688 | "node_modules/stdin-discarder": { |
20066 | 21689 | "version": "0.1.0", |
20067 | 21690 | "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.1.0.tgz", |
... | ... | @@ -20657,6 +22280,15 @@ |
20657 | 22280 | "react": "^16.11.0 || ^17.0.0 || ^18.0.0" |
20658 | 22281 | } |
20659 | 22282 | }, |
22283 | + "node_modules/symbol-observable": { | |
22284 | + "version": "1.2.0", | |
22285 | + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", | |
22286 | + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", | |
22287 | + "peer": true, | |
22288 | + "engines": { | |
22289 | + "node": ">=0.10.0" | |
22290 | + } | |
22291 | + }, | |
20660 | 22292 | "node_modules/synckit": { |
20661 | 22293 | "version": "0.8.5", |
20662 | 22294 | "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.5.tgz", |
... | ... | @@ -20938,6 +22570,69 @@ |
20938 | 22570 | "node": ">=10" |
20939 | 22571 | } |
20940 | 22572 | }, |
22573 | + "node_modules/terser-webpack-plugin": { | |
22574 | + "version": "5.3.10", | |
22575 | + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", | |
22576 | + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", | |
22577 | + "peer": true, | |
22578 | + "dependencies": { | |
22579 | + "@jridgewell/trace-mapping": "^0.3.20", | |
22580 | + "jest-worker": "^27.4.5", | |
22581 | + "schema-utils": "^3.1.1", | |
22582 | + "serialize-javascript": "^6.0.1", | |
22583 | + "terser": "^5.26.0" | |
22584 | + }, | |
22585 | + "engines": { | |
22586 | + "node": ">= 10.13.0" | |
22587 | + }, | |
22588 | + "funding": { | |
22589 | + "type": "opencollective", | |
22590 | + "url": "https://opencollective.com/webpack" | |
22591 | + }, | |
22592 | + "peerDependencies": { | |
22593 | + "webpack": "^5.1.0" | |
22594 | + }, | |
22595 | + "peerDependenciesMeta": { | |
22596 | + "@swc/core": { | |
22597 | + "optional": true | |
22598 | + }, | |
22599 | + "esbuild": { | |
22600 | + "optional": true | |
22601 | + }, | |
22602 | + "uglify-js": { | |
22603 | + "optional": true | |
22604 | + } | |
22605 | + } | |
22606 | + }, | |
22607 | + "node_modules/terser-webpack-plugin/node_modules/jest-worker": { | |
22608 | + "version": "27.5.1", | |
22609 | + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", | |
22610 | + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", | |
22611 | + "peer": true, | |
22612 | + "dependencies": { | |
22613 | + "@types/node": "*", | |
22614 | + "merge-stream": "^2.0.0", | |
22615 | + "supports-color": "^8.0.0" | |
22616 | + }, | |
22617 | + "engines": { | |
22618 | + "node": ">= 10.13.0" | |
22619 | + } | |
22620 | + }, | |
22621 | + "node_modules/terser-webpack-plugin/node_modules/supports-color": { | |
22622 | + "version": "8.1.1", | |
22623 | + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", | |
22624 | + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", | |
22625 | + "peer": true, | |
22626 | + "dependencies": { | |
22627 | + "has-flag": "^4.0.0" | |
22628 | + }, | |
22629 | + "engines": { | |
22630 | + "node": ">=10" | |
22631 | + }, | |
22632 | + "funding": { | |
22633 | + "url": "https://github.com/chalk/supports-color?sponsor=1" | |
22634 | + } | |
22635 | + }, | |
20941 | 22636 | "node_modules/terser/node_modules/commander": { |
20942 | 22637 | "version": "2.20.3", |
20943 | 22638 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", |
... | ... | @@ -21040,6 +22735,18 @@ |
21040 | 22735 | "node": ">=0.6.0" |
21041 | 22736 | } |
21042 | 22737 | }, |
22738 | + "node_modules/tiny-invariant": { | |
22739 | + "version": "1.3.3", | |
22740 | + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", | |
22741 | + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", | |
22742 | + "peer": true | |
22743 | + }, | |
22744 | + "node_modules/tiny-warning": { | |
22745 | + "version": "1.0.3", | |
22746 | + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", | |
22747 | + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", | |
22748 | + "peer": true | |
22749 | + }, | |
21043 | 22750 | "node_modules/tinycolor2": { |
21044 | 22751 | "version": "1.6.0", |
21045 | 22752 | "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz", |
... | ... | @@ -21097,6 +22804,34 @@ |
21097 | 22804 | "node": ">=4" |
21098 | 22805 | } |
21099 | 22806 | }, |
22807 | + "node_modules/to-object-path": { | |
22808 | + "version": "0.3.0", | |
22809 | + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", | |
22810 | + "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", | |
22811 | + "dev": true, | |
22812 | + "optional": true, | |
22813 | + "peer": true, | |
22814 | + "dependencies": { | |
22815 | + "kind-of": "^3.0.2" | |
22816 | + }, | |
22817 | + "engines": { | |
22818 | + "node": ">=0.10.0" | |
22819 | + } | |
22820 | + }, | |
22821 | + "node_modules/to-object-path/node_modules/kind-of": { | |
22822 | + "version": "3.2.2", | |
22823 | + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", | |
22824 | + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", | |
22825 | + "dev": true, | |
22826 | + "optional": true, | |
22827 | + "peer": true, | |
22828 | + "dependencies": { | |
22829 | + "is-buffer": "^1.1.5" | |
22830 | + }, | |
22831 | + "engines": { | |
22832 | + "node": ">=0.10.0" | |
22833 | + } | |
22834 | + }, | |
21100 | 22835 | "node_modules/to-readable-stream": { |
21101 | 22836 | "version": "1.0.0", |
21102 | 22837 | "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", |
... | ... | @@ -21106,6 +22841,23 @@ |
21106 | 22841 | "node": ">=6" |
21107 | 22842 | } |
21108 | 22843 | }, |
22844 | + "node_modules/to-regex": { | |
22845 | + "version": "3.0.2", | |
22846 | + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", | |
22847 | + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", | |
22848 | + "dev": true, | |
22849 | + "optional": true, | |
22850 | + "peer": true, | |
22851 | + "dependencies": { | |
22852 | + "define-property": "^2.0.2", | |
22853 | + "extend-shallow": "^3.0.2", | |
22854 | + "regex-not": "^1.0.2", | |
22855 | + "safe-regex": "^1.1.0" | |
22856 | + }, | |
22857 | + "engines": { | |
22858 | + "node": ">=0.10.0" | |
22859 | + } | |
22860 | + }, | |
21109 | 22861 | "node_modules/to-regex-range": { |
21110 | 22862 | "version": "5.0.1", |
21111 | 22863 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", |
... | ... | @@ -21117,6 +22869,65 @@ |
21117 | 22869 | "node": ">=8.0" |
21118 | 22870 | } |
21119 | 22871 | }, |
22872 | + "node_modules/to-regex/node_modules/define-property": { | |
22873 | + "version": "2.0.2", | |
22874 | + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", | |
22875 | + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", | |
22876 | + "dev": true, | |
22877 | + "optional": true, | |
22878 | + "peer": true, | |
22879 | + "dependencies": { | |
22880 | + "is-descriptor": "^1.0.2", | |
22881 | + "isobject": "^3.0.1" | |
22882 | + }, | |
22883 | + "engines": { | |
22884 | + "node": ">=0.10.0" | |
22885 | + } | |
22886 | + }, | |
22887 | + "node_modules/to-regex/node_modules/extend-shallow": { | |
22888 | + "version": "3.0.2", | |
22889 | + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", | |
22890 | + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", | |
22891 | + "dev": true, | |
22892 | + "optional": true, | |
22893 | + "peer": true, | |
22894 | + "dependencies": { | |
22895 | + "assign-symbols": "^1.0.0", | |
22896 | + "is-extendable": "^1.0.1" | |
22897 | + }, | |
22898 | + "engines": { | |
22899 | + "node": ">=0.10.0" | |
22900 | + } | |
22901 | + }, | |
22902 | + "node_modules/to-regex/node_modules/is-descriptor": { | |
22903 | + "version": "1.0.3", | |
22904 | + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", | |
22905 | + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", | |
22906 | + "dev": true, | |
22907 | + "optional": true, | |
22908 | + "peer": true, | |
22909 | + "dependencies": { | |
22910 | + "is-accessor-descriptor": "^1.0.1", | |
22911 | + "is-data-descriptor": "^1.0.1" | |
22912 | + }, | |
22913 | + "engines": { | |
22914 | + "node": ">= 0.4" | |
22915 | + } | |
22916 | + }, | |
22917 | + "node_modules/to-regex/node_modules/is-extendable": { | |
22918 | + "version": "1.0.1", | |
22919 | + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", | |
22920 | + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", | |
22921 | + "dev": true, | |
22922 | + "optional": true, | |
22923 | + "peer": true, | |
22924 | + "dependencies": { | |
22925 | + "is-plain-object": "^2.0.4" | |
22926 | + }, | |
22927 | + "engines": { | |
22928 | + "node": ">=0.10.0" | |
22929 | + } | |
22930 | + }, | |
21120 | 22931 | "node_modules/toggle-selection": { |
21121 | 22932 | "version": "1.0.6", |
21122 | 22933 | "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", |
... | ... | @@ -22320,14 +24131,82 @@ |
22320 | 24131 | "node": ">= 4.0.0" |
22321 | 24132 | } |
22322 | 24133 | }, |
22323 | - "node_modules/untildify": { | |
22324 | - "version": "4.0.0", | |
24134 | + "node_modules/unset-value": { | |
24135 | + "version": "1.0.0", | |
24136 | + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", | |
24137 | + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", | |
24138 | + "dev": true, | |
24139 | + "optional": true, | |
24140 | + "peer": true, | |
24141 | + "dependencies": { | |
24142 | + "has-value": "^0.3.1", | |
24143 | + "isobject": "^3.0.0" | |
24144 | + }, | |
24145 | + "engines": { | |
24146 | + "node": ">=0.10.0" | |
24147 | + } | |
24148 | + }, | |
24149 | + "node_modules/unset-value/node_modules/has-value": { | |
24150 | + "version": "0.3.1", | |
24151 | + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", | |
24152 | + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", | |
24153 | + "dev": true, | |
24154 | + "optional": true, | |
24155 | + "peer": true, | |
24156 | + "dependencies": { | |
24157 | + "get-value": "^2.0.3", | |
24158 | + "has-values": "^0.1.4", | |
24159 | + "isobject": "^2.0.0" | |
24160 | + }, | |
24161 | + "engines": { | |
24162 | + "node": ">=0.10.0" | |
24163 | + } | |
24164 | + }, | |
24165 | + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { | |
24166 | + "version": "2.1.0", | |
24167 | + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", | |
24168 | + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", | |
24169 | + "dev": true, | |
24170 | + "optional": true, | |
24171 | + "peer": true, | |
24172 | + "dependencies": { | |
24173 | + "isarray": "1.0.0" | |
24174 | + }, | |
24175 | + "engines": { | |
24176 | + "node": ">=0.10.0" | |
24177 | + } | |
24178 | + }, | |
24179 | + "node_modules/unset-value/node_modules/has-values": { | |
24180 | + "version": "0.1.4", | |
24181 | + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", | |
24182 | + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", | |
24183 | + "dev": true, | |
24184 | + "optional": true, | |
24185 | + "peer": true, | |
24186 | + "engines": { | |
24187 | + "node": ">=0.10.0" | |
24188 | + } | |
24189 | + }, | |
24190 | + "node_modules/untildify": { | |
24191 | + "version": "4.0.0", | |
22325 | 24192 | "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", |
22326 | 24193 | "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", |
22327 | 24194 | "engines": { |
22328 | 24195 | "node": ">=8" |
22329 | 24196 | } |
22330 | 24197 | }, |
24198 | + "node_modules/upath": { | |
24199 | + "version": "1.2.0", | |
24200 | + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", | |
24201 | + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", | |
24202 | + "dev": true, | |
24203 | + "optional": true, | |
24204 | + "peer": true, | |
24205 | + "engines": { | |
24206 | + "node": ">=4", | |
24207 | + "yarn": "*" | |
24208 | + } | |
24209 | + }, | |
22331 | 24210 | "node_modules/update-browserslist-db": { |
22332 | 24211 | "version": "1.0.13", |
22333 | 24212 | "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", |
... | ... | @@ -22373,6 +24252,15 @@ |
22373 | 24252 | "node": ">=6" |
22374 | 24253 | } |
22375 | 24254 | }, |
24255 | + "node_modules/urix": { | |
24256 | + "version": "0.1.0", | |
24257 | + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", | |
24258 | + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", | |
24259 | + "deprecated": "Please see https://github.com/lydell/urix#deprecated", | |
24260 | + "dev": true, | |
24261 | + "optional": true, | |
24262 | + "peer": true | |
24263 | + }, | |
22376 | 24264 | "node_modules/url": { |
22377 | 24265 | "version": "0.11.3", |
22378 | 24266 | "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz", |
... | ... | @@ -22409,6 +24297,17 @@ |
22409 | 24297 | "node": ">= 4" |
22410 | 24298 | } |
22411 | 24299 | }, |
24300 | + "node_modules/use": { | |
24301 | + "version": "3.1.1", | |
24302 | + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", | |
24303 | + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", | |
24304 | + "dev": true, | |
24305 | + "optional": true, | |
24306 | + "peer": true, | |
24307 | + "engines": { | |
24308 | + "node": ">=0.10.0" | |
24309 | + } | |
24310 | + }, | |
22412 | 24311 | "node_modules/use-isomorphic-layout-effect": { |
22413 | 24312 | "version": "1.1.2", |
22414 | 24313 | "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz", |
... | ... | @@ -22505,6 +24404,12 @@ |
22505 | 24404 | } |
22506 | 24405 | } |
22507 | 24406 | }, |
24407 | + "node_modules/value-equal": { | |
24408 | + "version": "1.0.1", | |
24409 | + "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", | |
24410 | + "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==", | |
24411 | + "peer": true | |
24412 | + }, | |
22508 | 24413 | "node_modules/vary": { |
22509 | 24414 | "version": "1.1.2", |
22510 | 24415 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", |
... | ... | @@ -22613,6 +24518,335 @@ |
22613 | 24518 | "loose-envify": "^1.0.0" |
22614 | 24519 | } |
22615 | 24520 | }, |
24521 | + "node_modules/watchpack": { | |
24522 | + "version": "2.4.2", | |
24523 | + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", | |
24524 | + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", | |
24525 | + "peer": true, | |
24526 | + "dependencies": { | |
24527 | + "glob-to-regexp": "^0.4.1", | |
24528 | + "graceful-fs": "^4.1.2" | |
24529 | + }, | |
24530 | + "engines": { | |
24531 | + "node": ">=10.13.0" | |
24532 | + } | |
24533 | + }, | |
24534 | + "node_modules/watchpack-chokidar2": { | |
24535 | + "version": "2.0.1", | |
24536 | + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", | |
24537 | + "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", | |
24538 | + "dev": true, | |
24539 | + "optional": true, | |
24540 | + "peer": true, | |
24541 | + "dependencies": { | |
24542 | + "chokidar": "^2.1.8" | |
24543 | + } | |
24544 | + }, | |
24545 | + "node_modules/watchpack-chokidar2/node_modules/anymatch": { | |
24546 | + "version": "2.0.0", | |
24547 | + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", | |
24548 | + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", | |
24549 | + "dev": true, | |
24550 | + "optional": true, | |
24551 | + "peer": true, | |
24552 | + "dependencies": { | |
24553 | + "micromatch": "^3.1.4", | |
24554 | + "normalize-path": "^2.1.1" | |
24555 | + } | |
24556 | + }, | |
24557 | + "node_modules/watchpack-chokidar2/node_modules/anymatch/node_modules/normalize-path": { | |
24558 | + "version": "2.1.1", | |
24559 | + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", | |
24560 | + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", | |
24561 | + "dev": true, | |
24562 | + "optional": true, | |
24563 | + "peer": true, | |
24564 | + "dependencies": { | |
24565 | + "remove-trailing-separator": "^1.0.1" | |
24566 | + }, | |
24567 | + "engines": { | |
24568 | + "node": ">=0.10.0" | |
24569 | + } | |
24570 | + }, | |
24571 | + "node_modules/watchpack-chokidar2/node_modules/binary-extensions": { | |
24572 | + "version": "1.13.1", | |
24573 | + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", | |
24574 | + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", | |
24575 | + "dev": true, | |
24576 | + "optional": true, | |
24577 | + "peer": true, | |
24578 | + "engines": { | |
24579 | + "node": ">=0.10.0" | |
24580 | + } | |
24581 | + }, | |
24582 | + "node_modules/watchpack-chokidar2/node_modules/braces": { | |
24583 | + "version": "2.3.2", | |
24584 | + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", | |
24585 | + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", | |
24586 | + "dev": true, | |
24587 | + "optional": true, | |
24588 | + "peer": true, | |
24589 | + "dependencies": { | |
24590 | + "arr-flatten": "^1.1.0", | |
24591 | + "array-unique": "^0.3.2", | |
24592 | + "extend-shallow": "^2.0.1", | |
24593 | + "fill-range": "^4.0.0", | |
24594 | + "isobject": "^3.0.1", | |
24595 | + "repeat-element": "^1.1.2", | |
24596 | + "snapdragon": "^0.8.1", | |
24597 | + "snapdragon-node": "^2.0.1", | |
24598 | + "split-string": "^3.0.2", | |
24599 | + "to-regex": "^3.0.1" | |
24600 | + }, | |
24601 | + "engines": { | |
24602 | + "node": ">=0.10.0" | |
24603 | + } | |
24604 | + }, | |
24605 | + "node_modules/watchpack-chokidar2/node_modules/chokidar": { | |
24606 | + "version": "2.1.8", | |
24607 | + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", | |
24608 | + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", | |
24609 | + "dev": true, | |
24610 | + "optional": true, | |
24611 | + "peer": true, | |
24612 | + "dependencies": { | |
24613 | + "anymatch": "^2.0.0", | |
24614 | + "async-each": "^1.0.1", | |
24615 | + "braces": "^2.3.2", | |
24616 | + "glob-parent": "^3.1.0", | |
24617 | + "inherits": "^2.0.3", | |
24618 | + "is-binary-path": "^1.0.0", | |
24619 | + "is-glob": "^4.0.0", | |
24620 | + "normalize-path": "^3.0.0", | |
24621 | + "path-is-absolute": "^1.0.0", | |
24622 | + "readdirp": "^2.2.1", | |
24623 | + "upath": "^1.1.1" | |
24624 | + }, | |
24625 | + "optionalDependencies": { | |
24626 | + "fsevents": "^1.2.7" | |
24627 | + } | |
24628 | + }, | |
24629 | + "node_modules/watchpack-chokidar2/node_modules/define-property": { | |
24630 | + "version": "2.0.2", | |
24631 | + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", | |
24632 | + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", | |
24633 | + "dev": true, | |
24634 | + "optional": true, | |
24635 | + "peer": true, | |
24636 | + "dependencies": { | |
24637 | + "is-descriptor": "^1.0.2", | |
24638 | + "isobject": "^3.0.1" | |
24639 | + }, | |
24640 | + "engines": { | |
24641 | + "node": ">=0.10.0" | |
24642 | + } | |
24643 | + }, | |
24644 | + "node_modules/watchpack-chokidar2/node_modules/fill-range": { | |
24645 | + "version": "4.0.0", | |
24646 | + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", | |
24647 | + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", | |
24648 | + "dev": true, | |
24649 | + "optional": true, | |
24650 | + "peer": true, | |
24651 | + "dependencies": { | |
24652 | + "extend-shallow": "^2.0.1", | |
24653 | + "is-number": "^3.0.0", | |
24654 | + "repeat-string": "^1.6.1", | |
24655 | + "to-regex-range": "^2.1.0" | |
24656 | + }, | |
24657 | + "engines": { | |
24658 | + "node": ">=0.10.0" | |
24659 | + } | |
24660 | + }, | |
24661 | + "node_modules/watchpack-chokidar2/node_modules/fsevents": { | |
24662 | + "version": "1.2.13", | |
24663 | + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", | |
24664 | + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", | |
24665 | + "deprecated": "Upgrade to fsevents v2 to mitigate potential security issues", | |
24666 | + "dev": true, | |
24667 | + "hasInstallScript": true, | |
24668 | + "optional": true, | |
24669 | + "os": [ | |
24670 | + "darwin" | |
24671 | + ], | |
24672 | + "peer": true, | |
24673 | + "dependencies": { | |
24674 | + "bindings": "^1.5.0", | |
24675 | + "nan": "^2.12.1" | |
24676 | + }, | |
24677 | + "engines": { | |
24678 | + "node": ">= 4.0" | |
24679 | + } | |
24680 | + }, | |
24681 | + "node_modules/watchpack-chokidar2/node_modules/glob-parent": { | |
24682 | + "version": "3.1.0", | |
24683 | + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", | |
24684 | + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", | |
24685 | + "dev": true, | |
24686 | + "optional": true, | |
24687 | + "peer": true, | |
24688 | + "dependencies": { | |
24689 | + "is-glob": "^3.1.0", | |
24690 | + "path-dirname": "^1.0.0" | |
24691 | + } | |
24692 | + }, | |
24693 | + "node_modules/watchpack-chokidar2/node_modules/glob-parent/node_modules/is-glob": { | |
24694 | + "version": "3.1.0", | |
24695 | + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", | |
24696 | + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", | |
24697 | + "dev": true, | |
24698 | + "optional": true, | |
24699 | + "peer": true, | |
24700 | + "dependencies": { | |
24701 | + "is-extglob": "^2.1.0" | |
24702 | + }, | |
24703 | + "engines": { | |
24704 | + "node": ">=0.10.0" | |
24705 | + } | |
24706 | + }, | |
24707 | + "node_modules/watchpack-chokidar2/node_modules/is-binary-path": { | |
24708 | + "version": "1.0.1", | |
24709 | + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", | |
24710 | + "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", | |
24711 | + "dev": true, | |
24712 | + "optional": true, | |
24713 | + "peer": true, | |
24714 | + "dependencies": { | |
24715 | + "binary-extensions": "^1.0.0" | |
24716 | + }, | |
24717 | + "engines": { | |
24718 | + "node": ">=0.10.0" | |
24719 | + } | |
24720 | + }, | |
24721 | + "node_modules/watchpack-chokidar2/node_modules/is-descriptor": { | |
24722 | + "version": "1.0.3", | |
24723 | + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", | |
24724 | + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", | |
24725 | + "dev": true, | |
24726 | + "optional": true, | |
24727 | + "peer": true, | |
24728 | + "dependencies": { | |
24729 | + "is-accessor-descriptor": "^1.0.1", | |
24730 | + "is-data-descriptor": "^1.0.1" | |
24731 | + }, | |
24732 | + "engines": { | |
24733 | + "node": ">= 0.4" | |
24734 | + } | |
24735 | + }, | |
24736 | + "node_modules/watchpack-chokidar2/node_modules/is-extendable": { | |
24737 | + "version": "1.0.1", | |
24738 | + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", | |
24739 | + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", | |
24740 | + "dev": true, | |
24741 | + "optional": true, | |
24742 | + "peer": true, | |
24743 | + "dependencies": { | |
24744 | + "is-plain-object": "^2.0.4" | |
24745 | + }, | |
24746 | + "engines": { | |
24747 | + "node": ">=0.10.0" | |
24748 | + } | |
24749 | + }, | |
24750 | + "node_modules/watchpack-chokidar2/node_modules/is-number": { | |
24751 | + "version": "3.0.0", | |
24752 | + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", | |
24753 | + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", | |
24754 | + "dev": true, | |
24755 | + "optional": true, | |
24756 | + "peer": true, | |
24757 | + "dependencies": { | |
24758 | + "kind-of": "^3.0.2" | |
24759 | + }, | |
24760 | + "engines": { | |
24761 | + "node": ">=0.10.0" | |
24762 | + } | |
24763 | + }, | |
24764 | + "node_modules/watchpack-chokidar2/node_modules/is-number/node_modules/kind-of": { | |
24765 | + "version": "3.2.2", | |
24766 | + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", | |
24767 | + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", | |
24768 | + "dev": true, | |
24769 | + "optional": true, | |
24770 | + "peer": true, | |
24771 | + "dependencies": { | |
24772 | + "is-buffer": "^1.1.5" | |
24773 | + }, | |
24774 | + "engines": { | |
24775 | + "node": ">=0.10.0" | |
24776 | + } | |
24777 | + }, | |
24778 | + "node_modules/watchpack-chokidar2/node_modules/micromatch": { | |
24779 | + "version": "3.1.10", | |
24780 | + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", | |
24781 | + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", | |
24782 | + "dev": true, | |
24783 | + "optional": true, | |
24784 | + "peer": true, | |
24785 | + "dependencies": { | |
24786 | + "arr-diff": "^4.0.0", | |
24787 | + "array-unique": "^0.3.2", | |
24788 | + "braces": "^2.3.1", | |
24789 | + "define-property": "^2.0.2", | |
24790 | + "extend-shallow": "^3.0.2", | |
24791 | + "extglob": "^2.0.4", | |
24792 | + "fragment-cache": "^0.2.1", | |
24793 | + "kind-of": "^6.0.2", | |
24794 | + "nanomatch": "^1.2.9", | |
24795 | + "object.pick": "^1.3.0", | |
24796 | + "regex-not": "^1.0.0", | |
24797 | + "snapdragon": "^0.8.1", | |
24798 | + "to-regex": "^3.0.2" | |
24799 | + }, | |
24800 | + "engines": { | |
24801 | + "node": ">=0.10.0" | |
24802 | + } | |
24803 | + }, | |
24804 | + "node_modules/watchpack-chokidar2/node_modules/micromatch/node_modules/extend-shallow": { | |
24805 | + "version": "3.0.2", | |
24806 | + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", | |
24807 | + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", | |
24808 | + "dev": true, | |
24809 | + "optional": true, | |
24810 | + "peer": true, | |
24811 | + "dependencies": { | |
24812 | + "assign-symbols": "^1.0.0", | |
24813 | + "is-extendable": "^1.0.1" | |
24814 | + }, | |
24815 | + "engines": { | |
24816 | + "node": ">=0.10.0" | |
24817 | + } | |
24818 | + }, | |
24819 | + "node_modules/watchpack-chokidar2/node_modules/readdirp": { | |
24820 | + "version": "2.2.1", | |
24821 | + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", | |
24822 | + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", | |
24823 | + "dev": true, | |
24824 | + "optional": true, | |
24825 | + "peer": true, | |
24826 | + "dependencies": { | |
24827 | + "graceful-fs": "^4.1.11", | |
24828 | + "micromatch": "^3.1.10", | |
24829 | + "readable-stream": "^2.0.2" | |
24830 | + }, | |
24831 | + "engines": { | |
24832 | + "node": ">=0.10" | |
24833 | + } | |
24834 | + }, | |
24835 | + "node_modules/watchpack-chokidar2/node_modules/to-regex-range": { | |
24836 | + "version": "2.1.1", | |
24837 | + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", | |
24838 | + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", | |
24839 | + "dev": true, | |
24840 | + "optional": true, | |
24841 | + "peer": true, | |
24842 | + "dependencies": { | |
24843 | + "is-number": "^3.0.0", | |
24844 | + "repeat-string": "^1.6.1" | |
24845 | + }, | |
24846 | + "engines": { | |
24847 | + "node": ">=0.10.0" | |
24848 | + } | |
24849 | + }, | |
22616 | 24850 | "node_modules/wbuf": { |
22617 | 24851 | "version": "1.7.3", |
22618 | 24852 | "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", |
... | ... | @@ -22649,6 +24883,52 @@ |
22649 | 24883 | "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", |
22650 | 24884 | "dev": true |
22651 | 24885 | }, |
24886 | + "node_modules/webpack": { | |
24887 | + "version": "5.95.0", | |
24888 | + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.95.0.tgz", | |
24889 | + "integrity": "sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q==", | |
24890 | + "peer": true, | |
24891 | + "dependencies": { | |
24892 | + "@types/estree": "^1.0.5", | |
24893 | + "@webassemblyjs/ast": "^1.12.1", | |
24894 | + "@webassemblyjs/wasm-edit": "^1.12.1", | |
24895 | + "@webassemblyjs/wasm-parser": "^1.12.1", | |
24896 | + "acorn": "^8.7.1", | |
24897 | + "acorn-import-attributes": "^1.9.5", | |
24898 | + "browserslist": "^4.21.10", | |
24899 | + "chrome-trace-event": "^1.0.2", | |
24900 | + "enhanced-resolve": "^5.17.1", | |
24901 | + "es-module-lexer": "^1.2.1", | |
24902 | + "eslint-scope": "5.1.1", | |
24903 | + "events": "^3.2.0", | |
24904 | + "glob-to-regexp": "^0.4.1", | |
24905 | + "graceful-fs": "^4.2.11", | |
24906 | + "json-parse-even-better-errors": "^2.3.1", | |
24907 | + "loader-runner": "^4.2.0", | |
24908 | + "mime-types": "^2.1.27", | |
24909 | + "neo-async": "^2.6.2", | |
24910 | + "schema-utils": "^3.2.0", | |
24911 | + "tapable": "^2.1.1", | |
24912 | + "terser-webpack-plugin": "^5.3.10", | |
24913 | + "watchpack": "^2.4.1", | |
24914 | + "webpack-sources": "^3.2.3" | |
24915 | + }, | |
24916 | + "bin": { | |
24917 | + "webpack": "bin/webpack.js" | |
24918 | + }, | |
24919 | + "engines": { | |
24920 | + "node": ">=10.13.0" | |
24921 | + }, | |
24922 | + "funding": { | |
24923 | + "type": "opencollective", | |
24924 | + "url": "https://opencollective.com/webpack" | |
24925 | + }, | |
24926 | + "peerDependenciesMeta": { | |
24927 | + "webpack-cli": { | |
24928 | + "optional": true | |
24929 | + } | |
24930 | + } | |
24931 | + }, | |
22652 | 24932 | "node_modules/webpack-bundle-analyzer": { |
22653 | 24933 | "version": "4.10.1", |
22654 | 24934 | "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.1.tgz", |
... | ... | @@ -22691,6 +24971,34 @@ |
22691 | 24971 | "node": ">=0.10.0" |
22692 | 24972 | } |
22693 | 24973 | }, |
24974 | + "node_modules/webpack-sources": { | |
24975 | + "version": "3.2.3", | |
24976 | + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", | |
24977 | + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", | |
24978 | + "peer": true, | |
24979 | + "engines": { | |
24980 | + "node": ">=10.13.0" | |
24981 | + } | |
24982 | + }, | |
24983 | + "node_modules/webpack/node_modules/enhanced-resolve": { | |
24984 | + "version": "5.17.1", | |
24985 | + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", | |
24986 | + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", | |
24987 | + "peer": true, | |
24988 | + "dependencies": { | |
24989 | + "graceful-fs": "^4.2.4", | |
24990 | + "tapable": "^2.2.0" | |
24991 | + }, | |
24992 | + "engines": { | |
24993 | + "node": ">=10.13.0" | |
24994 | + } | |
24995 | + }, | |
24996 | + "node_modules/whatwg-fetch": { | |
24997 | + "version": "3.6.20", | |
24998 | + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", | |
24999 | + "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==", | |
25000 | + "peer": true | |
25001 | + }, | |
22694 | 25002 | "node_modules/whatwg-url": { |
22695 | 25003 | "version": "5.0.0", |
22696 | 25004 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", |
... | ... | @@ -22774,6 +25082,13 @@ |
22774 | 25082 | "url": "https://github.com/sponsors/ljharb" |
22775 | 25083 | } |
22776 | 25084 | }, |
25085 | + "node_modules/which-module": { | |
25086 | + "version": "1.0.0", | |
25087 | + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", | |
25088 | + "integrity": "sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==", | |
25089 | + "dev": true, | |
25090 | + "peer": true | |
25091 | + }, | |
22777 | 25092 | "node_modules/which-typed-array": { |
22778 | 25093 | "version": "1.1.14", |
22779 | 25094 | "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.14.tgz", | ... | ... |
src/pages/Client/Components/ClientDrawer.tsx renamed to src/pages/Client/Client/Components/ClientDrawer.tsx
... | ... | @@ -6,23 +6,34 @@ import { |
6 | 6 | postDistrictSelectByNameAndLevel, |
7 | 7 | postDistrictSelOrderProvince, |
8 | 8 | postServiceConstClientLevels, |
9 | + postServiceConstClientSource, | |
9 | 10 | postServiceConstTradeStatus, |
10 | 11 | } from '@/services'; |
12 | + | |
11 | 13 | import { enumToSelect } from '@/utils'; |
12 | 14 | import { |
13 | 15 | DrawerForm, |
14 | - ProFormDateTimePicker, | |
16 | + ProFormDatePicker, | |
15 | 17 | ProFormSelect, |
16 | 18 | ProFormText, |
17 | 19 | } from '@ant-design/pro-components'; |
18 | 20 | import { Button, Form, message } from 'antd'; |
21 | +// import { options } from 'node_modules/axios/index.cjs'; | |
19 | 22 | import { useState } from 'react'; |
20 | 23 | |
21 | 24 | export default ({ optType, record, onFinish }) => { |
22 | 25 | const [form] = Form.useForm(); |
26 | + const requirementsEnum = { | |
27 | + EXPERIMENTAL_EQUIPMENT: '实验设备', | |
28 | + EXPERIMENTAL_MATERIALS: '实验材料', | |
29 | + OTHER: '其他', | |
30 | + PILOT_TEST_VALIDATION_SERVICES: '中式验证服务', | |
31 | + }; | |
23 | 32 | //省市区 |
24 | 33 | const [province, setProvince] = useState(''); |
25 | 34 | const [city, setCity] = useState(''); |
35 | + const [showReferrers, setShowReferrers] = useState(false); // 控制显示的状态,初始为false | |
36 | + const [showQuoteDatetime, setShowQuoteDatetime] = useState(false); // 控制显示的状态,初始为false | |
26 | 37 | const optTypeEnum = { |
27 | 38 | add: { |
28 | 39 | text: '新增', |
... | ... | @@ -42,7 +53,7 @@ export default ({ optType, record, onFinish }) => { |
42 | 53 | }, |
43 | 54 | edit: { |
44 | 55 | text: '编辑', |
45 | - button: <a type="primary">编辑</a>, | |
56 | + button: <a type="link">编辑</a>, | |
46 | 57 | readonly: false, |
47 | 58 | onFinish: async (values) => { |
48 | 59 | const res = await postAdminClientModifyClientInfo({ |
... | ... | @@ -58,11 +69,43 @@ export default ({ optType, record, onFinish }) => { |
58 | 69 | }, |
59 | 70 | detail: { |
60 | 71 | text: '详情', |
61 | - button: <a type="primary">详情</a>, | |
72 | + // button: <a type="primary">详情</a>, | |
62 | 73 | readonly: true, |
63 | 74 | }, |
64 | 75 | }; |
65 | 76 | |
77 | + const handleSourceChange = (value) => { | |
78 | + if (value === 'REFERRAL_BY_ACQUAINTANCE') { | |
79 | + setShowReferrers(true); | |
80 | + } else { | |
81 | + setShowReferrers(false); | |
82 | + } | |
83 | + // 在这里可以添加其他逻辑,比如根据选择更新其他表单项的值 | |
84 | + }; | |
85 | + const handleSchemeChange = (value) => { | |
86 | + console.log(value); | |
87 | + if (value === true) { | |
88 | + setShowQuoteDatetime(true); | |
89 | + } else { | |
90 | + setShowQuoteDatetime(false); | |
91 | + } | |
92 | + // 在这里可以添加其他逻辑,比如根据选择更新其他表单项的值 | |
93 | + }; | |
94 | + | |
95 | + // MODIFIED: 增加处理非 JSON 格式字符串的逻辑 | |
96 | + const parsedRecord = record | |
97 | + ? { | |
98 | + ...record, | |
99 | + requirements: (() => { | |
100 | + try { | |
101 | + return JSON.parse(record.requirements); // 尝试解析 JSON | |
102 | + } catch (error) { | |
103 | + return record.requirements ? record.requirements.split(',') : []; // 如果不是 JSON,则按逗号分隔字符串 | |
104 | + } | |
105 | + })(), | |
106 | + } | |
107 | + : {}; // 如果 record 为空,返回一个空对象 | |
108 | + | |
66 | 109 | return ( |
67 | 110 | <DrawerForm |
68 | 111 | title={optTypeEnum[optType].text} |
... | ... | @@ -73,7 +116,7 @@ export default ({ optType, record, onFinish }) => { |
73 | 116 | maxWidth: window.innerWidth * 0.8, |
74 | 117 | minWidth: 300, |
75 | 118 | }} |
76 | - initialValues={record} | |
119 | + initialValues={parsedRecord} | |
77 | 120 | form={form} |
78 | 121 | trigger={optTypeEnum[optType].button} |
79 | 122 | autoFocusFirstInput |
... | ... | @@ -98,7 +141,7 @@ export default ({ optType, record, onFinish }) => { |
98 | 141 | }, |
99 | 142 | ]} |
100 | 143 | /> |
101 | - <ProFormText | |
144 | + {/* <ProFormText | |
102 | 145 | name="companyName" |
103 | 146 | label="单位名称" |
104 | 147 | placeholder="请输入单位名称" |
... | ... | @@ -108,7 +151,7 @@ export default ({ optType, record, onFinish }) => { |
108 | 151 | message: '请输入单位名称', |
109 | 152 | }, |
110 | 153 | ]} |
111 | - /> | |
154 | + /> */} | |
112 | 155 | <div |
113 | 156 | style={{ |
114 | 157 | display: 'flex', |
... | ... | @@ -260,7 +303,7 @@ export default ({ optType, record, onFinish }) => { |
260 | 303 | /> |
261 | 304 | </div> |
262 | 305 | <ProFormText |
263 | - name="companyAddress" | |
306 | + name="detailAddress" | |
264 | 307 | label="详细地址" |
265 | 308 | placeholder="请输入单位地址" |
266 | 309 | rules={[ |
... | ... | @@ -271,6 +314,17 @@ export default ({ optType, record, onFinish }) => { |
271 | 314 | ]} |
272 | 315 | /> |
273 | 316 | <ProFormText |
317 | + name="contacts" | |
318 | + label="联系人" | |
319 | + placeholder="请输入联系人" | |
320 | + rules={[ | |
321 | + { | |
322 | + required: true, | |
323 | + message: '请输入联系人', | |
324 | + }, | |
325 | + ]} | |
326 | + /> | |
327 | + <ProFormText | |
274 | 328 | name="phoneNumber" |
275 | 329 | label="联系电话" |
276 | 330 | placeholder="请输入联系电话" |
... | ... | @@ -281,23 +335,52 @@ export default ({ optType, record, onFinish }) => { |
281 | 335 | }, |
282 | 336 | ]} |
283 | 337 | /> |
284 | - <ProFormText | |
338 | + <ProFormSelect | |
285 | 339 | name="source" |
286 | 340 | label="客户来源" |
287 | - placeholder="请输入客户来源" | |
341 | + placeholder="请选择客户来源" | |
342 | + request={async () => { | |
343 | + const res = await postServiceConstClientSource(); | |
344 | + return enumToSelect(res.data); | |
345 | + }} | |
346 | + rules={[ | |
347 | + { | |
348 | + required: true, | |
349 | + message: '请选择客户来源', | |
350 | + }, | |
351 | + ]} | |
352 | + fieldProps={{ | |
353 | + onChange: handleSourceChange, // 添加onChange事件处理函数 | |
354 | + }} | |
288 | 355 | /> |
289 | - <ProFormText | |
356 | + {showReferrers && ( | |
357 | + <ProFormText | |
358 | + name="referrers" | |
359 | + label="推荐人" | |
360 | + placeholder="请输入推荐人" | |
361 | + /> | |
362 | + )} | |
363 | + <ProFormSelect | |
290 | 364 | name="requirements" |
291 | 365 | label="客户需求" |
292 | 366 | placeholder="请输入客户需求" |
367 | + valueEnum={requirementsEnum} | |
368 | + fieldProps={{ | |
369 | + mode: 'multiple', | |
370 | + }} | |
293 | 371 | rules={[ |
294 | 372 | { |
295 | 373 | required: true, |
296 | 374 | message: '请输入客户需求', |
375 | + type: 'array', | |
297 | 376 | }, |
298 | 377 | ]} |
378 | + // request={async () => { | |
379 | + // const res = await postServiceConstClientRequirements(); | |
380 | + // console.log(res.data, '5656require'); | |
381 | + // return enumToSelect(res.data); | |
382 | + // }} | |
299 | 383 | /> |
300 | - <ProFormText name="referrers" label="推荐人" placeholder="请输入推荐人" /> | |
301 | 384 | <ProFormSelect |
302 | 385 | name="hasScheme" |
303 | 386 | label="是否已报方案" |
... | ... | @@ -318,12 +401,17 @@ export default ({ optType, record, onFinish }) => { |
318 | 401 | message: '请选择是否已报方案', |
319 | 402 | }, |
320 | 403 | ]} |
404 | + fieldProps={{ | |
405 | + onChange: handleSchemeChange, // 添加onChange事件处理函数 | |
406 | + }} | |
321 | 407 | /> |
322 | - <ProFormDateTimePicker | |
323 | - name="quoteDatetime" | |
324 | - label="报价时间" | |
325 | - placeholder="请输入报价时间" | |
326 | - /> | |
408 | + {showQuoteDatetime && ( | |
409 | + <ProFormDatePicker | |
410 | + name="quoteDatetime" | |
411 | + label="报价时间" | |
412 | + placeholder="请输入报价时间" | |
413 | + /> | |
414 | + )} | |
327 | 415 | <ProFormSelect |
328 | 416 | name="level" |
329 | 417 | label="客户等级" |
... | ... | @@ -336,7 +424,17 @@ export default ({ optType, record, onFinish }) => { |
336 | 424 | ]} |
337 | 425 | request={async () => { |
338 | 426 | const res = await postServiceConstClientLevels(); |
339 | - return enumToSelect(res.data); | |
427 | + function enumToSelectLevel(data: any) { | |
428 | + const order = [ | |
429 | + 'PRIMARY_CLIENT', | |
430 | + 'SECONDARY_CLIENT', | |
431 | + 'TERTIARY_CLIENT', | |
432 | + ]; | |
433 | + return order.map((key) => { | |
434 | + return { label: data[key], value: key }; | |
435 | + }); | |
436 | + } | |
437 | + return enumToSelectLevel(res.data); | |
340 | 438 | }} |
341 | 439 | /> |
342 | 440 | <ProFormSelect | ... | ... |
src/pages/Client/Client/Components/ClientImportModal.tsx
0 → 100644
1 | +import { RESPONSE_CODE } from '@/constants/enum'; | |
2 | +import { downloadFile } from '@/services/order'; | |
3 | +import { blobToJson } from '@/utils'; | |
4 | +import { ModalForm, ProFormUploadDragger } from '@ant-design/pro-components'; | |
5 | +import { Button, Form, message } from 'antd'; | |
6 | +import { RcFile } from 'antd/es/upload'; | |
7 | +import axios from 'axios'; | |
8 | + | |
9 | +export default ({ reloadTable }) => { | |
10 | + const [form] = Form.useForm(); | |
11 | + const [messageApi, contextHolder] = message.useMessage(); | |
12 | + const downloadImportTemplate = () => { | |
13 | + messageApi.open({ | |
14 | + type: 'loading', | |
15 | + content: '正在导入...', | |
16 | + duration: 0, | |
17 | + }); | |
18 | + downloadFile( | |
19 | + '/api/admin/client/downloadImportTemplate', | |
20 | + '客户导入模板.xlsx', | |
21 | + 'post', | |
22 | + {}, | |
23 | + () => { | |
24 | + messageApi.destroy(); | |
25 | + }, | |
26 | + ); | |
27 | + }; | |
28 | + | |
29 | + return ( | |
30 | + <ModalForm | |
31 | + title="导入客户信息" | |
32 | + trigger={<Button type="primary">导入客户信息</Button>} | |
33 | + form={form} | |
34 | + autoFocusFirstInput | |
35 | + modalProps={{ | |
36 | + destroyOnClose: true, | |
37 | + onCancel: () => console.log('run'), | |
38 | + }} | |
39 | + submitTimeout={2000} | |
40 | + onFinish={async (values) => { | |
41 | + const formData = new FormData(); | |
42 | + values.file.forEach((file) => { | |
43 | + formData.append('file', file.originFileObj as RcFile); | |
44 | + }); | |
45 | + axios({ | |
46 | + url: '/api/admin/client/importClient', | |
47 | + method: 'post', | |
48 | + responseType: 'blob', | |
49 | + headers: { | |
50 | + Authorization: localStorage.getItem('token'), | |
51 | + 'Content-Type': | |
52 | + 'multipart/form-data; boundary=----WebKitFormBoundarynl6gT1BKdPWIejNq', | |
53 | + }, | |
54 | + data: formData, | |
55 | + }) | |
56 | + .then((response) => { | |
57 | + let data = response.data; | |
58 | + if (data.type === 'application/json') { | |
59 | + blobToJson(data).then((dataJson) => { | |
60 | + if (dataJson?.result === RESPONSE_CODE.SUCCESS) { | |
61 | + message.success(dataJson?.message); | |
62 | + reloadTable(); | |
63 | + } else { | |
64 | + message.error(dataJson?.message); | |
65 | + } | |
66 | + }); | |
67 | + } else { | |
68 | + message.error('上传失败,已下载错误信息表格'); | |
69 | + // 创建一个新的 Blob 对象,它包含了服务器响应的数据(即你的 Excel 文件) | |
70 | + const blob = new Blob([response.data]); // Excel 的 MIME 类型 | |
71 | + const downloadUrl = window.URL.createObjectURL(blob); | |
72 | + const a = document.createElement('a'); | |
73 | + a.href = downloadUrl; | |
74 | + a.download = '银行流水导入模板.xlsx'; // 你可以为文件命名 | |
75 | + document.body.appendChild(a); | |
76 | + a.click(); // 模拟点击操作来下载文件 | |
77 | + URL.revokeObjectURL(downloadUrl); // 释放掉 blob 对象所占用的内存 | |
78 | + document.body.removeChild(a); | |
79 | + } | |
80 | + }) | |
81 | + .catch((error) => { | |
82 | + // 处理错误 | |
83 | + message.error('系统出现异常了,请联系管理员', error); | |
84 | + }) | |
85 | + .finally(() => {}); | |
86 | + return true; | |
87 | + }} | |
88 | + > | |
89 | + <ProFormUploadDragger max={1} label="上传" name="file" /> | |
90 | + <Button type="link" onClick={downloadImportTemplate}> | |
91 | + 下载导入模板 | |
92 | + </Button> | |
93 | + {contextHolder} | |
94 | + </ModalForm> | |
95 | + ); | |
96 | +}; | ... | ... |
src/pages/Client/Client/Components/ClientInformationModal.tsx
0 → 100644
1 | +import { RESPONSE_CODE } from '@/constants/enum'; | |
2 | +import { | |
3 | + postAdminClientAddOrModifyClientComunicationInfo, | |
4 | + postAdminClientQueryClientPage, | |
5 | + postOrderErpOrderStagesUpload, | |
6 | + postServiceConstClientWay, | |
7 | +} from '@/services'; | |
8 | +import { enumToSelect } from '@/utils'; | |
9 | +import { | |
10 | + ModalForm, | |
11 | + ProFormDateTimePicker, | |
12 | + ProFormSelect, | |
13 | + ProFormText, | |
14 | + ProFormTextArea, | |
15 | + ProFormUploadDragger, | |
16 | +} from '@ant-design/pro-components'; | |
17 | +import { Button, Form, message } from 'antd'; | |
18 | +import { RcFile } from 'antd/es/upload'; | |
19 | +export default ({ data, type, reloadTable }) => { | |
20 | + const [form] = Form.useForm(); | |
21 | + const onfinish = async (values) => { | |
22 | + const resSearchId = await postAdminClientQueryClientPage({ | |
23 | + data: { | |
24 | + groupFilter: 'all', | |
25 | + }, | |
26 | + }); | |
27 | + const matchingItem = resSearchId.data.data.find( | |
28 | + (item) => item.id === values.name, | |
29 | + ); | |
30 | + let matchedId; | |
31 | + if (matchingItem) { | |
32 | + matchedId = matchingItem.id; // 匹配成功,取出 id | |
33 | + values.name = matchingItem.name; | |
34 | + } else { | |
35 | + matchedId = null; // 如果没有匹配项,可以设置为 null 或其他值 | |
36 | + } | |
37 | + const res = await postAdminClientAddOrModifyClientComunicationInfo({ | |
38 | + data: { | |
39 | + ...values, | |
40 | + clientId: matchedId, | |
41 | + }, | |
42 | + }); | |
43 | + if (res.result === RESPONSE_CODE.SUCCESS) { | |
44 | + message.success('新增成功'); | |
45 | + reloadTable(); | |
46 | + return true; | |
47 | + } | |
48 | + // 不返回不会关闭弹框 | |
49 | + }; | |
50 | + const editOnfinish = async (values) => { | |
51 | + // setEditClientId(data.clientId); | |
52 | + values.clientId = data.clientId; | |
53 | + console.log(values, '5656editClientId'); | |
54 | + | |
55 | + // const resSearchId = await postAdminClientQueryClientPage({ | |
56 | + // data: { | |
57 | + // groupFilter: 'all', | |
58 | + // }, | |
59 | + // }); | |
60 | + // const matchingItem = resSearchId.data.data.find( | |
61 | + // (item) => item.id === values.name, | |
62 | + // ); | |
63 | + | |
64 | + const res = await postAdminClientAddOrModifyClientComunicationInfo({ | |
65 | + data: { | |
66 | + ...values, | |
67 | + }, | |
68 | + }); | |
69 | + if (res.result === RESPONSE_CODE.SUCCESS) { | |
70 | + message.success('新增成功'); | |
71 | + reloadTable(); | |
72 | + return true; | |
73 | + } | |
74 | + // 不返回不会关闭弹框 | |
75 | + }; | |
76 | + const optType = { | |
77 | + add: { | |
78 | + readOnly: false, | |
79 | + title: '新增跟进记录', | |
80 | + button: ( | |
81 | + <Button size={'middle'} type="primary"> | |
82 | + 新增 | |
83 | + </Button> | |
84 | + ), | |
85 | + onFinish: onfinish, | |
86 | + }, | |
87 | + modify: { | |
88 | + readOnly: false, | |
89 | + title: '修改跟进记录', | |
90 | + button: ( | |
91 | + <Button size={'middle'} type="primary"> | |
92 | + 编辑 | |
93 | + </Button> | |
94 | + ), | |
95 | + onFinish: editOnfinish, | |
96 | + }, | |
97 | + detail: { | |
98 | + readOnly: true, | |
99 | + title: '查看跟进记录', | |
100 | + button: ( | |
101 | + <Button size={'middle'} type="primary" color="red"> | |
102 | + 查看 | |
103 | + </Button> | |
104 | + ), | |
105 | + onFinish: () => {}, | |
106 | + }, | |
107 | + }; | |
108 | + return ( | |
109 | + <ModalForm | |
110 | + title={optType[type].title} | |
111 | + resize={{ | |
112 | + onResize() { | |
113 | + console.log('resize!'); | |
114 | + }, | |
115 | + maxWidth: window.innerWidth * 0.8, | |
116 | + minWidth: 400, | |
117 | + }} | |
118 | + form={form} | |
119 | + trigger={optType[type].button} | |
120 | + autoFocusFirstInput | |
121 | + drawerProps={{ | |
122 | + destroyOnClose: true, | |
123 | + }} | |
124 | + submitTimeout={2000} | |
125 | + onFinish={optType[type].onFinish} | |
126 | + > | |
127 | + <ProFormSelect | |
128 | + name="name" | |
129 | + readonly={optType[type].readOnly} | |
130 | + fieldProps={{ | |
131 | + labelInValue: false, | |
132 | + disabled: type === 'modify', | |
133 | + }} | |
134 | + initialValue={data ? data?.clientName + '' : null} | |
135 | + label="客户" | |
136 | + width="sm" | |
137 | + request={async () => { | |
138 | + const res = await postAdminClientQueryClientPage({ | |
139 | + data: { | |
140 | + groupFilter: 'all', | |
141 | + }, | |
142 | + }); | |
143 | + console.log(data, '5656data?.nameedit'); | |
144 | + // const namesArray = res.data.data.map((item) => item.name); | |
145 | + // const formattedObject = res.data.data.reduce((acc, name) => { | |
146 | + // acc[name] = name; // 将名称作为键和值 | |
147 | + // return acc; | |
148 | + // }, {}); | |
149 | + // console.log(namesArray, '5656namesArray'); | |
150 | + // const formattedObject = res.data.data.reduce((acc, item) => { | |
151 | + // acc[item.name] = item.name; // 使用 name 作为键,id 作为值 | |
152 | + // return acc; | |
153 | + // }, {}); | |
154 | + // return enumToSelect(formattedObject); | |
155 | + const options = res.data.data.reduce((acc, item) => { | |
156 | + acc.push({ label: item.name, value: item.id }); // 使用 name 作为 label,id 作为 value | |
157 | + return acc; | |
158 | + }, []); | |
159 | + return options; | |
160 | + }} | |
161 | + rules={[ | |
162 | + { | |
163 | + required: true, | |
164 | + message: '请选择客户', | |
165 | + }, | |
166 | + ]} | |
167 | + ></ProFormSelect> | |
168 | + <ProFormDateTimePicker | |
169 | + name="datetime" | |
170 | + label="日期" | |
171 | + initialValue={data ? data?.datetime + '' : null} | |
172 | + placeholder="请选择跟进时间" | |
173 | + width="sm" | |
174 | + rules={[ | |
175 | + { | |
176 | + required: true, | |
177 | + message: '请选择日期', | |
178 | + }, | |
179 | + ]} | |
180 | + /> | |
181 | + <ProFormSelect | |
182 | + name="way" | |
183 | + width="sm" | |
184 | + readonly={optType[type].readOnly} | |
185 | + fieldProps={{ | |
186 | + labelInValue: false, | |
187 | + }} | |
188 | + initialValue={data?.way ? data?.way + '' : null} | |
189 | + label="类型" | |
190 | + request={async () => { | |
191 | + const res = await postServiceConstClientWay(); | |
192 | + return enumToSelect(res.data); | |
193 | + }} | |
194 | + rules={[ | |
195 | + { | |
196 | + required: true, | |
197 | + message: '请选择跟进类型', | |
198 | + }, | |
199 | + ]} | |
200 | + ></ProFormSelect> | |
201 | + <ProFormTextArea | |
202 | + name="content" | |
203 | + label="详情" | |
204 | + placeholder="请输入详情" | |
205 | + initialValue={data?.content} | |
206 | + readonly={optType[type].readOnly} | |
207 | + rules={[ | |
208 | + { | |
209 | + required: true, | |
210 | + message: '请输入详情', | |
211 | + }, | |
212 | + ]} | |
213 | + ></ProFormTextArea> | |
214 | + <ProFormUploadDragger | |
215 | + label="附件" | |
216 | + name="attachment" | |
217 | + action="upload.do" | |
218 | + hidden={optType[type].readOnly} | |
219 | + onChange={(info) => { | |
220 | + const uploadFile = async ({ fileList: newFileList }) => { | |
221 | + if (newFileList.length > 0) { | |
222 | + const formData = new FormData(); | |
223 | + formData.append('file', newFileList[0].originFileObj as RcFile); | |
224 | + const res = await postOrderErpOrderStagesUpload({ | |
225 | + data: formData, | |
226 | + headers: { | |
227 | + 'Content-Type': | |
228 | + 'multipart/form-data; boundary=----WebKitFormBoundarynl6gT1BKdPWIejNq', | |
229 | + }, | |
230 | + }); | |
231 | + const url = res.data; | |
232 | + console.log('attachments' + JSON.stringify(url)); | |
233 | + form.setFieldValue('attachments', url); | |
234 | + } else { | |
235 | + form.setFieldValue('attachments', null); | |
236 | + } | |
237 | + }; | |
238 | + uploadFile(info); | |
239 | + }} | |
240 | + max={1} | |
241 | + /> | |
242 | + <a hidden={!optType[type].readOnly} href={data?.attachments} download> | |
243 | + 下载附件 | |
244 | + </a> | |
245 | + <ProFormText | |
246 | + initialValue={data?.attachments} | |
247 | + name="attachments" | |
248 | + hidden | |
249 | + ></ProFormText> | |
250 | + <ProFormText initialValue={data?.id} name="id" hidden></ProFormText> | |
251 | + </ModalForm> | |
252 | + ); | |
253 | +}; | ... | ... |
src/pages/Client/Client/Components/ClientModal.tsx
0 → 100644
1 | +import { RESPONSE_CODE } from '@/constants/enum'; | |
2 | +import { | |
3 | + postAdminClientAddOrModifyClientComunicationInfo, | |
4 | + postAdminClientQueryClientPage, | |
5 | + postOrderErpOrderStagesUpload, | |
6 | + postServiceConstClientWay, | |
7 | +} from '@/services'; | |
8 | +import { enumToSelect } from '@/utils'; | |
9 | +import { | |
10 | + ModalForm, | |
11 | + ProFormDateTimePicker, | |
12 | + ProFormSelect, | |
13 | + ProFormText, | |
14 | + ProFormTextArea, | |
15 | + ProFormUploadDragger, | |
16 | +} from '@ant-design/pro-components'; | |
17 | +import { Button, Form, message } from 'antd'; | |
18 | +import { RcFile } from 'antd/es/upload'; | |
19 | +export default ({ data, type, reloadTable }) => { | |
20 | + const [form] = Form.useForm(); | |
21 | + const onfinish = async (values) => { | |
22 | + console.log(data, '5656datatest'); | |
23 | + console.log(values, '5656...values'); | |
24 | + const res = await postAdminClientAddOrModifyClientComunicationInfo({ | |
25 | + data: { | |
26 | + ...values, | |
27 | + id: '', | |
28 | + clientId: data.id, | |
29 | + }, | |
30 | + }); | |
31 | + if (res.result === RESPONSE_CODE.SUCCESS) { | |
32 | + message.success('新增成功'); | |
33 | + reloadTable(); | |
34 | + return true; | |
35 | + } | |
36 | + // 不返回不会关闭弹框 | |
37 | + }; | |
38 | + const optType = { | |
39 | + add: { | |
40 | + readOnly: false, | |
41 | + title: '新增跟进记录', | |
42 | + button: ( | |
43 | + <Button size={'small'} type="link"> | |
44 | + 新增跟进 | |
45 | + </Button> | |
46 | + ), | |
47 | + onFinish: onfinish, | |
48 | + }, | |
49 | + add2: { | |
50 | + readOnly: false, | |
51 | + title: '新增跟进记录', | |
52 | + button: ( | |
53 | + <Button size={'middle'} type="primary"> | |
54 | + 新增跟进 | |
55 | + </Button> | |
56 | + ), | |
57 | + onFinish: onfinish, | |
58 | + }, | |
59 | + modify: { | |
60 | + readOnly: false, | |
61 | + title: '修改跟进记录', | |
62 | + button: ( | |
63 | + <Button size={'small'} type="link"> | |
64 | + 编辑 | |
65 | + </Button> | |
66 | + ), | |
67 | + onFinish: onfinish, | |
68 | + }, | |
69 | + detail: { | |
70 | + readOnly: true, | |
71 | + title: '查看跟进记录', | |
72 | + button: ( | |
73 | + <Button size={'small'} type="link"> | |
74 | + 查看 | |
75 | + </Button> | |
76 | + ), | |
77 | + onFinish: () => {}, | |
78 | + }, | |
79 | + }; | |
80 | + return ( | |
81 | + <ModalForm | |
82 | + title={optType[type].title} | |
83 | + resize={{ | |
84 | + onResize() { | |
85 | + console.log('resize!'); | |
86 | + }, | |
87 | + maxWidth: window.innerWidth * 0.8, | |
88 | + minWidth: 400, | |
89 | + }} | |
90 | + form={form} | |
91 | + trigger={optType[type].button} | |
92 | + autoFocusFirstInput | |
93 | + drawerProps={{ | |
94 | + destroyOnClose: true, | |
95 | + }} | |
96 | + submitTimeout={2000} | |
97 | + onFinish={optType[type].onFinish} | |
98 | + > | |
99 | + <ProFormSelect | |
100 | + name="sendStoreCode" | |
101 | + readonly={optType[type].readOnly} | |
102 | + fieldProps={{ | |
103 | + labelInValue: false, | |
104 | + }} | |
105 | + initialValue={data ? data?.name + '' : null} | |
106 | + label="客户" | |
107 | + width="sm" | |
108 | + request={async () => { | |
109 | + const res = await postAdminClientQueryClientPage({ | |
110 | + data: { | |
111 | + groupFilter: 'all', | |
112 | + }, | |
113 | + }); | |
114 | + console.log(data?.datetime, '5656data?.datetime'); | |
115 | + const namesArray = res.data.data.map((item) => item.name); | |
116 | + return enumToSelect(namesArray); | |
117 | + }} | |
118 | + rules={[ | |
119 | + { | |
120 | + required: true, | |
121 | + message: '请选择客户', | |
122 | + }, | |
123 | + ]} | |
124 | + disabled | |
125 | + ></ProFormSelect> | |
126 | + <ProFormDateTimePicker | |
127 | + name="datetime" | |
128 | + label="日期" | |
129 | + initialValue={data.datetime ? data?.datetime + '' : null} | |
130 | + placeholder="请选择跟进时间" | |
131 | + width="sm" | |
132 | + rules={[ | |
133 | + { | |
134 | + required: true, | |
135 | + message: '请选择日期', | |
136 | + }, | |
137 | + ]} | |
138 | + /> | |
139 | + <ProFormSelect | |
140 | + name="way" | |
141 | + width="sm" | |
142 | + readonly={optType[type].readOnly} | |
143 | + fieldProps={{ | |
144 | + labelInValue: false, | |
145 | + }} | |
146 | + initialValue={data?.way ? data?.way + '' : null} | |
147 | + label="类型" | |
148 | + request={async () => { | |
149 | + const res = await postServiceConstClientWay(); | |
150 | + return enumToSelect(res.data); | |
151 | + }} | |
152 | + rules={[ | |
153 | + { | |
154 | + required: true, | |
155 | + message: '请选择跟进类型', | |
156 | + }, | |
157 | + ]} | |
158 | + ></ProFormSelect> | |
159 | + <ProFormTextArea | |
160 | + name="content" | |
161 | + label="详情" | |
162 | + placeholder="请输入详情" | |
163 | + initialValue={data?.content} | |
164 | + readonly={optType[type].readOnly} | |
165 | + rules={[ | |
166 | + { | |
167 | + required: true, | |
168 | + message: '请输入详情', | |
169 | + }, | |
170 | + ]} | |
171 | + ></ProFormTextArea> | |
172 | + <ProFormUploadDragger | |
173 | + label="附件" | |
174 | + name="attachment" | |
175 | + action="upload.do" | |
176 | + hidden={optType[type].readOnly} | |
177 | + onChange={(info) => { | |
178 | + const uploadFile = async ({ fileList: newFileList }) => { | |
179 | + if (newFileList.length > 0) { | |
180 | + const formData = new FormData(); | |
181 | + formData.append('file', newFileList[0].originFileObj as RcFile); | |
182 | + const res = await postOrderErpOrderStagesUpload({ | |
183 | + data: formData, | |
184 | + headers: { | |
185 | + 'Content-Type': | |
186 | + 'multipart/form-data; boundary=----WebKitFormBoundarynl6gT1BKdPWIejNq', | |
187 | + }, | |
188 | + }); | |
189 | + const url = res.data; | |
190 | + console.log('attachments' + JSON.stringify(url)); | |
191 | + form.setFieldValue('attachments', url); | |
192 | + } else { | |
193 | + form.setFieldValue('attachments', null); | |
194 | + } | |
195 | + }; | |
196 | + uploadFile(info); | |
197 | + }} | |
198 | + max={1} | |
199 | + /> | |
200 | + <a hidden={!optType[type].readOnly} href={data?.attachments} download> | |
201 | + 下载附件 | |
202 | + </a> | |
203 | + <ProFormText | |
204 | + initialValue={data?.attachments} | |
205 | + name="attachments" | |
206 | + hidden | |
207 | + ></ProFormText> | |
208 | + <ProFormText initialValue={data?.id} name="id" hidden></ProFormText> | |
209 | + </ModalForm> | |
210 | + ); | |
211 | +}; | ... | ... |
src/pages/Client/Client/Components/CommunicationHistoryModal.tsx
0 → 100644
1 | +import { RESPONSE_CODE } from '@/constants/enum'; | |
2 | +import { | |
3 | + postAdminClientAddOrModifyClientComunicationInfo, | |
4 | + postAdminClientQueryClientComunicationInfo, | |
5 | + postAdminClientRemoveClientComunicationInfo, | |
6 | + postServiceConstClientWay, | |
7 | +} from '@/services'; | |
8 | +import { enumToSelect } from '@/utils'; | |
9 | +import { | |
10 | + ActionType, | |
11 | + EditableProTable, | |
12 | + ModalForm, | |
13 | + ProFormInstance, | |
14 | +} from '@ant-design/pro-components'; | |
15 | +import { Descriptions, Popconfirm, message } from 'antd'; | |
16 | +import { useEffect, useRef, useState } from 'react'; | |
17 | +import ClientModal from './ClientModal'; | |
18 | +import InformationHistoryModal from './InformationHistoryModal'; | |
19 | +export default ({ record }) => { | |
20 | + const [editableKeys, setEditableRowKeys] = useState<React.Key[]>([]); | |
21 | + const [dataSource, setDataSource] = useState(); | |
22 | + const ref = useRef<ProFormInstance>(); | |
23 | + const actionRef = useRef<ActionType>(); | |
24 | + const [refreshKey, setRefreshKey] = useState(0); // 用于强制刷新的键 | |
25 | + | |
26 | + const reloadInformationHistoryModal = () => { | |
27 | + actionRef.current.reload(); // 重新加载数据 | |
28 | + console.log('5656flush'); | |
29 | + | |
30 | + // 更新 refreshKey,强制刷新 CommunicationHistoryModal | |
31 | + setRefreshKey((prevKey) => prevKey + 1); | |
32 | + }; | |
33 | + const columns = [ | |
34 | + { | |
35 | + title: '跟进时间', | |
36 | + dataIndex: 'datetime', | |
37 | + width: 50, | |
38 | + valueType: 'dateTime', | |
39 | + rules: [{ required: true, message: '请选择时间' }], | |
40 | + }, | |
41 | + { | |
42 | + title: '跟进人', | |
43 | + width: 50, | |
44 | + rules: [{ required: true, message: '请输入跟进人' }], | |
45 | + dataIndex: 'updateByName', | |
46 | + }, | |
47 | + { | |
48 | + title: '跟进方式', | |
49 | + width: 50, | |
50 | + dataIndex: 'way', | |
51 | + rules: [{ required: true, message: '请选择方式' }], | |
52 | + render: (text, record) => record.wayText, // 显示 wayText | |
53 | + request: async () => { | |
54 | + const res = await postServiceConstClientWay(); | |
55 | + return enumToSelect(res.data); | |
56 | + }, | |
57 | + }, | |
58 | + { | |
59 | + title: '内容', | |
60 | + width: 100, | |
61 | + valueType: 'textarea', | |
62 | + rules: [{ required: true, message: '请输入内容' }], | |
63 | + dataIndex: 'content', | |
64 | + }, | |
65 | + { | |
66 | + title: '操作', | |
67 | + valueType: 'option', | |
68 | + width: 50, | |
69 | + render: (text, record, _, action) => [ | |
70 | + // <a | |
71 | + // key="editable" | |
72 | + // onClick={() => { | |
73 | + // action?.startEditable?.(record.tid); | |
74 | + // }} | |
75 | + // > | |
76 | + // 编辑 | |
77 | + // </a>, | |
78 | + <InformationHistoryModal | |
79 | + // key={'communicationHistory'} | |
80 | + key={`communicationHistory-${refreshKey}`} // 使用 refreshKey 来强制更新组件 | |
81 | + data={record} | |
82 | + // reloadTable={() => { | |
83 | + // actionRef.current.reload(); | |
84 | + // console.log('5656flush'); | |
85 | + // }} | |
86 | + reloadTable={reloadInformationHistoryModal} | |
87 | + />, | |
88 | + <Popconfirm | |
89 | + key={'delete'} | |
90 | + title="删除记录" | |
91 | + description="确认删除记录?" | |
92 | + onConfirm={async () => { | |
93 | + setDataSource(dataSource.filter((item) => item.tid !== record.tid)); | |
94 | + const res = await postAdminClientRemoveClientComunicationInfo({ | |
95 | + query: { | |
96 | + id: record.id, | |
97 | + }, | |
98 | + }); | |
99 | + if (res.result === RESPONSE_CODE.SUCCESS) { | |
100 | + message.success(res.message); | |
101 | + action?.reload(); | |
102 | + } else { | |
103 | + message.error('删除失败'); | |
104 | + } | |
105 | + }} | |
106 | + okText="是" | |
107 | + cancelText="否" | |
108 | + > | |
109 | + <a type={'danger'}>删除</a> | |
110 | + </Popconfirm>, | |
111 | + ], | |
112 | + }, | |
113 | + ]; | |
114 | + const [name, setName] = useState(''); // 客户名称 | |
115 | + const [contacts, setContacts] = useState(''); // 联系人 | |
116 | + const [sourceText, setSourceText] = useState(''); // 来源文本 | |
117 | + const [phoneNumber, setPhoneNumber] = useState(''); // 联系电话 | |
118 | + const [hasSchemeText, setHasSchemeText] = useState(''); // 报方案状态文本 | |
119 | + const [quoteDatetime, setQuoteDatetime] = useState(null); // 报价时间 | |
120 | + const [referrers, setReferrers] = useState(''); // 推荐人 | |
121 | + const [requirementsText, setRequirementsText] = useState(''); // 需求文本 | |
122 | + const [tradeStatusText, setTradeStatusText] = useState(''); // 跟进状态文本 | |
123 | + const [levelText, setLevelText] = useState(''); // 客户等级文本 | |
124 | + const [createTime, setCreateTime] = useState(null); // 最新沟通时间 | |
125 | + const [address, setAddress] = useState(''); // 客户地址 | |
126 | + const [notes, setNotes] = useState(''); // 备注信息 | |
127 | + const [createByName, setCreateByName] = useState(''); // 创建人 | |
128 | + const [latestObject, setLatestObject] = useState(); // 最新跟进时间 | |
129 | + const [recordSave, setRecordSave] = useState(); //新增跟进 | |
130 | + useEffect(() => { | |
131 | + const request = async () => { | |
132 | + const resShow = await postAdminClientQueryClientComunicationInfo({ | |
133 | + data: { | |
134 | + clientId: record.id, | |
135 | + }, | |
136 | + }); | |
137 | + if (resShow?.data?.data !== null) { | |
138 | + const data = resShow?.data?.data; | |
139 | + // const latest = data.reduce((latest: any, current: any) => { | |
140 | + // return new Date(current.updateTime) > new Date(latest.updateTime) ? current : latest; | |
141 | + // }); | |
142 | + // const data = []; | |
143 | + const latestObject2 = | |
144 | + data?.length > 0 | |
145 | + ? data.reduce((latest, current) => | |
146 | + new Date(current.datetime) > new Date(latest.datetime) | |
147 | + ? current | |
148 | + : latest, | |
149 | + ) | |
150 | + : null; // 或返回其他默认值 | |
151 | + setLatestObject(latestObject2?.datetime); | |
152 | + } | |
153 | + setRecordSave(record); | |
154 | + setName(record.name); | |
155 | + setContacts(record.contacts); | |
156 | + setSourceText(record.sourceText); | |
157 | + setPhoneNumber(record.phoneNumber); | |
158 | + setHasSchemeText(record.hasSchemeText); | |
159 | + setQuoteDatetime(record.quoteDatetime); | |
160 | + setReferrers(record.referrers); | |
161 | + setRequirementsText(record.requirementsText); | |
162 | + setTradeStatusText(record.tradeStatusText); | |
163 | + setLevelText(record.levelText); | |
164 | + setCreateTime(record.createTime); | |
165 | + setAddress(record.address); | |
166 | + setNotes(record.notes); | |
167 | + setCreateByName(record.createByName); | |
168 | + }; | |
169 | + request(); | |
170 | + }, []); | |
171 | + const items = [ | |
172 | + { | |
173 | + key: '1', | |
174 | + label: '客户名称', | |
175 | + children: name, // 客户名称 | |
176 | + }, | |
177 | + { | |
178 | + key: '2', | |
179 | + label: '联系人', | |
180 | + children: contacts, // 联系人 | |
181 | + }, | |
182 | + { | |
183 | + key: '3', | |
184 | + label: '来源', | |
185 | + children: sourceText, // 来源文本 | |
186 | + }, | |
187 | + { | |
188 | + key: '4', | |
189 | + label: '联系电话', | |
190 | + children: phoneNumber, // 联系电话 | |
191 | + }, | |
192 | + { | |
193 | + key: '5', | |
194 | + label: '是否已报方案', | |
195 | + children: hasSchemeText, // 报方案状态文本 | |
196 | + }, | |
197 | + { | |
198 | + key: '6', | |
199 | + label: '报价时间', | |
200 | + children: quoteDatetime, // 报价时间 | |
201 | + }, | |
202 | + { | |
203 | + key: '7', | |
204 | + label: '推荐人', | |
205 | + children: referrers, // 推荐人 | |
206 | + }, | |
207 | + { | |
208 | + key: '8', | |
209 | + label: '需求', | |
210 | + children: requirementsText, // 需求文本 | |
211 | + }, | |
212 | + { | |
213 | + key: '9', | |
214 | + label: '跟进状态', | |
215 | + children: tradeStatusText, // 跟进状态文本 | |
216 | + }, | |
217 | + { | |
218 | + key: '10', | |
219 | + label: '客户等级', | |
220 | + children: levelText, // 客户等级文本 | |
221 | + }, | |
222 | + { | |
223 | + key: '11', | |
224 | + label: '创建时间', | |
225 | + children: createTime, // 最新沟通时间 | |
226 | + }, | |
227 | + { | |
228 | + key: '12', | |
229 | + label: '客户地址', | |
230 | + children: address, // 客户地址 | |
231 | + }, | |
232 | + { | |
233 | + key: '13', | |
234 | + label: '备注', | |
235 | + children: notes, // 备注信息 | |
236 | + }, | |
237 | + { | |
238 | + key: '14', | |
239 | + label: '创建人', | |
240 | + children: createByName, // 创建人 | |
241 | + }, | |
242 | + { | |
243 | + key: '15', | |
244 | + label: '最新跟进时间', | |
245 | + children: latestObject, // 最新跟进时间 | |
246 | + }, | |
247 | + ]; | |
248 | + return ( | |
249 | + <ModalForm | |
250 | + title="客户详情" | |
251 | + trigger={<a type="primary">查看</a>} | |
252 | + modalProps={{ | |
253 | + destroyOnClose: true, | |
254 | + }} | |
255 | + onFinish={async () => { | |
256 | + return true; | |
257 | + }} | |
258 | + > | |
259 | + <Descriptions items={items} column={2} /> | |
260 | + <ClientModal | |
261 | + key={'add'} | |
262 | + data={recordSave} | |
263 | + reloadTable={() => { | |
264 | + actionRef.current?.reload(); | |
265 | + }} | |
266 | + type={'add2'} | |
267 | + /> | |
268 | + , | |
269 | + <EditableProTable | |
270 | + rowKey="tid" | |
271 | + formRef={ref} | |
272 | + actionRef={actionRef} | |
273 | + recordCreatorProps={false} | |
274 | + // recordCreatorProps={{ | |
275 | + // record: () => ({ tid: (Math.random() * 1000000).toFixed(0) }), | |
276 | + // }} | |
277 | + loading={false} | |
278 | + columns={columns} | |
279 | + request={async () => { | |
280 | + const res = await postAdminClientQueryClientComunicationInfo({ | |
281 | + data: { | |
282 | + clientId: record.id, | |
283 | + }, | |
284 | + }); | |
285 | + if (res.result === RESPONSE_CODE.SUCCESS) { | |
286 | + console.log(JSON.stringify(res.data)); | |
287 | + return { | |
288 | + ...res.data, | |
289 | + data: res.data.data.map((item) => { | |
290 | + return { | |
291 | + ...item, | |
292 | + tid: (Math.random() * 1000000).toFixed(0), | |
293 | + }; | |
294 | + }), | |
295 | + }; | |
296 | + } else { | |
297 | + message.error('获取失败'); | |
298 | + } | |
299 | + }} | |
300 | + value={dataSource} | |
301 | + onChange={setDataSource} | |
302 | + editable={{ | |
303 | + type: 'multiple', | |
304 | + editableKeys, | |
305 | + onSave: async (rowKey, data, row) => { | |
306 | + console.log(rowKey, data, row); | |
307 | + if (data?.way === '拜访') { | |
308 | + data.way = 'VISIT'; | |
309 | + } else if (data?.way === '电话') { | |
310 | + data.way = 'PHONE'; | |
311 | + } else if (data?.way === '微信') { | |
312 | + data.way = 'WECHAT'; | |
313 | + } else if (data?.way === '邮件') { | |
314 | + data.way = 'EMAIL'; | |
315 | + } else if (data?.way === '其他') { | |
316 | + data.way = 'OTHER'; | |
317 | + } | |
318 | + const res = await postAdminClientAddOrModifyClientComunicationInfo({ | |
319 | + data: { | |
320 | + ...data, | |
321 | + clientId: record.id, | |
322 | + }, | |
323 | + }); | |
324 | + if (res.result === RESPONSE_CODE.SUCCESS) { | |
325 | + message.success(res.message); | |
326 | + } else { | |
327 | + message.error('修改失败'); | |
328 | + } | |
329 | + actionRef.current?.reload(); | |
330 | + }, | |
331 | + onChange: setEditableRowKeys, | |
332 | + }} | |
333 | + /> | |
334 | + {/* <Descriptions title="User Info" items={items} column={2} /> */} | |
335 | + {/*<ProCard title="表格数据" headerBordered collapsible defaultCollapsed> | |
336 | + <ProFormField | |
337 | + ignoreFormItem | |
338 | + fieldProps={{ | |
339 | + style: { | |
340 | + width: '100%', | |
341 | + }, | |
342 | + }} | |
343 | + mode="read" | |
344 | + valueType="jsonCode" | |
345 | + text={JSON.stringify(dataSource)} | |
346 | + /> | |
347 | + </ProCard>*/} | |
348 | + </ModalForm> | |
349 | + ); | |
350 | +}; | ... | ... |
src/pages/Client/Client/Components/InformationHistoryModal.tsx
0 → 100644
1 | +// import ClientModal from '@/pages/Client/FollowRecord/Components/ClientModal'; | |
2 | +import ClientInformationModal from '@/pages/Client/Client/Components/ClientInformationModal'; | |
3 | + | |
4 | +import { | |
5 | + postAdminClientQueryClientComunicationInfo, | |
6 | + postAdminClientRemoveClientComunicationInfo, | |
7 | +} from '@/services/request'; | |
8 | +import { ModalForm } from '@ant-design/pro-components'; | |
9 | +import { Button, Descriptions, Space } from 'antd'; | |
10 | +import { useEffect, useRef, useState } from 'react'; | |
11 | + | |
12 | +export default ({ data, reloadTable }) => { | |
13 | + console.log(data, '5656datafirstshowclient'); | |
14 | + | |
15 | + // const [isModalVisible, setIsModalVisible] = useState(false); // 控制 ClientModal 的显示 | |
16 | + const actionRef = useRef(); // 引用 actionRef,方便调用 reload 方法 | |
17 | + | |
18 | + const [datetime, setDatetime] = useState(); // 跟进日期 | |
19 | + const [createByName, setCreateByName] = useState(''); // 跟进人员 | |
20 | + const [clientName, setClientName] = useState(''); // 客户名称 | |
21 | + // const [clientAddress, setClientAddress] = useState(''); // 客户地址 | |
22 | + const [way, setWay] = useState(); // 类型 | |
23 | + // const [clientNameLike, setClientNameLike] = useState(''); // 客户名称模糊查询 | |
24 | + // const [clientAddressLike, setClientAddressLike] = useState(''); // 客户地址模糊查询 | |
25 | + // const [tradeStatus, setTradeStatus] = useState(''); // 客户状态 | |
26 | + // const [tradeStatusLike, setTradeStatusLike] = useState(''); // 客户状态模糊查询 | |
27 | + const [content, setContent] = useState(''); // 跟进详情 | |
28 | + const [createTime, setCreateTime] = useState(null); // 创建时间 | |
29 | + const [attachments, setAttachments] = useState(); //附件 | |
30 | + const [attachmentsName, setAttachmentsName] = useState(''); // 附件名称 | |
31 | + | |
32 | + useEffect(() => { | |
33 | + const request = async () => { | |
34 | + console.log(data, '5656datasearch'); | |
35 | + const res = await postAdminClientQueryClientComunicationInfo({ | |
36 | + data: { | |
37 | + id: data.id, | |
38 | + }, | |
39 | + }); | |
40 | + console.log(res, '5656res'); | |
41 | + const dataSearch = res.data.data[0]; | |
42 | + if (dataSearch) { | |
43 | + if (dataSearch.attachments) { | |
44 | + const url = dataSearch.attachments; | |
45 | + const match = url.match(/aliyuncs\.com\/(.*?)\?/); | |
46 | + let decodedStr = ''; | |
47 | + | |
48 | + if (match) { | |
49 | + // 获取匹配的字符串并进行解码 | |
50 | + const encodedStr = match[1]; | |
51 | + decodedStr = decodeURIComponent(encodedStr); | |
52 | + setAttachmentsName(decodedStr); // 设置跟进日期 | |
53 | + } | |
54 | + } | |
55 | + setDatetime(dataSearch.datetime); // 设置跟进日期 | |
56 | + // setDateRange(data.dateRange || []); // 设置跟进时间范围 | |
57 | + setCreateByName(dataSearch.createByName); // 设置跟进人员 | |
58 | + setClientName(dataSearch.clientName); // 设置客户名称 | |
59 | + // setClientAddress(data.clientAddress || ''); // 设置客户地址 | |
60 | + // setClientNameLike(data.clientNameLike || ''); // 设置客户名称模糊查询 | |
61 | + // setClientAddressLike(data.clientAddressLike || ''); // 设置客户地址模糊查询 | |
62 | + // setTradeStatus(data.tradeStatus || ''); // 设置客户状态 | |
63 | + // setTradeStatusLike(data.tradeStatusLike || ''); // 设置客户状态模糊查询 | |
64 | + setContent(dataSearch.content); // 设置跟进详情 | |
65 | + setCreateTime(dataSearch.createTime); // 设置创建时间 | |
66 | + setWay(dataSearch.wayText); | |
67 | + setAttachments(dataSearch.attachments); | |
68 | + } | |
69 | + console.log(attachments, '5656attachments'); | |
70 | + }; | |
71 | + request(); | |
72 | + }, []); | |
73 | + const items = [ | |
74 | + { | |
75 | + key: '1', | |
76 | + label: '跟进日期', | |
77 | + children: datetime, // 跟进日期 | |
78 | + }, | |
79 | + { | |
80 | + key: '2', | |
81 | + label: '跟进人员', | |
82 | + children: createByName, // 跟进人员 | |
83 | + }, | |
84 | + { | |
85 | + key: '3', | |
86 | + label: '客户名称', | |
87 | + children: clientName, // 客户名称 | |
88 | + }, | |
89 | + { | |
90 | + key: '4', | |
91 | + label: '跟进详情', | |
92 | + children: content, // 跟进详情 | |
93 | + }, | |
94 | + { | |
95 | + key: '5', | |
96 | + label: '创建时间', | |
97 | + children: createTime, // 创建时间 | |
98 | + }, | |
99 | + { | |
100 | + key: '6', | |
101 | + label: '跟进类型', | |
102 | + children: way, // 跟进类型 | |
103 | + }, | |
104 | + ]; | |
105 | + const handleDelete = async () => { | |
106 | + console.log(JSON.stringify(data), '5656record'); | |
107 | + // 调用删除接口 | |
108 | + const success = await postAdminClientRemoveClientComunicationInfo({ | |
109 | + query: { | |
110 | + id: data.id, | |
111 | + }, | |
112 | + }); | |
113 | + // setIsModalVisible(false); | |
114 | + if (success) { | |
115 | + actionRef?.current?.reload(); // 重新加载表格数据 | |
116 | + } | |
117 | + }; | |
118 | + return ( | |
119 | + <Space> | |
120 | + <ModalForm | |
121 | + title="跟进记录" | |
122 | + trigger={<Button type="link">查看</Button>} | |
123 | + submitter={{ | |
124 | + resetButtonProps: { | |
125 | + style: { | |
126 | + display: 'none', | |
127 | + }, | |
128 | + }, | |
129 | + submitButtonProps: { | |
130 | + style: { | |
131 | + display: 'none', | |
132 | + }, | |
133 | + }, | |
134 | + render: (props, defaultDoms) => { | |
135 | + return [ | |
136 | + ...defaultDoms, | |
137 | + <> | |
138 | + <ClientInformationModal | |
139 | + key={'modify'} | |
140 | + data={data} // 将表单数据传递给 ClientModal | |
141 | + reloadTable={() => { | |
142 | + actionRef?.current?.reload(); // 重新加载表格数据 | |
143 | + props.submit(); | |
144 | + reloadTable(); | |
145 | + console.log('5656close'); | |
146 | + }} | |
147 | + type={'modify'} | |
148 | + onFinish={() => { | |
149 | + // setIsModalVisible(false); | |
150 | + }} // 关闭 Modal | |
151 | + style={{ marginRight: '10px' }} | |
152 | + /> | |
153 | + <Button | |
154 | + key={'delete'} | |
155 | + onClick={() => { | |
156 | + handleDelete(); | |
157 | + props.submit(); | |
158 | + reloadTable(); | |
159 | + }} | |
160 | + type="primary" | |
161 | + size="middle" | |
162 | + danger // 使用 danger 属性来将按钮颜色设置为红色 | |
163 | + style={{ marginLeft: '10px' }} | |
164 | + onFinish={() => { | |
165 | + actionRef.current.reload(); | |
166 | + }} | |
167 | + > | |
168 | + 删除 | |
169 | + </Button> | |
170 | + </>, | |
171 | + ]; | |
172 | + }, | |
173 | + }} | |
174 | + onFinish={async () => { | |
175 | + // 提交成功后,显示 ClientDrawer | |
176 | + // setIsModalVisible(true); | |
177 | + return true; | |
178 | + }} | |
179 | + > | |
180 | + <Descriptions items={items} column={1} /> | |
181 | + {attachmentsName && ( | |
182 | + <a href={attachments} download> | |
183 | + 附件:{attachmentsName} | |
184 | + </a> | |
185 | + )} | |
186 | + </ModalForm> | |
187 | + </Space> | |
188 | + ); | |
189 | +}; | ... | ... |
src/pages/Client/index.tsx renamed to src/pages/Client/Client/index.tsx
1 | -import ClientDrawer from '@/pages/Client/Components/ClientDrawer'; | |
2 | -import ClientImportModal from '@/pages/Client/Components/ClientImportModal'; | |
3 | -import ClientStatistic from '@/pages/Client/Components/ClientStatistic'; | |
4 | -import CommunicationHistoryModal from '@/pages/Client/Components/CommunicationHistoryModal'; | |
1 | +import ButtonConfirm from '@/components/ButtomConfirm'; | |
2 | +import ClientDrawer from '@/pages/Client/Client/Components/ClientDrawer'; | |
3 | +import ClientImportModal from '@/pages/Client/Client/Components/ClientImportModal'; | |
4 | +import ClientModal from '@/pages/Client/Client/Components/ClientModal'; | |
5 | +import CommunicationHistoryModal from '@/pages/Client/Client/Components/CommunicationHistoryModal'; | |
5 | 6 | import { |
7 | + postAdminClientDeleteAdminClient, | |
8 | + postAdminClientGetStatisticalData, | |
6 | 9 | postAdminClientQueryClientPage, |
7 | - postServiceConstClientGroupFilters, | |
8 | 10 | postServiceConstClientLevels, |
11 | + postServiceConstClientRequirements, | |
12 | + postServiceConstClientSource, | |
9 | 13 | postServiceConstTradeStatus, |
10 | 14 | } from '@/services'; |
11 | 15 | import { downloadFile } from '@/services/order'; |
12 | 16 | import { enumToSelect } from '@/utils'; |
13 | 17 | import type { ActionType } from '@ant-design/pro-components'; |
14 | 18 | import { ProTable } from '@ant-design/pro-components'; |
15 | -import { Button, Radio, Space, message } from 'antd'; | |
19 | +import { Badge, Button, Radio, Space, message } from 'antd'; | |
16 | 20 | import { useEffect, useRef, useState } from 'react'; |
17 | 21 | |
18 | 22 | const columns = [ |
... | ... | @@ -25,23 +29,30 @@ const columns = [ |
25 | 29 | { |
26 | 30 | title: '客户名称', |
27 | 31 | dataIndex: 'name', |
28 | - width: 100, | |
32 | + width: 150, | |
29 | 33 | ellipsis: true, |
30 | 34 | hideInSearch: true, |
31 | 35 | }, |
36 | + // { | |
37 | + // title: '单位名称', | |
38 | + // width: 150, | |
39 | + // ellipsis: true, | |
40 | + // dataIndex: 'companyName', | |
41 | + // hideInSearch: true, | |
42 | + // }, | |
32 | 43 | { |
33 | - title: '单位名称', | |
34 | - width: 150, | |
44 | + title: '客户地址', | |
45 | + width: 250, | |
35 | 46 | ellipsis: true, |
36 | - dataIndex: 'companyName', | |
37 | - hideInSearch: true, | |
47 | + dataIndex: 'address', | |
48 | + hideInSearch: false, | |
38 | 49 | }, |
39 | 50 | { |
40 | - title: '单位地址', | |
41 | - width: 250, | |
51 | + title: '联系人', | |
52 | + width: 150, | |
42 | 53 | ellipsis: true, |
43 | - dataIndex: 'companyAddressText', | |
44 | - hideInSearch: true, | |
54 | + dataIndex: 'contacts', | |
55 | + hideInSearch: false, | |
45 | 56 | }, |
46 | 57 | { |
47 | 58 | title: '联系电话', |
... | ... | @@ -54,10 +65,20 @@ const columns = [ |
54 | 65 | title: '客户来源', |
55 | 66 | width: 150, |
56 | 67 | ellipsis: true, |
57 | - dataIndex: 'source', | |
68 | + dataIndex: 'sourceText', | |
58 | 69 | hideInSearch: true, |
59 | 70 | }, |
60 | 71 | { |
72 | + title: '客户来源', | |
73 | + valueType: 'select', | |
74 | + hideInTable: true, | |
75 | + dataIndex: 'source', | |
76 | + request: async () => { | |
77 | + const res = await postServiceConstClientSource(); | |
78 | + return enumToSelect(res.data); | |
79 | + }, | |
80 | + }, | |
81 | + { | |
61 | 82 | title: '推荐人', |
62 | 83 | dataIndex: 'referrers', |
63 | 84 | width: 150, |
... | ... | @@ -66,12 +87,28 @@ const columns = [ |
66 | 87 | }, |
67 | 88 | { |
68 | 89 | title: '客户需求', |
69 | - dataIndex: 'requirements', | |
70 | - width: 150, | |
90 | + width: 240, | |
71 | 91 | ellipsis: true, |
92 | + dataIndex: 'requirementsText', | |
72 | 93 | hideInSearch: true, |
73 | 94 | }, |
74 | 95 | { |
96 | + title: '客户需求', | |
97 | + dataIndex: 'requirements', | |
98 | + valueType: 'select', | |
99 | + hideInTable: true, | |
100 | + request: async () => { | |
101 | + const res = await postServiceConstClientRequirements(); | |
102 | + // function enumToSelect(data: any) { | |
103 | + // const keys = Object.keys(data); | |
104 | + // return keys.map((value) => { | |
105 | + // return { label: data[value], value: value }; | |
106 | + // }); | |
107 | + // } | |
108 | + return enumToSelect(res.data); | |
109 | + }, | |
110 | + }, | |
111 | + { | |
75 | 112 | title: '是否已报方案', |
76 | 113 | width: 150, |
77 | 114 | ellipsis: true, |
... | ... | @@ -84,7 +121,7 @@ const columns = [ |
84 | 121 | width: 150, |
85 | 122 | ellipsis: true, |
86 | 123 | dataIndex: 'quoteDatetime', |
87 | - valueType: 'dateTime', | |
124 | + valueType: 'date', | |
88 | 125 | hideInSearch: true, |
89 | 126 | }, |
90 | 127 | { |
... | ... | @@ -111,26 +148,35 @@ const columns = [ |
111 | 148 | hideInSearch: true, |
112 | 149 | }, |
113 | 150 | { |
114 | - title: '最新跟进时间', | |
151 | + title: '最新更进时间', | |
115 | 152 | key: 'since', |
116 | 153 | width: 150, |
117 | 154 | ellipsis: true, |
118 | - dataIndex: 'latestCommunicationTime', | |
155 | + dataIndex: 'updateTime', | |
119 | 156 | valueType: 'dateTime', |
120 | 157 | hideInSearch: true, |
121 | 158 | }, |
159 | + // { | |
160 | + // title: '最新跟进时间', | |
161 | + // key: 'since', | |
162 | + // width: 150, | |
163 | + // ellipsis: true, | |
164 | + // dataIndex: 'latestCommunicationTime', | |
165 | + // valueType: 'dateTime', | |
166 | + // hideInSearch: true, | |
167 | + // }, | |
122 | 168 | { |
123 | 169 | title: '客户名称', |
124 | 170 | dataIndex: 'nameLike', |
125 | 171 | valueType: 'Text', |
126 | 172 | hideInTable: true, |
127 | 173 | }, |
128 | - { | |
129 | - title: '单位名称', | |
130 | - dataIndex: 'companyNameLike', | |
131 | - valueType: 'Text', | |
132 | - hideInTable: true, | |
133 | - }, | |
174 | + // { | |
175 | + // title: '单位名称', | |
176 | + // dataIndex: 'companyNameLike', | |
177 | + // valueType: 'Text', | |
178 | + // hideInTable: true, | |
179 | + // }, | |
134 | 180 | { |
135 | 181 | title: '联系电话', |
136 | 182 | dataIndex: 'phoneNumberLike', |
... | ... | @@ -141,6 +187,7 @@ const columns = [ |
141 | 187 | title: '是否已报方案', |
142 | 188 | dataIndex: 'hasScheme', |
143 | 189 | valueType: 'select', |
190 | + width: 1550, | |
144 | 191 | valueEnum: { |
145 | 192 | true: { |
146 | 193 | text: '是', |
... | ... | @@ -160,7 +207,14 @@ const columns = [ |
160 | 207 | hideInTable: true, |
161 | 208 | request: async () => { |
162 | 209 | const res = await postServiceConstClientLevels(); |
163 | - return enumToSelect(res.data); | |
210 | + // 明确指定所需的顺序(后端返回顺序正确,直接修改enumToSelect没作用) | |
211 | + function enumToSelectLevel(data: any) { | |
212 | + const order = ['PRIMARY_CLIENT', 'SECONDARY_CLIENT', 'TERTIARY_CLIENT']; | |
213 | + return order.map((key) => { | |
214 | + return { label: data[key], value: key }; | |
215 | + }); | |
216 | + } | |
217 | + return enumToSelectLevel(res.data); | |
164 | 218 | }, |
165 | 219 | }, |
166 | 220 | { |
... | ... | @@ -192,13 +246,25 @@ const columns = [ |
192 | 246 | title: '操作', |
193 | 247 | valueType: 'option', |
194 | 248 | key: 'option', |
195 | - width: 150, | |
249 | + width: 200, | |
196 | 250 | render: (text, record, index, action) => { |
197 | - console.log(JSON.stringify(record)); | |
251 | + const handleDelete = async () => { | |
252 | + console.log(JSON.stringify(record), '5656record1'); | |
253 | + // 调用删除接口 | |
254 | + const success = await postAdminClientDeleteAdminClient({ | |
255 | + query: { | |
256 | + id: record.id, | |
257 | + }, | |
258 | + }); | |
259 | + if (success) { | |
260 | + action.reload(); // 刷新表格 | |
261 | + } | |
262 | + }; | |
263 | + console.log(JSON.stringify(record), '5656record2'); | |
198 | 264 | return [ |
199 | 265 | <CommunicationHistoryModal |
200 | 266 | key={'communicationHistory'} |
201 | - clientId={record.id} | |
267 | + record={record} | |
202 | 268 | />, |
203 | 269 | <ClientDrawer |
204 | 270 | key={'detail'} |
... | ... | @@ -208,6 +274,14 @@ const columns = [ |
208 | 274 | action.reload(); |
209 | 275 | }} |
210 | 276 | ></ClientDrawer>, |
277 | + <ClientModal | |
278 | + key={'add'} | |
279 | + data={record} | |
280 | + reloadTable={() => { | |
281 | + action?.reload(); | |
282 | + }} | |
283 | + type={'add'} | |
284 | + />, | |
211 | 285 | <ClientDrawer |
212 | 286 | key={'edit'} |
213 | 287 | record={record} |
... | ... | @@ -216,6 +290,18 @@ const columns = [ |
216 | 290 | action.reload(); |
217 | 291 | }} |
218 | 292 | ></ClientDrawer>, |
293 | + // <a key={'delete'} onClick={handleDelete}> | |
294 | + // 删除 | |
295 | + // </a>, | |
296 | + <ButtonConfirm | |
297 | + key="delete" | |
298 | + className="p-0" | |
299 | + title={'删除该客户,客户下的跟进记录会一并删除'} | |
300 | + text="删除" | |
301 | + onConfirm={async () => { | |
302 | + handleDelete(); | |
303 | + }} | |
304 | + />, | |
219 | 305 | ]; |
220 | 306 | }, |
221 | 307 | }, |
... | ... | @@ -224,23 +310,74 @@ const columns = [ |
224 | 310 | export default () => { |
225 | 311 | const [messageApi, contextHolder] = message.useMessage(); |
226 | 312 | const [groupFilter, setGroupFilter] = useState('All'); |
227 | - const [groupFilterOptions, setGroupFilterDataOptions] = useState([]); | |
313 | + // const [groupFilterOptions, setGroupFilterDataOptions] = useState([]); | |
228 | 314 | const actionRef = useRef<ActionType>(); |
315 | + //获得预警/全部数量 | |
316 | + const [clientStatistic, setClientStatistic] = useState([]); | |
317 | + // const [allClientStatistic, setAllClientStatistic] = useState([]); | |
318 | + const [warningClientStatistic, setWarningClientStatistic] = useState([]); | |
319 | + // const reloadTable = () => { | |
320 | + // actionRef.current?.reload(); | |
321 | + // }; | |
229 | 322 | useEffect(() => { |
230 | - const pullGroupFilterDataOptions = async () => { | |
231 | - const res = await postServiceConstClientGroupFilters(); | |
232 | - console.log('setGroupFilterDataOptions' + JSON.stringify(res.data)); | |
233 | - setGroupFilterDataOptions(enumToSelect(res.data)); | |
323 | + const pullStatistic = async () => { | |
324 | + let statisticalData = await postAdminClientGetStatisticalData(); | |
325 | + console.log('stati' + JSON.stringify(statisticalData.data)); | |
326 | + setClientStatistic(statisticalData.data); | |
327 | + setWarningClientStatistic(statisticalData.data[1].value); | |
328 | + // setAllClientStatistic(statisticalData.data[0].value); | |
329 | + setTimeout(() => { | |
330 | + console.log(clientStatistic, '5656groupFilterOptions1'); | |
331 | + // groupFilterOptions[0].label = groupFilterOptions[0].label + '(' + clientStatistic + ')'; | |
332 | + }, 100); | |
333 | + actionRef.current?.reload(); // 可能需要在这里刷新 | |
234 | 334 | }; |
235 | - pullGroupFilterDataOptions(); | |
335 | + pullStatistic(); | |
236 | 336 | }, []); |
337 | + const groupFilterOptions = [ | |
338 | + { | |
339 | + value: 'All', | |
340 | + label: <span>全部</span>, | |
341 | + }, | |
342 | + { | |
343 | + value: 'WARNING_CLIENT', | |
344 | + label: ( | |
345 | + <span> | |
346 | + 预警客户 | |
347 | + <Badge count={warningClientStatistic} style={{ marginLeft: 8 }} /> | |
348 | + </span> | |
349 | + ), | |
350 | + }, | |
351 | + ]; | |
352 | + // useEffect(() => { | |
353 | + // const pullGroupFilterDataOptions = async () => { | |
354 | + // const res = await postServiceConstClientGroupFilters(); | |
355 | + // // console.log('setGroupFilterDataOptions' + JSON.stringify(res.data)); | |
356 | + // const select = enumToSelect(res.data); | |
357 | + // console.log(select, '5656selet'); | |
358 | + // setGroupFilterDataOptions(select); | |
359 | + // }; | |
360 | + // pullGroupFilterDataOptions(); | |
361 | + // }, []); | |
237 | 362 | useEffect(() => { |
363 | + // console.log(groupFilterOptions, '5656groupFilterOptions2'); | |
364 | + console.log(clientStatistic, '5656clientStatistic'); | |
365 | + console.log(warningClientStatistic, '5656warningClientStatistic'); | |
238 | 366 | actionRef.current?.reload(); |
239 | 367 | }, [groupFilter]); |
240 | 368 | return ( |
241 | 369 | <> |
242 | 370 | <Space direction="vertical" size="middle" style={{ display: 'flex' }}> |
243 | - <ClientStatistic></ClientStatistic> | |
371 | + <div key={'groupFilter'}> | |
372 | + <Radio.Group | |
373 | + options={groupFilterOptions} | |
374 | + onChange={(e) => { | |
375 | + setGroupFilter(e.target.value); | |
376 | + }} | |
377 | + value={groupFilter} | |
378 | + optionType="button" | |
379 | + /> | |
380 | + </div> | |
244 | 381 | <ProTable |
245 | 382 | columns={columns} |
246 | 383 | actionRef={actionRef} |
... | ... | @@ -256,6 +393,7 @@ export default () => { |
256 | 393 | return data; |
257 | 394 | }} |
258 | 395 | search={{ |
396 | + labelWidth: 'auto', | |
259 | 397 | optionRender: (searchConfig, formProps, dom) => [ |
260 | 398 | ...dom.reverse(), |
261 | 399 | <Button |
... | ... | @@ -273,6 +411,7 @@ export default () => { |
273 | 411 | 'POST', |
274 | 412 | values, |
275 | 413 | () => { |
414 | + console.log(searchConfig, '5656searchConfig'); | |
276 | 415 | messageApi.destroy(); |
277 | 416 | }, |
278 | 417 | ); |
... | ... | @@ -323,16 +462,6 @@ export default () => { |
323 | 462 | dateFormatter="string" |
324 | 463 | headerTitle="高级表格" |
325 | 464 | toolBarRender={() => [ |
326 | - <div key={'groupFilter'}> | |
327 | - <Radio.Group | |
328 | - options={groupFilterOptions} | |
329 | - onChange={(e) => { | |
330 | - setGroupFilter(e.target.value); | |
331 | - }} | |
332 | - value={groupFilter} | |
333 | - optionType="button" | |
334 | - /> | |
335 | - </div>, | |
336 | 465 | <ClientDrawer |
337 | 466 | optType={'add'} |
338 | 467 | key="button" |
... | ... | @@ -340,7 +469,12 @@ export default () => { |
340 | 469 | actionRef.current.reload(); |
341 | 470 | }} |
342 | 471 | ></ClientDrawer>, |
343 | - <ClientImportModal key="import" />, | |
472 | + <ClientImportModal | |
473 | + key="import" | |
474 | + reloadTable={() => { | |
475 | + actionRef.current.reload(); | |
476 | + }} | |
477 | + />, | |
344 | 478 | ]} |
345 | 479 | /> |
346 | 480 | </Space> | ... | ... |
src/pages/Client/Components/ClientStatistic.tsx deleted
100644 → 0
1 | -import { postAdminClientGetStatisticalData } from '@/services'; | |
2 | -import { StatisticCard } from '@ant-design/pro-components'; | |
3 | -import { useEffect, useState } from 'react'; | |
4 | - | |
5 | -export default () => { | |
6 | - const [clientStatistic, setClientStatistic] = useState([]); | |
7 | - useEffect(() => { | |
8 | - const pullStatistic = async () => { | |
9 | - let statisticalData = await postAdminClientGetStatisticalData(); | |
10 | - console.log('stati' + JSON.stringify(statisticalData.data)); | |
11 | - setClientStatistic(statisticalData.data); | |
12 | - }; | |
13 | - pullStatistic(); | |
14 | - }, []); | |
15 | - return ( | |
16 | - <StatisticCard.Group> | |
17 | - {clientStatistic.map((stat, index) => ( | |
18 | - <StatisticCard | |
19 | - key={index} | |
20 | - statistic={{ | |
21 | - title: stat.title, | |
22 | - tip: stat.tip || '', // 如果tip不存在,则使用空字符串 | |
23 | - value: stat.value, | |
24 | - status: stat.status || 'default', // 如果status不存在,则使用'default' | |
25 | - }} | |
26 | - /> | |
27 | - ))} | |
28 | - </StatisticCard.Group> | |
29 | - ); | |
30 | -}; |
src/pages/Client/Components/CommunicationHistoryModal.tsx deleted
100644 → 0
1 | -import { RESPONSE_CODE } from '@/constants/enum'; | |
2 | -import { | |
3 | - postAdminClientAddOrModifyClientComunicationInfo, | |
4 | - postAdminClientQueryClientComunicationInfo, | |
5 | - postAdminClientRemoveClientComunicationInfo, | |
6 | -} from '@/services'; | |
7 | -import { | |
8 | - ActionType, | |
9 | - EditableProTable, | |
10 | - ModalForm, | |
11 | - ProFormInstance, | |
12 | -} from '@ant-design/pro-components'; | |
13 | -import { Popconfirm, message } from 'antd'; | |
14 | -import { useEffect, useRef, useState } from 'react'; | |
15 | -export default ({ clientId }) => { | |
16 | - const [editableKeys, setEditableRowKeys] = useState<React.Key[]>([]); | |
17 | - const [dataSource, setDataSource] = useState(); | |
18 | - const ref = useRef<ProFormInstance>(); | |
19 | - const actionRef = useRef<ActionType>(); | |
20 | - const columns = [ | |
21 | - { | |
22 | - title: '跟进时间', | |
23 | - dataIndex: 'datetime', | |
24 | - width: 50, | |
25 | - valueType: 'dateTime', | |
26 | - rules: [{ required: true, message: '请选择时间' }], | |
27 | - }, | |
28 | - { | |
29 | - title: '方式', | |
30 | - width: 50, | |
31 | - dataIndex: 'way', | |
32 | - rules: [{ required: true, message: '请选择方式' }], | |
33 | - }, | |
34 | - { | |
35 | - title: '内容', | |
36 | - width: 100, | |
37 | - valueType: 'textarea', | |
38 | - rules: [{ required: true, message: '请输入内容' }], | |
39 | - dataIndex: 'content', | |
40 | - }, | |
41 | - { | |
42 | - title: '操作', | |
43 | - valueType: 'option', | |
44 | - width: 50, | |
45 | - render: (text, record, _, action) => [ | |
46 | - <a | |
47 | - key="editable" | |
48 | - onClick={() => { | |
49 | - action?.startEditable?.(record.tid); | |
50 | - }} | |
51 | - > | |
52 | - 编辑 | |
53 | - </a>, | |
54 | - <Popconfirm | |
55 | - key={'delete'} | |
56 | - title="删除记录" | |
57 | - description="确认删除记录?" | |
58 | - onConfirm={async () => { | |
59 | - setDataSource(dataSource.filter((item) => item.tid !== record.tid)); | |
60 | - const res = await postAdminClientRemoveClientComunicationInfo({ | |
61 | - query: { | |
62 | - id: record.id, | |
63 | - }, | |
64 | - }); | |
65 | - if (res.result === RESPONSE_CODE.SUCCESS) { | |
66 | - message.success(res.message); | |
67 | - action?.reload(); | |
68 | - } else { | |
69 | - message.error('删除失败'); | |
70 | - } | |
71 | - }} | |
72 | - okText="是" | |
73 | - cancelText="否" | |
74 | - > | |
75 | - <a type={'danger'}>删除</a> | |
76 | - </Popconfirm>, | |
77 | - ], | |
78 | - }, | |
79 | - ]; | |
80 | - | |
81 | - useEffect(() => { | |
82 | - console.log('clientId', clientId); | |
83 | - }, []); | |
84 | - return ( | |
85 | - <ModalForm | |
86 | - title="跟进记录" | |
87 | - trigger={<a type="primary">跟进记录</a>} | |
88 | - modalProps={{ | |
89 | - destroyOnClose: true, | |
90 | - }} | |
91 | - > | |
92 | - <EditableProTable | |
93 | - rowKey="tid" | |
94 | - formRef={ref} | |
95 | - actionRef={actionRef} | |
96 | - recordCreatorProps={{ | |
97 | - record: () => ({ tid: (Math.random() * 1000000).toFixed(0) }), | |
98 | - }} | |
99 | - loading={false} | |
100 | - columns={columns} | |
101 | - request={async () => { | |
102 | - const res = await postAdminClientQueryClientComunicationInfo({ | |
103 | - data: { | |
104 | - clientId: clientId, | |
105 | - }, | |
106 | - }); | |
107 | - if (res.result === RESPONSE_CODE.SUCCESS) { | |
108 | - console.log(JSON.stringify(res.data)); | |
109 | - return { | |
110 | - ...res.data, | |
111 | - data: res.data.data.map((item) => { | |
112 | - return { | |
113 | - ...item, | |
114 | - tid: (Math.random() * 1000000).toFixed(0), | |
115 | - }; | |
116 | - }), | |
117 | - }; | |
118 | - } else { | |
119 | - message.error('获取失败'); | |
120 | - } | |
121 | - }} | |
122 | - value={dataSource} | |
123 | - onChange={setDataSource} | |
124 | - editable={{ | |
125 | - type: 'multiple', | |
126 | - editableKeys, | |
127 | - onSave: async (rowKey, data, row) => { | |
128 | - console.log(rowKey, data, row); | |
129 | - const res = await postAdminClientAddOrModifyClientComunicationInfo({ | |
130 | - data: { | |
131 | - ...data, | |
132 | - clientId: clientId, | |
133 | - }, | |
134 | - }); | |
135 | - if (res.result === RESPONSE_CODE.SUCCESS) { | |
136 | - message.success(res.message); | |
137 | - } else { | |
138 | - message.error('修改失败'); | |
139 | - } | |
140 | - actionRef.current?.reload(); | |
141 | - }, | |
142 | - onChange: setEditableRowKeys, | |
143 | - }} | |
144 | - /> | |
145 | - {/*<ProCard title="表格数据" headerBordered collapsible defaultCollapsed> | |
146 | - <ProFormField | |
147 | - ignoreFormItem | |
148 | - fieldProps={{ | |
149 | - style: { | |
150 | - width: '100%', | |
151 | - }, | |
152 | - }} | |
153 | - mode="read" | |
154 | - valueType="jsonCode" | |
155 | - text={JSON.stringify(dataSource)} | |
156 | - /> | |
157 | - </ProCard>*/} | |
158 | - </ModalForm> | |
159 | - ); | |
160 | -}; |
src/pages/Client/Components/ClientImportModal.tsx renamed to src/pages/Client/FollowRecord/Components/ClientImportModal.tsx
src/pages/Client/FollowRecord/Components/ClientModal.tsx
0 → 100644
1 | +import { RESPONSE_CODE } from '@/constants/enum'; | |
2 | +import { | |
3 | + postAdminClientAddOrModifyClientComunicationInfo, | |
4 | + postAdminClientQueryClientPage, | |
5 | + postOrderErpOrderStagesUpload, | |
6 | + postServiceConstClientWay, | |
7 | +} from '@/services'; | |
8 | +import { enumToSelect } from '@/utils'; | |
9 | +import { | |
10 | + ModalForm, | |
11 | + ProFormDateTimePicker, | |
12 | + ProFormSelect, | |
13 | + ProFormText, | |
14 | + ProFormTextArea, | |
15 | + ProFormUploadDragger, | |
16 | +} from '@ant-design/pro-components'; | |
17 | +import { Button, Form, message } from 'antd'; | |
18 | +import { RcFile } from 'antd/es/upload'; | |
19 | +export default ({ data, type, reloadTable }) => { | |
20 | + const [form] = Form.useForm(); | |
21 | + const onfinish = async (values) => { | |
22 | + const resSearchId = await postAdminClientQueryClientPage({ | |
23 | + data: { | |
24 | + groupFilter: 'all', | |
25 | + }, | |
26 | + }); | |
27 | + const matchingItem = resSearchId.data.data.find( | |
28 | + (item) => item.id === values.name, | |
29 | + ); | |
30 | + let matchedId; | |
31 | + if (matchingItem) { | |
32 | + matchedId = matchingItem.id; // 匹配成功,取出 id | |
33 | + values.name = matchingItem.name; | |
34 | + } else { | |
35 | + matchedId = null; // 如果没有匹配项,可以设置为 null 或其他值 | |
36 | + } | |
37 | + const res = await postAdminClientAddOrModifyClientComunicationInfo({ | |
38 | + data: { | |
39 | + ...values, | |
40 | + clientId: matchedId, | |
41 | + }, | |
42 | + }); | |
43 | + if (res.result === RESPONSE_CODE.SUCCESS) { | |
44 | + message.success('新增成功'); | |
45 | + reloadTable(); | |
46 | + return true; | |
47 | + } | |
48 | + // 不返回不会关闭弹框 | |
49 | + }; | |
50 | + const editOnfinish = async (values) => { | |
51 | + // setEditClientId(data.clientId); | |
52 | + values.clientId = data.clientId; | |
53 | + console.log(values, '5656editClientId'); | |
54 | + | |
55 | + // const resSearchId = await postAdminClientQueryClientPage({ | |
56 | + // data: { | |
57 | + // groupFilter: 'all', | |
58 | + // }, | |
59 | + // }); | |
60 | + // const matchingItem = resSearchId.data.data.find( | |
61 | + // (item) => item.id === values.name, | |
62 | + // ); | |
63 | + | |
64 | + const res = await postAdminClientAddOrModifyClientComunicationInfo({ | |
65 | + data: { | |
66 | + ...values, | |
67 | + }, | |
68 | + }); | |
69 | + if (res.result === RESPONSE_CODE.SUCCESS) { | |
70 | + message.success('新增成功'); | |
71 | + reloadTable(); | |
72 | + return true; | |
73 | + } | |
74 | + // 不返回不会关闭弹框 | |
75 | + }; | |
76 | + const optType = { | |
77 | + add: { | |
78 | + readOnly: false, | |
79 | + title: '新增跟进记录', | |
80 | + button: ( | |
81 | + <Button size={'middle'} type="primary"> | |
82 | + 新增 | |
83 | + </Button> | |
84 | + ), | |
85 | + onFinish: onfinish, | |
86 | + }, | |
87 | + modify: { | |
88 | + readOnly: false, | |
89 | + title: '修改跟进记录', | |
90 | + button: ( | |
91 | + <Button size={'middle'} type="primary"> | |
92 | + 编辑 | |
93 | + </Button> | |
94 | + ), | |
95 | + onFinish: editOnfinish, | |
96 | + }, | |
97 | + detail: { | |
98 | + readOnly: true, | |
99 | + title: '查看跟进记录', | |
100 | + button: ( | |
101 | + <Button size={'middle'} type="primary" color="red"> | |
102 | + 查看 | |
103 | + </Button> | |
104 | + ), | |
105 | + onFinish: () => {}, | |
106 | + }, | |
107 | + }; | |
108 | + return ( | |
109 | + <ModalForm | |
110 | + title={optType[type].title} | |
111 | + resize={{ | |
112 | + onResize() { | |
113 | + console.log('resize!'); | |
114 | + }, | |
115 | + maxWidth: window.innerWidth * 0.8, | |
116 | + minWidth: 400, | |
117 | + }} | |
118 | + form={form} | |
119 | + trigger={optType[type].button} | |
120 | + autoFocusFirstInput | |
121 | + drawerProps={{ | |
122 | + destroyOnClose: true, | |
123 | + }} | |
124 | + submitTimeout={2000} | |
125 | + onFinish={optType[type].onFinish} | |
126 | + > | |
127 | + <ProFormSelect | |
128 | + name="name" | |
129 | + readonly={optType[type].readOnly} | |
130 | + fieldProps={{ | |
131 | + labelInValue: false, | |
132 | + disabled: type === 'modify', | |
133 | + }} | |
134 | + initialValue={data ? data?.clientName + '' : null} | |
135 | + label="客户" | |
136 | + width="sm" | |
137 | + request={async () => { | |
138 | + const res = await postAdminClientQueryClientPage({ | |
139 | + data: { | |
140 | + groupFilter: 'all', | |
141 | + }, | |
142 | + }); | |
143 | + console.log(data, '5656data?.nameedit'); | |
144 | + // const namesArray = res.data.data.map((item) => item.name); | |
145 | + // const formattedObject = res.data.data.reduce((acc, name) => { | |
146 | + // acc[name] = name; // 将名称作为键和值 | |
147 | + // return acc; | |
148 | + // }, {}); | |
149 | + // console.log(namesArray, '5656namesArray'); | |
150 | + // const formattedObject = res.data.data.reduce((acc, item) => { | |
151 | + // acc[item.name] = item.name; // 使用 name 作为键,id 作为值 | |
152 | + // return acc; | |
153 | + // }, {}); | |
154 | + // return enumToSelect(formattedObject); | |
155 | + const options = res.data.data.reduce((acc, item) => { | |
156 | + acc.push({ label: item.name, value: item.id }); // 使用 name 作为 label,id 作为 value | |
157 | + return acc; | |
158 | + }, []); | |
159 | + return options; | |
160 | + }} | |
161 | + rules={[ | |
162 | + { | |
163 | + required: true, | |
164 | + message: '请选择客户', | |
165 | + }, | |
166 | + ]} | |
167 | + ></ProFormSelect> | |
168 | + <ProFormDateTimePicker | |
169 | + name="datetime" | |
170 | + label="日期" | |
171 | + initialValue={data ? data?.datetime + '' : null} | |
172 | + placeholder="请选择跟进时间" | |
173 | + width="sm" | |
174 | + rules={[ | |
175 | + { | |
176 | + required: true, | |
177 | + message: '请选择日期', | |
178 | + }, | |
179 | + ]} | |
180 | + /> | |
181 | + <ProFormSelect | |
182 | + name="way" | |
183 | + width="sm" | |
184 | + readonly={optType[type].readOnly} | |
185 | + fieldProps={{ | |
186 | + labelInValue: false, | |
187 | + }} | |
188 | + initialValue={data?.way ? data?.way + '' : null} | |
189 | + label="类型" | |
190 | + request={async () => { | |
191 | + const res = await postServiceConstClientWay(); | |
192 | + return enumToSelect(res.data); | |
193 | + }} | |
194 | + rules={[ | |
195 | + { | |
196 | + required: true, | |
197 | + message: '请选择跟进类型', | |
198 | + }, | |
199 | + ]} | |
200 | + ></ProFormSelect> | |
201 | + <ProFormTextArea | |
202 | + name="content" | |
203 | + label="详情" | |
204 | + placeholder="请输入详情" | |
205 | + initialValue={data?.content} | |
206 | + readonly={optType[type].readOnly} | |
207 | + rules={[ | |
208 | + { | |
209 | + required: true, | |
210 | + message: '请输入详情', | |
211 | + }, | |
212 | + ]} | |
213 | + ></ProFormTextArea> | |
214 | + <ProFormUploadDragger | |
215 | + label="附件" | |
216 | + name="attachment" | |
217 | + action="upload.do" | |
218 | + hidden={optType[type].readOnly} | |
219 | + onChange={(info) => { | |
220 | + const uploadFile = async ({ fileList: newFileList }) => { | |
221 | + if (newFileList.length > 0) { | |
222 | + const formData = new FormData(); | |
223 | + formData.append('file', newFileList[0].originFileObj as RcFile); | |
224 | + const res = await postOrderErpOrderStagesUpload({ | |
225 | + data: formData, | |
226 | + headers: { | |
227 | + 'Content-Type': | |
228 | + 'multipart/form-data; boundary=----WebKitFormBoundarynl6gT1BKdPWIejNq', | |
229 | + }, | |
230 | + }); | |
231 | + const url = res.data; | |
232 | + console.log('attachments' + JSON.stringify(url)); | |
233 | + form.setFieldValue('attachments', url); | |
234 | + } else { | |
235 | + form.setFieldValue('attachments', null); | |
236 | + } | |
237 | + }; | |
238 | + uploadFile(info); | |
239 | + }} | |
240 | + max={1} | |
241 | + /> | |
242 | + <a hidden={!optType[type].readOnly} href={data?.attachments} download> | |
243 | + 下载附件 | |
244 | + </a> | |
245 | + <ProFormText | |
246 | + initialValue={data?.attachments} | |
247 | + name="attachments" | |
248 | + hidden | |
249 | + ></ProFormText> | |
250 | + <ProFormText initialValue={data?.id} name="id" hidden></ProFormText> | |
251 | + </ModalForm> | |
252 | + ); | |
253 | +}; | ... | ... |
src/pages/Client/FollowRecord/Components/CommunicationHistoryModal.tsx
0 → 100644
1 | +import ClientModal from '@/pages/Client/FollowRecord/Components/ClientModal'; | |
2 | +import { | |
3 | + postAdminClientQueryClientComunicationInfo, | |
4 | + postAdminClientRemoveClientComunicationInfo, | |
5 | +} from '@/services/request'; | |
6 | +import { ModalForm } from '@ant-design/pro-components'; | |
7 | +import { Button, Descriptions, Space } from 'antd'; | |
8 | +import { useEffect, useRef, useState } from 'react'; | |
9 | + | |
10 | +export default ({ data, reloadTable }) => { | |
11 | + console.log(data, '5656datafirstshowgenjin'); | |
12 | + | |
13 | + // const [isModalVisible, setIsModalVisible] = useState(false); // 控制 ClientModal 的显示 | |
14 | + const actionRef = useRef(); // 引用 actionRef,方便调用 reload 方法 | |
15 | + | |
16 | + const [datetime, setDatetime] = useState(); // 跟进日期 | |
17 | + const [createByName, setCreateByName] = useState(''); // 跟进人员 | |
18 | + const [clientName, setClientName] = useState(''); // 客户名称 | |
19 | + // const [clientAddress, setClientAddress] = useState(''); // 客户地址 | |
20 | + const [way, setWay] = useState(); // 类型 | |
21 | + // const [clientNameLike, setClientNameLike] = useState(''); // 客户名称模糊查询 | |
22 | + // const [clientAddressLike, setClientAddressLike] = useState(''); // 客户地址模糊查询 | |
23 | + // const [tradeStatus, setTradeStatus] = useState(''); // 客户状态 | |
24 | + // const [tradeStatusLike, setTradeStatusLike] = useState(''); // 客户状态模糊查询 | |
25 | + const [content, setContent] = useState(''); // 跟进详情 | |
26 | + const [createTime, setCreateTime] = useState(null); // 创建时间 | |
27 | + const [attachments, setAttachments] = useState(); //附件 | |
28 | + const [attachmentsName, setAttachmentsName] = useState(''); // 附件名称 | |
29 | + | |
30 | + useEffect(() => { | |
31 | + const request = async () => { | |
32 | + console.log(data, '5656datasearch'); | |
33 | + const res = await postAdminClientQueryClientComunicationInfo({ | |
34 | + data: { | |
35 | + id: data.id, | |
36 | + }, | |
37 | + }); | |
38 | + console.log(res, '5656res'); | |
39 | + const dataSearch = res.data.data[0]; | |
40 | + if (dataSearch) { | |
41 | + if (dataSearch.attachments) { | |
42 | + const url = dataSearch.attachments; | |
43 | + const match = url.match(/aliyuncs\.com\/(.*?)\?/); | |
44 | + let decodedStr = ''; | |
45 | + | |
46 | + if (match) { | |
47 | + // 获取匹配的字符串并进行解码 | |
48 | + const encodedStr = match[1]; | |
49 | + decodedStr = decodeURIComponent(encodedStr); | |
50 | + setAttachmentsName(decodedStr); // 设置跟进日期 | |
51 | + } | |
52 | + } | |
53 | + setDatetime(dataSearch.datetime); // 设置跟进日期 | |
54 | + // setDateRange(data.dateRange || []); // 设置跟进时间范围 | |
55 | + setCreateByName(dataSearch.createByName); // 设置跟进人员 | |
56 | + setClientName(dataSearch.clientName); // 设置客户名称 | |
57 | + // setClientAddress(data.clientAddress || ''); // 设置客户地址 | |
58 | + // setClientNameLike(data.clientNameLike || ''); // 设置客户名称模糊查询 | |
59 | + // setClientAddressLike(data.clientAddressLike || ''); // 设置客户地址模糊查询 | |
60 | + // setTradeStatus(data.tradeStatus || ''); // 设置客户状态 | |
61 | + // setTradeStatusLike(data.tradeStatusLike || ''); // 设置客户状态模糊查询 | |
62 | + setContent(dataSearch.content); // 设置跟进详情 | |
63 | + setCreateTime(dataSearch.createTime); // 设置创建时间 | |
64 | + setWay(dataSearch.wayText); | |
65 | + setAttachments(dataSearch.attachments); | |
66 | + } | |
67 | + console.log(attachments, '5656attachments'); | |
68 | + }; | |
69 | + request(); | |
70 | + }, []); | |
71 | + const items = [ | |
72 | + { | |
73 | + key: '1', | |
74 | + label: '跟进日期', | |
75 | + children: datetime, // 跟进日期 | |
76 | + }, | |
77 | + { | |
78 | + key: '2', | |
79 | + label: '跟进人员', | |
80 | + children: createByName, // 跟进人员 | |
81 | + }, | |
82 | + { | |
83 | + key: '3', | |
84 | + label: '客户名称', | |
85 | + children: clientName, // 客户名称 | |
86 | + }, | |
87 | + { | |
88 | + key: '4', | |
89 | + label: '跟进详情', | |
90 | + children: content, // 跟进详情 | |
91 | + }, | |
92 | + { | |
93 | + key: '5', | |
94 | + label: '创建时间', | |
95 | + children: createTime, // 创建时间 | |
96 | + }, | |
97 | + { | |
98 | + key: '6', | |
99 | + label: '跟进类型', | |
100 | + children: way, // 跟进类型 | |
101 | + }, | |
102 | + ]; | |
103 | + const handleDelete = async () => { | |
104 | + console.log(JSON.stringify(data), '5656record'); | |
105 | + // 调用删除接口 | |
106 | + const success = await postAdminClientRemoveClientComunicationInfo({ | |
107 | + query: { | |
108 | + id: data.id, | |
109 | + }, | |
110 | + }); | |
111 | + // setIsModalVisible(false); | |
112 | + if (success) { | |
113 | + actionRef?.current?.reload(); // 重新加载表格数据 | |
114 | + } | |
115 | + }; | |
116 | + return ( | |
117 | + <Space> | |
118 | + <ModalForm | |
119 | + title="跟进记录" | |
120 | + trigger={<Button type="link">查看</Button>} | |
121 | + submitter={{ | |
122 | + resetButtonProps: { | |
123 | + style: { | |
124 | + display: 'none', | |
125 | + }, | |
126 | + }, | |
127 | + submitButtonProps: { | |
128 | + style: { | |
129 | + display: 'none', | |
130 | + }, | |
131 | + }, | |
132 | + render: (props, defaultDoms) => { | |
133 | + return [ | |
134 | + ...defaultDoms, | |
135 | + <> | |
136 | + <ClientModal | |
137 | + key={'modify'} | |
138 | + data={data} // 将表单数据传递给 ClientModal | |
139 | + reloadTable={() => { | |
140 | + actionRef?.current?.reload(); // 重新加载表格数据 | |
141 | + props.submit(); | |
142 | + reloadTable(); | |
143 | + console.log('5656close'); | |
144 | + }} | |
145 | + type={'modify'} | |
146 | + onFinish={() => { | |
147 | + // setIsModalVisible(false); | |
148 | + }} // 关闭 Modal | |
149 | + style={{ marginRight: '10px' }} | |
150 | + /> | |
151 | + <Button | |
152 | + key={'delete'} | |
153 | + onClick={() => { | |
154 | + handleDelete(); | |
155 | + props.submit(); | |
156 | + reloadTable(); | |
157 | + }} | |
158 | + type="primary" | |
159 | + size="middle" | |
160 | + danger // 使用 danger 属性来将按钮颜色设置为红色 | |
161 | + style={{ marginLeft: '10px' }} | |
162 | + onFinish={() => { | |
163 | + actionRef.current.reload(); | |
164 | + }} | |
165 | + > | |
166 | + 删除 | |
167 | + </Button> | |
168 | + </>, | |
169 | + ]; | |
170 | + }, | |
171 | + }} | |
172 | + onFinish={async () => { | |
173 | + // 提交成功后,显示 ClientDrawer | |
174 | + // setIsModalVisible(true); | |
175 | + return true; | |
176 | + }} | |
177 | + > | |
178 | + <Descriptions items={items} column={1} /> | |
179 | + {attachmentsName && ( | |
180 | + <a href={attachments} download> | |
181 | + 附件:{attachmentsName} | |
182 | + </a> | |
183 | + )} | |
184 | + </ModalForm> | |
185 | + </Space> | |
186 | + ); | |
187 | +}; | ... | ... |
src/pages/Client/FollowRecord/index.tsx
0 → 100644
1 | +import { RESPONSE_CODE } from '@/constants/enum'; | |
2 | +import ClientModal from '@/pages/Client/FollowRecord/Components/ClientModal'; | |
3 | +import CommunicationHistoryModal from '@/pages/Client/FollowRecord/Components/CommunicationHistoryModal'; | |
4 | +import { | |
5 | + postAdminClientQueryClientComunicationInfo, | |
6 | + postAdminClientRemoveClientComunicationInfo, | |
7 | + postServiceConstClientWay, | |
8 | + postServiceConstTradeStatus, | |
9 | +} from '@/services'; | |
10 | +import { enumToSelect } from '@/utils'; | |
11 | +import type { ActionType } from '@ant-design/pro-components'; | |
12 | +import { ProTable } from '@ant-design/pro-components'; | |
13 | +import { Button, Space, message } from 'antd'; | |
14 | +import { useRef, useState } from 'react'; | |
15 | + | |
16 | +export default () => { | |
17 | + const actionRef = useRef<ActionType>(); | |
18 | + const [refreshKey, setRefreshKey] = useState(0); // 用于强制刷新的键 | |
19 | + | |
20 | + const reload = () => { | |
21 | + actionRef.current.reload(); // 重新加载数据 | |
22 | + console.log('5656flush'); | |
23 | + | |
24 | + // 更新 refreshKey,强制刷新 CommunicationHistoryModal | |
25 | + setRefreshKey((prevKey) => prevKey + 1); | |
26 | + }; | |
27 | + //biaoji | |
28 | + const columns = [ | |
29 | + { | |
30 | + title: '跟进日期', | |
31 | + key: 'datetime', | |
32 | + width: 150, | |
33 | + ellipsis: true, | |
34 | + dataIndex: 'datetime', | |
35 | + valueType: 'dateTime', | |
36 | + hideInSearch: true, | |
37 | + // search: { | |
38 | + // transform: (value) => { | |
39 | + // if (value) { | |
40 | + // return { | |
41 | + // createTimeGe: value[0], | |
42 | + // createTimeLe: value[1], | |
43 | + // }; | |
44 | + // } | |
45 | + // }, | |
46 | + // }, | |
47 | + }, | |
48 | + { | |
49 | + title: '跟进时间', | |
50 | + dataIndex: 'dateRange', | |
51 | + valueType: 'dateRange', | |
52 | + hideInTable: true, | |
53 | + search: { | |
54 | + transform: (value) => { | |
55 | + if (value) { | |
56 | + return { | |
57 | + dateTimeGe: value[0], | |
58 | + dateTimeLe: value[1], | |
59 | + }; | |
60 | + } | |
61 | + }, | |
62 | + }, | |
63 | + }, | |
64 | + { | |
65 | + title: '跟进人员', | |
66 | + dataIndex: 'updateByName', | |
67 | + width: 100, | |
68 | + ellipsis: true, | |
69 | + hideInSearch: false, | |
70 | + }, | |
71 | + { | |
72 | + title: '客户名称', | |
73 | + dataIndex: 'clientName', | |
74 | + width: 150, | |
75 | + ellipsis: true, | |
76 | + hideInSearch: true, | |
77 | + }, | |
78 | + { | |
79 | + title: '客户地址', | |
80 | + dataIndex: 'clientAddress', | |
81 | + width: 250, | |
82 | + ellipsis: true, | |
83 | + hideInSearch: true, | |
84 | + }, | |
85 | + { | |
86 | + title: '跟进类型', | |
87 | + dataIndex: 'wayText', | |
88 | + width: 100, | |
89 | + ellipsis: true, | |
90 | + hideInSearch: true, | |
91 | + }, | |
92 | + { | |
93 | + title: '跟进类型', | |
94 | + dataIndex: 'way', | |
95 | + width: 100, | |
96 | + ellipsis: true, | |
97 | + hideInSearch: false, | |
98 | + hideInTable: true, | |
99 | + request: async () => { | |
100 | + const res = await postServiceConstClientWay(); | |
101 | + return enumToSelect(res.data); | |
102 | + }, | |
103 | + }, | |
104 | + { | |
105 | + title: '客户名称', | |
106 | + dataIndex: 'clientNameLike', | |
107 | + width: 150, | |
108 | + ellipsis: true, | |
109 | + hideInSearch: false, | |
110 | + hideInTable: true, | |
111 | + }, | |
112 | + { | |
113 | + title: '客户地址', | |
114 | + dataIndex: 'clientAddressLike', | |
115 | + width: 250, | |
116 | + ellipsis: true, | |
117 | + hideInSearch: false, | |
118 | + hideInTable: true, | |
119 | + }, | |
120 | + { | |
121 | + title: '客户状态', | |
122 | + dataIndex: 'tradeStatus', | |
123 | + width: 100, | |
124 | + ellipsis: true, | |
125 | + hideInSearch: true, | |
126 | + }, | |
127 | + { | |
128 | + title: '客户状态', | |
129 | + dataIndex: 'tradeStatusLike', | |
130 | + width: 100, | |
131 | + ellipsis: true, | |
132 | + hideInSearch: false, | |
133 | + hideInTable: true, | |
134 | + request: async () => { | |
135 | + const res = await postServiceConstTradeStatus(); | |
136 | + return enumToSelect(res.data); | |
137 | + }, | |
138 | + }, | |
139 | + { | |
140 | + title: '跟进详情', | |
141 | + dataIndex: 'content', | |
142 | + width: 250, | |
143 | + ellipsis: true, | |
144 | + hideInSearch: false, | |
145 | + }, | |
146 | + { | |
147 | + title: '创建时间', | |
148 | + dataIndex: 'createTime', | |
149 | + width: 150, | |
150 | + ellipsis: true, | |
151 | + hideInSearch: true, | |
152 | + }, | |
153 | + { | |
154 | + title: '附件', | |
155 | + dataIndex: 'attachments', | |
156 | + width: 150, | |
157 | + ellipsis: true, | |
158 | + hideInSearch: true, | |
159 | + hideInTable: true, | |
160 | + }, | |
161 | + { | |
162 | + title: '操作', | |
163 | + valueType: 'option', | |
164 | + key: 'option', | |
165 | + width: 150, | |
166 | + render: (text, record, index, action) => { | |
167 | + const handleDelete = async () => { | |
168 | + // console.log(JSON.stringify(record), '5656record'); | |
169 | + // 调用删除接口 | |
170 | + const success = await postAdminClientRemoveClientComunicationInfo({ | |
171 | + query: { | |
172 | + id: record.id, | |
173 | + }, | |
174 | + }); | |
175 | + if (success) { | |
176 | + action.reload(); // 刷新表格 | |
177 | + } | |
178 | + }; | |
179 | + return [ | |
180 | + <CommunicationHistoryModal | |
181 | + // key={'communicationHistory'} | |
182 | + key={`communicationHistory-${refreshKey}`} // 使用 refreshKey 来强制更新组件 | |
183 | + data={record} | |
184 | + // reloadTable={() => { | |
185 | + // actionRef.current.reload(); | |
186 | + // console.log('5656flush'); | |
187 | + // }} | |
188 | + reloadTable={reload} | |
189 | + />, | |
190 | + <> | |
191 | + <Button | |
192 | + key={'delete'} | |
193 | + onClick={() => { | |
194 | + handleDelete(); | |
195 | + actionRef.current.reload(); | |
196 | + }} | |
197 | + // reloadTable={() => { | |
198 | + // actionRef.current.reload(); | |
199 | + // }} | |
200 | + type="link" | |
201 | + size="middle" | |
202 | + // 使用 danger 属性来将按钮颜色设置为红色 | |
203 | + // onFinish={() => { | |
204 | + // actionRef.current.reload(); | |
205 | + // }} | |
206 | + > | |
207 | + 删除 | |
208 | + </Button> | |
209 | + </>, | |
210 | + ]; | |
211 | + }, | |
212 | + }, | |
213 | + ]; | |
214 | + | |
215 | + // useEffect(() => { | |
216 | + // const pullGroupFilterDataOptions = async () => { | |
217 | + // const res = await postServiceConstClientGroupFilters(); | |
218 | + // console.log('setGroupFilterDataOptions' + JSON.stringify(res.data)); | |
219 | + // setGroupFilterDataOptions(enumToSelect(res.data)); | |
220 | + // }; | |
221 | + // pullGroupFilterDataOptions(); | |
222 | + // }, []); | |
223 | + // useEffect(() => { | |
224 | + // actionRef.current?.reload(); | |
225 | + // }, [groupFilter]); | |
226 | + return ( | |
227 | + <> | |
228 | + <Space direction="vertical" size="middle" style={{ display: 'flex' }}> | |
229 | + <ProTable | |
230 | + columns={columns} | |
231 | + actionRef={actionRef} | |
232 | + cardBordered | |
233 | + request={async (params) => { | |
234 | + const res = await postAdminClientQueryClientComunicationInfo({ | |
235 | + data: { | |
236 | + ...params, | |
237 | + }, | |
238 | + }); | |
239 | + console.log(params, '5656566params'); | |
240 | + if (res.result === RESPONSE_CODE.SUCCESS) { | |
241 | + console.log(JSON.stringify(res.data)); | |
242 | + return { | |
243 | + ...res.data, | |
244 | + data: res.data.data.map((item) => { | |
245 | + return { | |
246 | + ...item, | |
247 | + tid: (Math.random() * 1000000).toFixed(0), | |
248 | + }; | |
249 | + }), | |
250 | + }; | |
251 | + } else { | |
252 | + message.error('获取失败'); | |
253 | + } | |
254 | + }} | |
255 | + search={{ | |
256 | + optionRender: (searchConfig, formProps, dom) => [...dom.reverse()], | |
257 | + }} | |
258 | + scroll={{ | |
259 | + x: 1400, | |
260 | + }} | |
261 | + editable={{ | |
262 | + type: 'multiple', | |
263 | + }} | |
264 | + columnsState={{ | |
265 | + persistenceKey: 'pro-table-singe-demos', | |
266 | + persistenceType: 'localStorage', | |
267 | + defaultValue: { | |
268 | + option: { fixed: 'right', disable: true }, | |
269 | + }, | |
270 | + onChange(value) { | |
271 | + console.log('value: ', value); | |
272 | + }, | |
273 | + }} | |
274 | + rowKey="id" | |
275 | + options={{ | |
276 | + setting: { | |
277 | + listsHeight: 400, | |
278 | + }, | |
279 | + }} | |
280 | + form={{ | |
281 | + // 由于配置了 transform,提交的参与与定义的不同这里需要转化一下 | |
282 | + syncToUrl: (values, type) => { | |
283 | + if (type === 'get') { | |
284 | + return { | |
285 | + ...values, | |
286 | + created_at: [values.startTime, values.endTime], | |
287 | + }; | |
288 | + } | |
289 | + return values; | |
290 | + }, | |
291 | + }} | |
292 | + pagination={{ | |
293 | + pageSize: 5, | |
294 | + onChange: (page) => console.log(page), | |
295 | + }} | |
296 | + dateFormatter="string" | |
297 | + headerTitle="高级表格" | |
298 | + toolBarRender={() => [ | |
299 | + <ClientModal | |
300 | + key={'add'} | |
301 | + reloadTable={() => { | |
302 | + actionRef.current.reload(); | |
303 | + }} | |
304 | + type={'add'} | |
305 | + />, | |
306 | + ]} | |
307 | + /> | |
308 | + </Space> | |
309 | + {/* {contextHolder} */} | |
310 | + </> | |
311 | + ); | |
312 | +}; | ... | ... |
src/pages/Invoice/InvoiceRecord/index.tsx
1 | +import ButtonConfirm from '@/components/ButtomConfirm'; | |
2 | +import { RESPONSE_CODE } from '@/constants/enum'; | |
1 | 3 | import InvoiceRecordDetailModal from '@/pages/Invoice/InvoiceRecord/components/InvoiceRecordDetailModal'; |
2 | 4 | import ManualInvoicingModal from '@/pages/Invoice/InvoiceRecord/components/ManualInvoicingModal'; |
3 | 5 | import { PAYEE_OPTIONS } from '@/pages/Order/constant'; |
... | ... | @@ -5,6 +7,7 @@ import { |
5 | 7 | postServiceBankStatementEditBankStatement, |
6 | 8 | postServiceConstAfterInvoicingInvoiceRecordStatus, |
7 | 9 | postServiceConstInvoiceType, |
10 | + postServiceInvoiceConfirmInvoice, | |
8 | 11 | postServiceInvoiceDownloadInvoice, |
9 | 12 | postServiceInvoiceInvoicing, |
10 | 13 | postServiceInvoiceQueryInvoiceRecordList, |
... | ... | @@ -371,6 +374,27 @@ const InvoiceRecord = () => { |
371 | 374 | ></ManualInvoicingModal> |
372 | 375 | )} |
373 | 376 | </>, |
377 | + <> | |
378 | + {record.paths?.includes('INVOICE_CONFIRM') && ( | |
379 | + <ButtonConfirm | |
380 | + key="delete" | |
381 | + className="p-0" | |
382 | + title={'确认发票?'} | |
383 | + text="确认发票" | |
384 | + onConfirm={async () => { | |
385 | + let res = await postServiceInvoiceConfirmInvoice({ | |
386 | + data: { invoiceIds: [record.invoice?.id] }, | |
387 | + }); | |
388 | + if (res.result === RESPONSE_CODE.SUCCESS) { | |
389 | + message.success(res.message); | |
390 | + processedRecordRef?.current?.reload(); | |
391 | + } else { | |
392 | + message.error(res.message); | |
393 | + } | |
394 | + }} | |
395 | + /> | |
396 | + )} | |
397 | + </>, | |
374 | 398 | ], |
375 | 399 | }, |
376 | 400 | ]; | ... | ... |
src/pages/Invoice/constant.tsx
... | ... | @@ -181,8 +181,7 @@ export const INVOICE_COLUMNS = [ |
181 | 181 | }, |
182 | 182 | { |
183 | 183 | title: '开票日期', |
184 | - dataIndex: 'invoicingTime', | |
185 | - valueType: 'date', | |
184 | + valueType: 'dateRange', | |
186 | 185 | width: 150, |
187 | 186 | hideInTable: true, |
188 | 187 | search: { |
... | ... | @@ -200,6 +199,13 @@ export const INVOICE_COLUMNS = [ |
200 | 199 | title: '收款时间', |
201 | 200 | dataIndex: 'collectionTime', |
202 | 201 | valueType: 'date', |
202 | + hideInSearch: true, | |
203 | + width: 200, | |
204 | + }, | |
205 | + { | |
206 | + title: '收款时间', | |
207 | + valueType: 'dateRange', | |
208 | + hideInTable: true, | |
203 | 209 | width: 200, |
204 | 210 | search: { |
205 | 211 | transform: (value) => { | ... | ... |
src/pages/Invoice/waitProcessRecord/components/ManualInvoicingModal.tsx
... | ... | @@ -49,12 +49,6 @@ export default ({ record }) => { |
49 | 49 | } |
50 | 50 | }} |
51 | 51 | > |
52 | - {/*<ProFormText | |
53 | - rules={[{ required: true, message: '此项为必填项' }]} | |
54 | - width={'md'} | |
55 | - name="invoicingPerson" | |
56 | - label="开票人" | |
57 | - />*/} | |
58 | 52 | <ProFormText |
59 | 53 | rules={[{ required: true, message: '此项为必填项' }]} |
60 | 54 | width={'md'} |
... | ... | @@ -99,33 +93,6 @@ export default ({ record }) => { |
99 | 93 | ></UploadC> |
100 | 94 | </Col> |
101 | 95 | </Row> |
102 | - {/*<ProFormList | |
103 | - name="invoiceDetailDtoList" | |
104 | - label="明细" | |
105 | - creatorButtonProps={false} | |
106 | - copyIconProps={false} | |
107 | - itemRender={({ listDom }, { index }) => ( | |
108 | - <ProCard | |
109 | - bordered | |
110 | - style={{ marginBlockEnd: 8 }} | |
111 | - title={`明细${index + 1}`} | |
112 | - bodyStyle={{ paddingBlockEnd: 0 }} | |
113 | - > | |
114 | - {listDom} | |
115 | - </ProCard> | |
116 | - )} | |
117 | - creatorRecord={{ name: '', items: [{ name: '' }] }} | |
118 | - initialValue={record.invoiceDetails} | |
119 | - > | |
120 | - <ProFormText | |
121 | - name="projectName" | |
122 | - label="名称" | |
123 | - placeholder="请输入名称" | |
124 | - readonly | |
125 | - /> | |
126 | - <ProFormDigit label="税率" name="taxRate" min={0} max={100} /> | |
127 | - <ProFormMoney label="税额" name="taxPrice" locale="zh-CN" min={0} /> | |
128 | - </ProFormList>*/} | |
129 | 96 | </ModalForm> |
130 | 97 | ); |
131 | 98 | }; | ... | ... |
src/pages/Invoice/waitProcessRecord/components/UploadSingleImg.tsx
1 | 1 | import { PlusOutlined } from '@ant-design/icons'; |
2 | 2 | import type { GetProp, UploadFile, UploadProps } from 'antd'; |
3 | 3 | import { Image, Upload } from 'antd'; |
4 | -import { useState } from 'react'; | |
4 | +import { useEffect, useState } from 'react'; | |
5 | 5 | |
6 | 6 | type FileType = Parameters<GetProp<UploadProps, 'beforeUpload'>>[0]; |
7 | 7 | |
... | ... | @@ -27,12 +27,48 @@ export default ({ onFilesChange }) => { |
27 | 27 | setPreviewOpen(true); |
28 | 28 | }; |
29 | 29 | |
30 | + const onPaste = async (e: ClipboardEvent) => { | |
31 | + const items = e.clipboardData.items; | |
32 | + | |
33 | + for (let i = 0; i < items.length; i++) { | |
34 | + const item = items[i]; | |
35 | + | |
36 | + // 检查是否为文件类型,并且类型是图片 | |
37 | + if (item.kind === 'file' && item.type.startsWith('image/')) { | |
38 | + const file = item.getAsFile(); | |
39 | + if (file) { | |
40 | + const newFile = { | |
41 | + uid: Date.now(), // 生成唯一的 uid | |
42 | + name: file.name, | |
43 | + status: 'done', | |
44 | + url: URL.createObjectURL(file), // 生成临时 URL | |
45 | + originFileObj: file, | |
46 | + }; | |
47 | + | |
48 | + // 更新 fileList | |
49 | + const newFileList = [...fileList, newFile]; | |
50 | + setFileList(newFileList); | |
51 | + onFilesChange(newFileList); | |
52 | + break; // 只处理第一个图片 | |
53 | + } | |
54 | + } | |
55 | + } | |
56 | + }; | |
57 | + | |
58 | + useEffect(() => { | |
59 | + document.addEventListener('paste', onPaste); | |
60 | + return () => { | |
61 | + document.removeEventListener('paste', onPaste); | |
62 | + }; | |
63 | + }, [fileList]); // 添加 fileList 依赖 | |
64 | + | |
30 | 65 | const uploadButton = ( |
31 | 66 | <button style={{ border: 0, background: 'none' }} type="button"> |
32 | 67 | <PlusOutlined /> |
33 | 68 | <div style={{ marginTop: 8 }}>Upload</div> |
34 | 69 | </button> |
35 | 70 | ); |
71 | + | |
36 | 72 | return ( |
37 | 73 | <> |
38 | 74 | <Upload |
... | ... | @@ -41,7 +77,6 @@ export default ({ onFilesChange }) => { |
41 | 77 | onPreview={handlePreview} |
42 | 78 | onChange={({ fileList: newFileList }) => { |
43 | 79 | setFileList(newFileList); |
44 | - console.log('file' + JSON.stringify(newFileList)); | |
45 | 80 | onFilesChange(newFileList); |
46 | 81 | }} |
47 | 82 | > | ... | ... |
src/pages/Order/Order/components/ConfirmReceiptModal.tsx
... | ... | @@ -107,8 +107,8 @@ export default ({ data, onClose }) => { |
107 | 107 | setPreviewOpen(true); |
108 | 108 | setPreviewTitle( |
109 | 109 | file.name || |
110 | - file.originFileObj?.name || | |
111 | - file.url!.substring(file.url!.lastIndexOf('/') + 1), | |
110 | + file.originFileObj?.name || | |
111 | + file.url!.substring(file.url!.lastIndexOf('/') + 1), | |
112 | 112 | ); |
113 | 113 | }; |
114 | 114 | ... | ... |
src/pages/Order/Order/components/DeliverModal.tsx
... | ... | @@ -260,7 +260,7 @@ const DeliverModal = ({ |
260 | 260 | serialNumber: item.serialNumber, |
261 | 261 | packageNumber: |
262 | 262 | item.packageNumber === null || |
263 | - item.packageNumber === undefined | |
263 | + item.packageNumber === undefined | |
264 | 264 | ? 1 |
265 | 265 | : item.packageNumber, |
266 | 266 | logisticsNotes: item.logisticsNotes, | ... | ... |
src/pages/Order/Order/components/FeedbackRegistrationModal.tsx
0 → 100644
1 | +import { postServiceOrderFeedbackRegistration } from '@/services/request'; | |
2 | +import { Input, Modal } from 'antd'; | |
3 | +import { useState } from 'react'; | |
4 | + | |
5 | +// import { cloneDeep } from 'lodash'; | |
6 | +export default ({ setVisible, subOrders, mainOrder, onClose }) => { | |
7 | + const [isModalOpen] = useState(true); | |
8 | + const { TextArea } = Input; | |
9 | + const [textValue, setTextValue] = useState(''); | |
10 | + | |
11 | + const handleOk = async () => { | |
12 | + console.log(subOrders, '5656subOrders', mainOrder); | |
13 | + await postServiceOrderFeedbackRegistration({ | |
14 | + data: { | |
15 | + id: subOrders[0].id, | |
16 | + feedbackRegistrationContent: textValue, | |
17 | + }, | |
18 | + }); | |
19 | + onClose(); | |
20 | + // setIsModalOpen(false); | |
21 | + // onClose(); | |
22 | + }; | |
23 | + const handleCancel = () => { | |
24 | + setVisible(false); | |
25 | + onClose(); | |
26 | + // setIsModalOpen(false); | |
27 | + // onClose(); | |
28 | + }; | |
29 | + const handleChange = (e) => { | |
30 | + setTextValue(e.target.value); | |
31 | + }; | |
32 | + return ( | |
33 | + <> | |
34 | + {/* <ModalForm<{ | |
35 | + filePaths: any; | |
36 | + }> | |
37 | + width={500} | |
38 | + open | |
39 | + title="回访登记" | |
40 | + form={form} | |
41 | + autoFocusFirstInput | |
42 | + modalProps={{ | |
43 | + okText: '提交', | |
44 | + cancelText: '取消', | |
45 | + destroyOnClose: true, | |
46 | + onCancel: () => { | |
47 | + setVisible(false); | |
48 | + }, | |
49 | + }} | |
50 | + onFinish={async () => { | |
51 | + onClose(); | |
52 | + }} | |
53 | + onOpenChange={setVisible} | |
54 | + > | |
55 | + <TextArea rows={6} placeholder="请输入" /> | |
56 | + </ModalForm> */} | |
57 | + <Modal | |
58 | + title="回访登记" | |
59 | + open={isModalOpen} | |
60 | + onOk={handleOk} | |
61 | + onCancel={handleCancel} | |
62 | + > | |
63 | + <TextArea | |
64 | + rows={6} | |
65 | + placeholder="请输入" | |
66 | + onChange={handleChange} | |
67 | + value={textValue} | |
68 | + /> | |
69 | + </Modal> | |
70 | + </> | |
71 | + ); | |
72 | +}; | ... | ... |
src/pages/Order/Order/components/FinancialDrawer.tsx
... | ... | @@ -144,107 +144,107 @@ export default ({ |
144 | 144 | |
145 | 145 | {invoicingStatus !== 'UN_INVOICE' |
146 | 146 | ? [ |
147 | - <ProFormDatePicker | |
148 | - key="invoicingTime" | |
149 | - width="lg" | |
150 | - name="invoicingTime" | |
151 | - label="开票时间" | |
152 | - disabled={isEdit} | |
153 | - rules={[ | |
154 | - { required: !isEdit ? true : false, message: '这是必填项' }, | |
155 | - ]} | |
156 | - initialValue={subOrders[0]?.invoicingTime} | |
157 | - />, | |
158 | - <ProFormText | |
159 | - key="purchaser" | |
160 | - width="lg" | |
161 | - name="purchaser" | |
162 | - label="抬头名称" | |
163 | - disabled={isEdit} | |
164 | - rules={[ | |
165 | - { required: !isEdit ? true : false, message: '这是必填项' }, | |
166 | - ]} | |
167 | - initialValue={subOrders[0]?.purchaser} | |
168 | - />, | |
169 | - <ProFormDatePicker | |
170 | - key="financialReceiptIssuanceTime" | |
171 | - width="lg" | |
172 | - name="financialReceiptIssuanceTime" | |
173 | - label="开收据时间" | |
174 | - initialValue={subOrders[0]?.financialReceiptIssuanceTime} | |
175 | - />, | |
176 | - <ProFormDatePicker | |
177 | - key="collectMoneyTime" | |
178 | - width="lg" | |
179 | - name="collectMoneyTime" | |
180 | - label="收款时间" | |
181 | - initialValue={subOrders[0]?.collectMoneyTime} | |
182 | - />, | |
183 | - <ProFormText | |
184 | - width="lg" | |
185 | - key="invoiceNumber" | |
186 | - name="invoiceNumber" | |
187 | - label="发票号码" | |
188 | - initialValue={subOrders[0]?.invoiceNumber} | |
189 | - rules={[{ required: true, message: '发票号码必填' }]} | |
190 | - />, | |
191 | - <div | |
192 | - key="salesChooseReceivingCompany" | |
193 | - hidden={subOrders[0].receivingCompany === null} | |
194 | - > | |
195 | - <span className={'pl-2 text-xs text-gray-400'}> | |
196 | - 销售申请开票时选择了: | |
197 | - {enumValueToLabel( | |
198 | - subOrders[0].receivingCompany, | |
199 | - getReceivingCompanyOptions(PAYEE_OPTIONS), | |
200 | - )} | |
201 | - </span> | |
202 | - <span | |
203 | - hidden={subOrders[0].receivingCompany === 'ANY'} | |
204 | - className={ | |
205 | - 'pl-2 text-xs text-[#1677ff] cursor-pointer hover:text-[#64abf7]' | |
206 | - } | |
207 | - onClick={() => { | |
208 | - chooseReceivingCompany(subOrders[0].receivingCompany); | |
209 | - }} | |
147 | + <ProFormDatePicker | |
148 | + key="invoicingTime" | |
149 | + width="lg" | |
150 | + name="invoicingTime" | |
151 | + label="开票时间" | |
152 | + disabled={isEdit} | |
153 | + rules={[ | |
154 | + { required: !isEdit ? true : false, message: '这是必填项' }, | |
155 | + ]} | |
156 | + initialValue={subOrders[0]?.invoicingTime} | |
157 | + />, | |
158 | + <ProFormText | |
159 | + key="purchaser" | |
160 | + width="lg" | |
161 | + name="purchaser" | |
162 | + label="抬头名称" | |
163 | + disabled={isEdit} | |
164 | + rules={[ | |
165 | + { required: !isEdit ? true : false, message: '这是必填项' }, | |
166 | + ]} | |
167 | + initialValue={subOrders[0]?.purchaser} | |
168 | + />, | |
169 | + <ProFormDatePicker | |
170 | + key="financialReceiptIssuanceTime" | |
171 | + width="lg" | |
172 | + name="financialReceiptIssuanceTime" | |
173 | + label="开收据时间" | |
174 | + initialValue={subOrders[0]?.financialReceiptIssuanceTime} | |
175 | + />, | |
176 | + <ProFormDatePicker | |
177 | + key="collectMoneyTime" | |
178 | + width="lg" | |
179 | + name="collectMoneyTime" | |
180 | + label="收款时间" | |
181 | + initialValue={subOrders[0]?.collectMoneyTime} | |
182 | + />, | |
183 | + <ProFormText | |
184 | + width="lg" | |
185 | + key="invoiceNumber" | |
186 | + name="invoiceNumber" | |
187 | + label="发票号码" | |
188 | + initialValue={subOrders[0]?.invoiceNumber} | |
189 | + rules={[{ required: true, message: '发票号码必填' }]} | |
190 | + />, | |
191 | + <div | |
192 | + key="salesChooseReceivingCompany" | |
193 | + hidden={subOrders[0].receivingCompany === null} | |
210 | 194 | > |
211 | - 选择 | |
212 | - </span> | |
213 | - </div>, | |
214 | - <ProFormSelect | |
215 | - key="payee" | |
216 | - placeholder="选择收款单位" | |
217 | - name="payee" | |
218 | - width="lg" | |
219 | - showSearch | |
220 | - label="收款单位" | |
221 | - options={enumToSelect(PAYEE_OPTIONS)} | |
222 | - initialValue={subOrders[0]?.payee} | |
223 | - rules={[{ required: true, message: '收款单位必填' }]} | |
224 | - />, | |
225 | - | |
226 | - <div id="total-payment" key="money"> | |
227 | - <ProFormDigit | |
228 | - key="money" | |
229 | - name="money" | |
195 | + <span className={'pl-2 text-xs text-gray-400'}> | |
196 | + 销售申请开票时选择了: | |
197 | + {enumValueToLabel( | |
198 | + subOrders[0].receivingCompany, | |
199 | + getReceivingCompanyOptions(PAYEE_OPTIONS), | |
200 | + )} | |
201 | + </span> | |
202 | + <span | |
203 | + hidden={subOrders[0].receivingCompany === 'ANY'} | |
204 | + className={ | |
205 | + 'pl-2 text-xs text-[#1677ff] cursor-pointer hover:text-[#64abf7]' | |
206 | + } | |
207 | + onClick={() => { | |
208 | + chooseReceivingCompany(subOrders[0].receivingCompany); | |
209 | + }} | |
210 | + > | |
211 | + 选择 | |
212 | + </span> | |
213 | + </div>, | |
214 | + <ProFormSelect | |
215 | + key="payee" | |
216 | + placeholder="选择收款单位" | |
217 | + name="payee" | |
230 | 218 | width="lg" |
231 | - label="金额" | |
232 | - rules={[{ required: true, message: '金额必填' }]} | |
233 | - tooltip="点击计算,合计所有子订单对应主订单总额" | |
234 | - fieldProps={{ | |
235 | - addonAfter: ( | |
236 | - <Button | |
237 | - className="rounded-l-none" | |
238 | - type="primary" | |
239 | - onClick={computeTotalPayment} | |
240 | - > | |
241 | - 计算 | |
242 | - </Button> | |
243 | - ), | |
244 | - }} | |
245 | - /> | |
246 | - </div>, | |
247 | - ] | |
219 | + showSearch | |
220 | + label="收款单位" | |
221 | + options={enumToSelect(PAYEE_OPTIONS)} | |
222 | + initialValue={subOrders[0]?.payee} | |
223 | + rules={[{ required: true, message: '收款单位必填' }]} | |
224 | + />, | |
225 | + | |
226 | + <div id="total-payment" key="money"> | |
227 | + <ProFormDigit | |
228 | + key="money" | |
229 | + name="money" | |
230 | + width="lg" | |
231 | + label="金额" | |
232 | + rules={[{ required: true, message: '金额必填' }]} | |
233 | + tooltip="点击计算,合计所有子订单对应主订单总额" | |
234 | + fieldProps={{ | |
235 | + addonAfter: ( | |
236 | + <Button | |
237 | + className="rounded-l-none" | |
238 | + type="primary" | |
239 | + onClick={computeTotalPayment} | |
240 | + > | |
241 | + 计算 | |
242 | + </Button> | |
243 | + ), | |
244 | + }} | |
245 | + /> | |
246 | + </div>, | |
247 | + ] | |
248 | 248 | : ''} |
249 | 249 | |
250 | 250 | <ProFormSelect | ... | ... |
src/pages/Order/Order/components/FinancialEditDrawer.tsx
... | ... | @@ -130,24 +130,24 @@ export default ({ mainOrder, subOrders, setVisible, isMainOrder, onClose }) => { |
130 | 130 | width="lg" |
131 | 131 | name="financialReceiptIssuanceTime" |
132 | 132 | label="开收据时间" |
133 | - // rules={[ | |
134 | - // { | |
135 | - // required: !isMainOrder && invoicingStatus === 'UN_INVOICE', | |
136 | - // message: '开收据时间必填', | |
137 | - // }, | |
138 | - // ]} | |
133 | + // rules={[ | |
134 | + // { | |
135 | + // required: !isMainOrder && invoicingStatus === 'UN_INVOICE', | |
136 | + // message: '开收据时间必填', | |
137 | + // }, | |
138 | + // ]} | |
139 | 139 | /> |
140 | 140 | <ProFormDatePicker |
141 | 141 | key="collectMoneyTime" |
142 | 142 | width="lg" |
143 | 143 | name="collectMoneyTime" |
144 | 144 | label="收款时间" |
145 | - // rules={[ | |
146 | - // { | |
147 | - // required: !isMainOrder && invoicingStatus === 'UN_INVOICE', | |
148 | - // message: '收款时间必填', | |
149 | - // }, | |
150 | - // ]} | |
145 | + // rules={[ | |
146 | + // { | |
147 | + // required: !isMainOrder && invoicingStatus === 'UN_INVOICE', | |
148 | + // message: '收款时间必填', | |
149 | + // }, | |
150 | + // ]} | |
151 | 151 | /> |
152 | 152 | </DrawerForm> |
153 | 153 | ); | ... | ... |
src/pages/Order/Order/components/ImagesViewerModal.tsx
... | ... | @@ -3,7 +3,7 @@ import { Button, Divider, Image, Modal } from 'antd'; |
3 | 3 | import { useEffect, useState } from 'react'; |
4 | 4 | export default ({ setVisible, optType, onClose, orderRow }) => { |
5 | 5 | const [images, setImages] = useState<any[]>([]); |
6 | - const [title, setTitle] = useState("收货凭证"); | |
6 | + const [title, setTitle] = useState('收货凭证'); | |
7 | 7 | const handleOk = () => { |
8 | 8 | onClose(); |
9 | 9 | setVisible(false); |
... | ... | @@ -23,7 +23,7 @@ export default ({ setVisible, optType, onClose, orderRow }) => { |
23 | 23 | } |
24 | 24 | useEffect(() => { |
25 | 25 | if (optType === 'shippingReceipt') { |
26 | - setTitle("收货凭证"); | |
26 | + setTitle('收货凭证'); | |
27 | 27 | getImages(); |
28 | 28 | } else if (optType === 'paymentReceipt') { |
29 | 29 | let paymentReceiptsImagesList: any[] = []; |
... | ... | @@ -34,7 +34,6 @@ export default ({ setVisible, optType, onClose, orderRow }) => { |
34 | 34 | paymentReceiptsImagesList = [...new Set(paymentReceiptsImagesList)]; |
35 | 35 | setImages(paymentReceiptsImagesList); |
36 | 36 | } |
37 | - | |
38 | 37 | }, []); |
39 | 38 | |
40 | 39 | return ( | ... | ... |
src/pages/Order/Order/components/InvoicingDrawerForm.tsx
... | ... | @@ -93,7 +93,22 @@ export default ({ dataList, setVisible, mainOrder, onClose }) => { |
93 | 93 | document.body.removeChild(textarea); |
94 | 94 | } |
95 | 95 | } |
96 | - | |
96 | + // 定义一个计算总金额的函数 | |
97 | + const calculateTotalPrice = (index: number) => { | |
98 | + const invoiceDetails = form.getFieldValue('invoiceDetails'); | |
99 | + if (invoiceDetails && invoiceDetails[index]) { | |
100 | + const quantity = invoiceDetails[index].quantity || 0; | |
101 | + const price = invoiceDetails[index].price || 0; | |
102 | + const totalPrice = quantity * price; | |
103 | + const newInvoiceDetails = [...invoiceDetails]; | |
104 | + newInvoiceDetails[index] = { ...newInvoiceDetails[index], totalPrice }; | |
105 | + form.setFieldsValue({ invoiceDetails: newInvoiceDetails }); | |
106 | + } | |
107 | + const totalPrice = invoiceDetails.reduce((accumulator, currentValue) => { | |
108 | + return FloatAdd(accumulator, currentValue.quantity * currentValue.price); | |
109 | + }, 0); | |
110 | + form.setFieldValue('price', totalPrice); | |
111 | + }; | |
97 | 112 | useEffect(() => {}, []); |
98 | 113 | return ( |
99 | 114 | <DrawerForm |
... | ... | @@ -519,12 +534,6 @@ export default ({ dataList, setVisible, mainOrder, onClose }) => { |
519 | 534 | ]} |
520 | 535 | placeholder="请输入名称" |
521 | 536 | /> |
522 | - <ProFormText | |
523 | - key={'unit' + listMeta.index} | |
524 | - name="unit" | |
525 | - label="单位" | |
526 | - placeholder="请输入名称" | |
527 | - /> | |
528 | 537 | <ProFormDigit |
529 | 538 | key={'quantity' + listMeta.index} |
530 | 539 | label="数量" |
... | ... | @@ -539,7 +548,9 @@ export default ({ dataList, setVisible, mainOrder, onClose }) => { |
539 | 548 | }, |
540 | 549 | }, |
541 | 550 | ]} |
551 | + onChange={() => calculateTotalPrice(listMeta.index)} | |
542 | 552 | /> |
553 | + | |
543 | 554 | <ProFormDigit |
544 | 555 | key={'price' + listMeta.index} |
545 | 556 | label="单价" |
... | ... | @@ -554,23 +565,13 @@ export default ({ dataList, setVisible, mainOrder, onClose }) => { |
554 | 565 | }, |
555 | 566 | }, |
556 | 567 | ]} |
568 | + onChange={() => calculateTotalPrice(listMeta.index)} | |
557 | 569 | /> |
570 | + | |
558 | 571 | <ProFormMoney |
559 | 572 | key={'totalPrice' + listMeta.index} |
560 | 573 | label="金额" |
561 | 574 | name="totalPrice" |
562 | - onChange={() => { | |
563 | - const invoiceDetails = form.getFieldValue('invoiceDetails'); | |
564 | - console.log('invoiceDetails', invoiceDetails); | |
565 | - const totalPrice = invoiceDetails.reduce( | |
566 | - (accumulator, currentValue) => { | |
567 | - return FloatAdd(accumulator, currentValue.totalPrice); | |
568 | - }, | |
569 | - 0, | |
570 | - ); | |
571 | - console.log('totalPrice', totalPrice); | |
572 | - form.setFieldValue('price', totalPrice); | |
573 | - }} | |
574 | 575 | rules={[ |
575 | 576 | { |
576 | 577 | validator: (_, value) => { |
... | ... | @@ -581,6 +582,7 @@ export default ({ dataList, setVisible, mainOrder, onClose }) => { |
581 | 582 | }, |
582 | 583 | }, |
583 | 584 | ]} |
585 | + readonly={true} | |
584 | 586 | locale="zh-CN" |
585 | 587 | /> |
586 | 588 | </ProCard> | ... | ... |
src/pages/Order/Order/components/ModifiedDiffModal.tsx
... | ... | @@ -106,7 +106,7 @@ export default ({ setVisible, subOrders, mainOrder, onClose }) => { |
106 | 106 | onClick={() => { |
107 | 107 | window.open( |
108 | 108 | '/previewApi/onlinePreview?url=' + |
109 | - encodeURIComponent(Base64.encode(item)), | |
109 | + encodeURIComponent(Base64.encode(item)), | |
110 | 110 | ); |
111 | 111 | }} |
112 | 112 | > | ... | ... |
src/pages/Order/Order/components/OrderDrawer copy.tsx
... | ... | @@ -554,7 +554,7 @@ export default ({ onClose, data, subOrders, orderOptType }) => { |
554 | 554 | onChange={(_, option) => { |
555 | 555 | autoFillSalesInfo(option); |
556 | 556 | }} |
557 | - // disabled={mainInfoDisbled} | |
557 | + // disabled={mainInfoDisbled} | |
558 | 558 | /> |
559 | 559 | |
560 | 560 | <ProFormText |
... | ... | @@ -642,7 +642,7 @@ export default ({ onClose, data, subOrders, orderOptType }) => { |
642 | 642 | }, |
643 | 643 | }} |
644 | 644 | debounceTime={1000} |
645 | - request={async (value, { }) => { | |
645 | + request={async (value, {}) => { | |
646 | 646 | const keywords = value.keyWords; |
647 | 647 | const res = await postKingdeeRepCustomer({ |
648 | 648 | data: { search: keywords }, |
... | ... | @@ -740,7 +740,7 @@ export default ({ onClose, data, subOrders, orderOptType }) => { |
740 | 740 | </Button> |
741 | 741 | ), |
742 | 742 | }} |
743 | - // disabled={mainInfoDisbled} | |
743 | + // disabled={mainInfoDisbled} | |
744 | 744 | /> |
745 | 745 | </div> |
746 | 746 | |
... | ... | @@ -752,7 +752,7 @@ export default ({ onClose, data, subOrders, orderOptType }) => { |
752 | 752 | label="支付渠道" |
753 | 753 | options={enumToSelect(PAYMENT_CHANNEL_OPTIONS)} |
754 | 754 | rules={[{ required: true, message: '支付渠道必填' }]} |
755 | - // disabled={mainInfoDisbled} | |
755 | + // disabled={mainInfoDisbled} | |
756 | 756 | /> |
757 | 757 | <ProFormSelect |
758 | 758 | placeholder="请输入支付方式" |
... | ... | @@ -762,7 +762,7 @@ export default ({ onClose, data, subOrders, orderOptType }) => { |
762 | 762 | label="支付方式" |
763 | 763 | options={enumToSelect(PAYMENT_METHOD_OPTIONS)} |
764 | 764 | rules={[{ required: true, message: '支付方式必填' }]} |
765 | - // disabled={mainInfoDisbled} | |
765 | + // disabled={mainInfoDisbled} | |
766 | 766 | /> |
767 | 767 | <ProFormSelect |
768 | 768 | placeholder="选择是否需要开票" |
... | ... | @@ -1094,7 +1094,7 @@ export default ({ onClose, data, subOrders, orderOptType }) => { |
1094 | 1094 | options={enumToSelect(PRODUCT_BELONG_DEPARTMENT_OPTIONS)} |
1095 | 1095 | initialValue={'EXPERIMENTAL_CONSUMABLES'} |
1096 | 1096 | rules={[{ required: true, message: '所属事业部必填' }]} |
1097 | - // disabled={mainInfoDisbled} | |
1097 | + // disabled={mainInfoDisbled} | |
1098 | 1098 | />, |
1099 | 1099 | <ProFormTextArea |
1100 | 1100 | key={'notes' + listMeta.index} | ... | ... |
src/pages/Order/Order/components/OrderDrawer.tsx
... | ... | @@ -557,9 +557,9 @@ export default ({ onClose, data, subOrders, orderOptType }) => { |
557 | 557 | form.setFieldValue( |
558 | 558 | 'customerShippingAddress', |
559 | 559 | getDefaultString(option.province) + |
560 | - getDefaultString(option.city) + | |
561 | - getDefaultString(option.district) + | |
562 | - getDefaultString(option.detail), | |
560 | + getDefaultString(option.city) + | |
561 | + getDefaultString(option.district) + | |
562 | + getDefaultString(option.detail), | |
563 | 563 | ); |
564 | 564 | form.setFieldValue('customerNameString', option.realName); |
565 | 565 | |
... | ... | @@ -642,11 +642,11 @@ export default ({ onClose, data, subOrders, orderOptType }) => { |
642 | 642 | |
643 | 643 | message.error( |
644 | 644 | '用户余额不足,当前预减的金额为:' + |
645 | - data.subPrice + | |
646 | - ',当前账号余额为:' + | |
647 | - data.nowMoney + | |
648 | - ',当前账号可赊账额度为:' + | |
649 | - data.creditLimit, | |
645 | + data.subPrice + | |
646 | + ',当前账号余额为:' + | |
647 | + data.nowMoney + | |
648 | + ',当前账号可赊账额度为:' + | |
649 | + data.creditLimit, | |
650 | 650 | ); |
651 | 651 | return false; |
652 | 652 | } |
... | ... | @@ -1111,7 +1111,7 @@ export default ({ onClose, data, subOrders, orderOptType }) => { |
1111 | 1111 | }, |
1112 | 1112 | }} |
1113 | 1113 | debounceTime={1000} |
1114 | - request={async (value, { }) => { | |
1114 | + request={async (value, {}) => { | |
1115 | 1115 | const keywords = value.keyWords; |
1116 | 1116 | if (keywords === '') { |
1117 | 1117 | return []; |
... | ... | @@ -1867,7 +1867,7 @@ export default ({ onClose, data, subOrders, orderOptType }) => { |
1867 | 1867 | placeholder="请输入商品参数" |
1868 | 1868 | disabled={ |
1869 | 1869 | productParametersDisabledFlagList[listMeta.index] !== |
1870 | - false || optType('after-sales-check') | |
1870 | + false || optType('after-sales-check') | |
1871 | 1871 | } |
1872 | 1872 | />, |
1873 | 1873 | <ProFormDigit |
... | ... | @@ -1920,7 +1920,7 @@ export default ({ onClose, data, subOrders, orderOptType }) => { |
1920 | 1920 | placeholder="请输入商品单位" |
1921 | 1921 | disabled={ |
1922 | 1922 | productParametersDisabledFlagList[listMeta.index] !== |
1923 | - false || optType('after-sales-check') | |
1923 | + false || optType('after-sales-check') | |
1924 | 1924 | } |
1925 | 1925 | rules={[{ required: true, message: '商品单位必填' }]} |
1926 | 1926 | />, | ... | ... |
src/pages/Order/Order/components/UploadPayBillModal.tsx
1 | +import { RESPONSE_CODE } from '@/constants/enum'; | |
2 | +import { | |
3 | + postServiceOrderFileProcess, | |
4 | + postServiceOrderUploadPaymentReceipt, | |
5 | +} from '@/services'; | |
6 | +import { transImageFile } from '@/utils'; | |
7 | +import { PlusOutlined } from '@ant-design/icons'; | |
1 | 8 | import { ModalForm } from '@ant-design/pro-components'; |
2 | 9 | import { Form, Modal, Upload, UploadFile, UploadProps, message } from 'antd'; |
3 | 10 | import { RcFile } from 'antd/lib/upload'; |
4 | 11 | import { cloneDeep } from 'lodash'; |
5 | 12 | import { useEffect, useRef, useState } from 'react'; |
6 | 13 | import { COMFIR_RECEIPT_IMAGES_NUMBER } from '../../constant'; |
7 | -import { PlusOutlined } from '@ant-design/icons'; | |
8 | -import { transImageFile } from '@/utils'; | |
9 | -import { postServiceOrderFileProcess, postServiceOrderUploadPaymentReceipt } from '@/services'; | |
10 | -import { RESPONSE_CODE } from '@/constants/enum'; | |
11 | 14 | |
12 | 15 | // import { cloneDeep } from 'lodash'; |
13 | 16 | export default ({ setVisible, subOrders, mainOrder, onClose }) => { |
... | ... | @@ -25,7 +28,9 @@ export default ({ setVisible, subOrders, mainOrder, onClose }) => { |
25 | 28 | reader.onerror = (error) => reject(error); |
26 | 29 | }); |
27 | 30 | |
28 | - const subOrderIds = subOrders?.map((item: any) => { return item.id }); | |
31 | + const subOrderIds = subOrders?.map((item: any) => { | |
32 | + return item.id; | |
33 | + }); | |
29 | 34 | const fileListObj = useRef<UploadFile[]>([]); //使用引用类型,使得在useEffect里面设置监听事件后,不用更新监听事件也能保持obj与外界一致 |
30 | 35 | const handleBeforeUpload = (file: any) => { |
31 | 36 | setFileList([...fileList, file]); |
... | ... | @@ -80,6 +85,7 @@ export default ({ setVisible, subOrders, mainOrder, onClose }) => { |
80 | 85 | |
81 | 86 | if (filteredArray.length >= COMFIR_RECEIPT_IMAGES_NUMBER) { |
82 | 87 | message.info('发货照片数量不能超过3'); |
88 | + console.log(mainOrder); | |
83 | 89 | return; |
84 | 90 | } |
85 | 91 | fileListObj.current = filteredArray; |
... | ... | @@ -105,8 +111,8 @@ export default ({ setVisible, subOrders, mainOrder, onClose }) => { |
105 | 111 | setPreviewOpen(true); |
106 | 112 | setPreviewTitle( |
107 | 113 | file.name || |
108 | - file.originFileObj?.name || | |
109 | - file.url!.substring(file.url!.lastIndexOf('/') + 1), | |
114 | + file.originFileObj?.name || | |
115 | + file.url!.substring(file.url!.lastIndexOf('/') + 1), | |
110 | 116 | ); |
111 | 117 | }; |
112 | 118 | const props: UploadProps = { |
... | ... | @@ -128,7 +134,6 @@ export default ({ setVisible, subOrders, mainOrder, onClose }) => { |
128 | 134 | }; |
129 | 135 | |
130 | 136 | useEffect(() => { |
131 | - | |
132 | 137 | document.addEventListener('paste', onPaste); |
133 | 138 | return () => { |
134 | 139 | document.removeEventListener('paste', onPaste); |
... | ... | @@ -211,14 +216,9 @@ export default ({ setVisible, subOrders, mainOrder, onClose }) => { |
211 | 216 | }} |
212 | 217 | onOpenChange={setVisible} |
213 | 218 | > |
214 | - | |
215 | - <div className="pb-4 text-xs decoration-gray-50"> | |
216 | - 可复制照片粘贴 | |
217 | - </div> | |
219 | + <div className="pb-4 text-xs decoration-gray-50">可复制照片粘贴</div> | |
218 | 220 | <Upload {...props}> |
219 | - {fileList.length < COMFIR_RECEIPT_IMAGES_NUMBER | |
220 | - ? uploadButton | |
221 | - : ''} | |
221 | + {fileList.length < COMFIR_RECEIPT_IMAGES_NUMBER ? uploadButton : ''} | |
222 | 222 | </Upload> |
223 | 223 | </ModalForm> |
224 | 224 | ... | ... |
src/pages/Order/Order/index.css
1 | 1 | .order-page-container .ant-table .ant-table-middle { |
2 | 2 | margin-inline: 0 !important; |
3 | 3 | } |
4 | + | |
4 | 5 | .order-page-container td { |
5 | - font-family: 'San Francisco', 'Helvetica Neue', Helvetica, Arial, 'Microsoft YaHei', 'PingFang SC', 'Hiragino Sans GB', 'Heiti SC', 'WenQuanYi Micro Hei', sans-serif; | |
6 | + font-family: 'San Francisco', 'Helvetica Neue', Helvetica, Arial, | |
7 | + 'Microsoft YaHei', 'PingFang SC', 'Hiragino Sans GB', 'Heiti SC', | |
8 | + 'WenQuanYi Micro Hei', sans-serif; | |
6 | 9 | font-size: 13px; |
7 | 10 | } |
11 | + | |
8 | 12 | #total-payment .ant-input-number-group-addon { |
9 | 13 | padding: 0 !important; |
10 | 14 | } |
15 | + | |
11 | 16 | .order-page-container table:hover, |
12 | 17 | .order-page-container tr:hover, |
13 | 18 | .order-page-container thead:hover { |
14 | 19 | background: none !important; |
15 | 20 | } |
21 | + | |
16 | 22 | #main-table .ant-table-tbody > tr.ant-table-row:hover > td { |
17 | 23 | background: none !important; |
18 | 24 | } |
25 | + | |
19 | 26 | .order-page-container .ant-pro-card { |
20 | 27 | background-color: transparent; |
21 | 28 | } |
29 | + | |
22 | 30 | #main-table .ant-table-tbody .ant-table-cell { |
23 | 31 | padding: 10px 0 0; |
24 | 32 | } |
33 | + | |
25 | 34 | .order-page-container .ant-pagination { |
26 | 35 | background-color: #fff !important; |
27 | 36 | padding: 10px; |
28 | 37 | border-radius: 8px; |
29 | 38 | } |
39 | + | |
30 | 40 | .order-page-container .ant-pro-table .ant-form { |
31 | 41 | background-color: #fff; |
32 | 42 | border-radius: 8px; |
33 | 43 | } |
44 | + | |
34 | 45 | #main-table .ant-table-tbody { |
35 | 46 | background-color: #f5f5f5; |
36 | 47 | } |
48 | + | |
37 | 49 | .order-page-container .ant-pro-card-body { |
38 | 50 | padding: 0 !important; |
39 | 51 | } |
52 | + | |
40 | 53 | .order-page-container .ant-table-thead .ant-table-cell { |
41 | 54 | background-color: #fff !important; |
42 | 55 | border-radius: 8px !important; |
43 | 56 | } |
57 | + | |
44 | 58 | #sub-table tbody td { |
45 | 59 | padding: 10px 0 !important; |
46 | 60 | } |
61 | + | |
47 | 62 | #sub-table tbody tr:first-child td:first-child { |
48 | 63 | border-top-left-radius: 8px; |
49 | 64 | } |
65 | + | |
50 | 66 | #sub-table tbody tr:first-child td:nth-child(2) { |
51 | 67 | border-top-right-radius: 8px; |
52 | 68 | } |
69 | + | |
53 | 70 | #sub-table tbody tr:last-child td:first-child { |
54 | 71 | border-bottom-left-radius: 8px; |
55 | 72 | } |
73 | + | |
56 | 74 | #sub-table tbody tr:last-child td:nth-child(2) { |
57 | 75 | border-bottom-right-radius: 8px; |
58 | 76 | } |
77 | + | |
59 | 78 | #sub-table tbody tr td:first-child { |
60 | 79 | border-top: 1px solid #d7d6d6; |
80 | + | |
61 | 81 | /* 设置行与行之间分割线的颜色 */ |
62 | 82 | border-bottom: 1px solid #d7d6d6; |
83 | + | |
63 | 84 | /* 设置行与行之间分割线的颜色 */ |
64 | 85 | border-left: 1px solid #d7d6d6; |
86 | + | |
65 | 87 | /* 设置行与行之间分割线的颜色 */ |
66 | 88 | } |
89 | + | |
67 | 90 | #sub-table tbody tr td:nth-child(2) { |
68 | 91 | border-top: 1px solid #d7d6d6; |
92 | + | |
69 | 93 | /* 设置行与行之间分割线的颜色 */ |
70 | 94 | border-bottom: 1px solid #d7d6d6; |
95 | + | |
71 | 96 | /* 设置行与行之间分割线的颜色 */ |
72 | 97 | border-right: 1px solid #d7d6d6; |
98 | + | |
73 | 99 | /* 设置行与行之间分割线的颜色 */ |
74 | 100 | } | ... | ... |
src/pages/Order/Order/index.tsx
... | ... | @@ -111,6 +111,7 @@ import CheckModal from './components/CheckModal'; |
111 | 111 | import ConfirmReceiptModal from './components/ConfirmReceiptModal'; |
112 | 112 | import DeliverInfoDrawer from './components/DeliverInfoDrawer'; |
113 | 113 | import DeliverModal from './components/DeliverModal'; |
114 | +import FeedbackRegistrationModal from './components/FeedbackRegistrationModal'; | |
114 | 115 | import FinancialDrawer from './components/FinancialDrawer'; |
115 | 116 | import FinancialEditDrawer from './components/FinancialEditDrawer'; |
116 | 117 | import FinancialMergeDrawer from './components/FinancialMergeDrawer'; |
... | ... | @@ -146,6 +147,10 @@ const OrderPage = () => { |
146 | 147 | useState<boolean>(false); |
147 | 148 | const [uploadPayBillModalVisible, setUploadPayBillModalVisible] = |
148 | 149 | useState<boolean>(false); |
150 | + const [ | |
151 | + feedbackRegistrationModalVisible, | |
152 | + setFeedbackRegistrationModalVisible, | |
153 | + ] = useState<boolean>(false); | |
149 | 154 | const [modifiedDiffModalVisible, setModifiedDiffModalVisible] = |
150 | 155 | useState<boolean>(false); |
151 | 156 | const [financialReceiptsModalVisible, setFinancialReceiptsModalVisible] = |
... | ... | @@ -690,8 +695,6 @@ const OrderPage = () => { |
690 | 695 | * @param optRecord |
691 | 696 | */ |
692 | 697 | function getOrderStatusTag(optRecord: any): import('react').ReactNode { |
693 | - console.log(optRecord); | |
694 | - | |
695 | 698 | const orderStatus = optRecord.orderStatus; |
696 | 699 | const paymentMethod = optRecord.paymentMethod; |
697 | 700 | let orderStatusTagText = enumValueToLabel( |
... | ... | @@ -2095,6 +2098,20 @@ const OrderPage = () => { |
2095 | 2098 | ) : ( |
2096 | 2099 | '' |
2097 | 2100 | )} |
2101 | + {optRecord.paths?.includes('feedbackRegistration') ? ( | |
2102 | + <Button | |
2103 | + className="p-0" | |
2104 | + type="link" | |
2105 | + onClick={() => { | |
2106 | + createOptObject(optRecord.id, record.id); | |
2107 | + setFeedbackRegistrationModalVisible(true); | |
2108 | + }} | |
2109 | + > | |
2110 | + 回访登记 | |
2111 | + </Button> | |
2112 | + ) : ( | |
2113 | + '' | |
2114 | + )} | |
2098 | 2115 | |
2099 | 2116 | {optRecord.paths?.includes('confirmInvoice') ? ( |
2100 | 2117 | <ButtonConfirm |
... | ... | @@ -2316,6 +2333,31 @@ const OrderPage = () => { |
2316 | 2333 | ) : ( |
2317 | 2334 | '' |
2318 | 2335 | )} |
2336 | + | |
2337 | + {isAdmin() || isSales() ? ( | |
2338 | + <Flex title={optRecord.notes} className="pt-2"> | |
2339 | + <div className="flex items-center"> | |
2340 | + <div className="flex items-center max-w-[500px]"> | |
2341 | + <div className="max-w-md overflow-hidden whitespace-no-wrap overflow-ellipsis"> | |
2342 | + <Tooltip | |
2343 | + title={optRecord.feedbackRegistrationContent} | |
2344 | + placement="topLeft" | |
2345 | + > | |
2346 | + <span className="text-[#8C8C8C] mr-3"> | |
2347 | + 产品回访登记: | |
2348 | + {optRecord.feedbackRegistrationContent === undefined || | |
2349 | + optRecord.feedbackRegistrationContent === null | |
2350 | + ? '暂无' | |
2351 | + : optRecord.feedbackRegistrationContent} | |
2352 | + </span> | |
2353 | + </Tooltip> | |
2354 | + </div> | |
2355 | + </div> | |
2356 | + </div> | |
2357 | + </Flex> | |
2358 | + ) : ( | |
2359 | + '' | |
2360 | + )} | |
2319 | 2361 | </> |
2320 | 2362 | ); |
2321 | 2363 | }; |
... | ... | @@ -4548,11 +4590,15 @@ const OrderPage = () => { |
4548 | 4590 | |
4549 | 4591 | const [invoiceWarningNum, setInvoiceWarningNum] = useState(0); |
4550 | 4592 | const [invoiceRefundWarningNum, setInvoiceRefundWarningNum] = useState(0); |
4593 | + const [waitConfirmPayment, setWaitConfirmPayment] = useState(0); | |
4594 | + const [waitFeedback, setWaitFeedback] = useState(0); | |
4551 | 4595 | const [open, setOpen] = useState(false); |
4552 | 4596 | const { openCount, setOpenCount } = useModel('count'); |
4553 | 4597 | |
4554 | 4598 | async function getInvoiceWarningNum() { |
4555 | - const res = await postServiceOrderWarningOrderStatistics(); | |
4599 | + const res = await postServiceOrderWarningOrderStatistics({ | |
4600 | + data: {}, | |
4601 | + }); | |
4556 | 4602 | if ( |
4557 | 4603 | (res.data.waitConfirmInvoice !== 0 || |
4558 | 4604 | res.data.waitConfirmReceipt !== 0) && |
... | ... | @@ -4560,10 +4606,11 @@ const OrderPage = () => { |
4560 | 4606 | ) { |
4561 | 4607 | setOpenCount(true); |
4562 | 4608 | setOpen(true); |
4563 | - console.log(openCount, '5656openindex'); | |
4564 | 4609 | } |
4565 | 4610 | setInvoiceWarningNum(res.data.waitConfirmInvoice); |
4566 | 4611 | setInvoiceRefundWarningNum(res.data.waitConfirmReceipt); |
4612 | + setWaitConfirmPayment(res.data.waitConfirmPayment); | |
4613 | + setWaitFeedback(res.data.waitFeedback); | |
4567 | 4614 | } |
4568 | 4615 | |
4569 | 4616 | useEffect(() => { |
... | ... | @@ -4600,7 +4647,7 @@ const OrderPage = () => { |
4600 | 4647 | </Button>, |
4601 | 4648 | ]} |
4602 | 4649 | > |
4603 | - <Row | |
4650 | + {/* <Row | |
4604 | 4651 | gutter={16} |
4605 | 4652 | justify="space-between" // Aligns Cols to the start and end |
4606 | 4653 | align="middle" // Vertically center contents |
... | ... | @@ -4693,15 +4740,264 @@ const OrderPage = () => { |
4693 | 4740 | </Card> |
4694 | 4741 | </div> |
4695 | 4742 | </Col> |
4743 | + </Row> */} | |
4744 | + <Row | |
4745 | + gutter={16} | |
4746 | + justify="space-between" // Aligns Cols to the start and end | |
4747 | + align="middle" // Vertically center contents | |
4748 | + > | |
4749 | + {/* 新增卡片1: 待确认收货订单 */} | |
4750 | + <Col span={6}> | |
4751 | + {' '} | |
4752 | + {/* 修改位置:将 span 改为 6,以保证一行四个卡片 */} | |
4753 | + <div | |
4754 | + style={{ | |
4755 | + display: 'flex', | |
4756 | + justifyContent: 'center', | |
4757 | + marginTop: '20px', | |
4758 | + }} | |
4759 | + > | |
4760 | + <Card | |
4761 | + bordered={true} | |
4762 | + style={{ | |
4763 | + backgroundColor: '#f0f0f0', // 背景颜色 | |
4764 | + width: '200px', // 卡片宽度 | |
4765 | + height: '200px', // 卡片高度 | |
4766 | + display: 'flex', | |
4767 | + alignItems: 'center', | |
4768 | + justifyContent: 'center', | |
4769 | + }} | |
4770 | + > | |
4771 | + <div | |
4772 | + style={{ | |
4773 | + fontWeight: 'bold', // 字体加粗 | |
4774 | + color: 'black', // 字体颜色 | |
4775 | + fontSize: '18px', // 字体大小 | |
4776 | + }} | |
4777 | + > | |
4778 | + <div | |
4779 | + style={{ | |
4780 | + fontWeight: 'bold', // 字体加粗 | |
4781 | + color: 'black', // 字体颜色 | |
4782 | + fontSize: '40px', // 字体大小 | |
4783 | + justifyContent: 'center', | |
4784 | + display: 'flex', | |
4785 | + alignItems: 'center', | |
4786 | + marginBottom: '20px', | |
4787 | + }} | |
4788 | + > | |
4789 | + {invoiceRefundWarningNum} | |
4790 | + </div> | |
4791 | + 待确认收货订单 | |
4792 | + </div> | |
4793 | + </Card> | |
4794 | + </div> | |
4795 | + </Col> | |
4796 | + | |
4797 | + {/* 新增卡片2: 待回访登记订单 */} | |
4798 | + <Col span={6}> | |
4799 | + {' '} | |
4800 | + {/* 修改位置:将 span 改为 6,以保证一行四个卡片 */} | |
4801 | + <div | |
4802 | + style={{ | |
4803 | + display: 'flex', | |
4804 | + justifyContent: 'center', | |
4805 | + marginTop: '20px', | |
4806 | + }} | |
4807 | + > | |
4808 | + <Card | |
4809 | + bordered={true} | |
4810 | + style={{ | |
4811 | + backgroundColor: '#f0f0f0', // 背景颜色 | |
4812 | + width: '200px', // 卡片宽度 | |
4813 | + height: '200px', // 卡片高度 | |
4814 | + display: 'flex', | |
4815 | + alignItems: 'center', | |
4816 | + justifyContent: 'center', | |
4817 | + }} | |
4818 | + > | |
4819 | + <div | |
4820 | + style={{ | |
4821 | + fontWeight: 'bold', // 字体加粗 | |
4822 | + color: 'black', // 字体颜色 | |
4823 | + fontSize: '18px', // 字体大小 | |
4824 | + }} | |
4825 | + > | |
4826 | + <div | |
4827 | + style={{ | |
4828 | + fontWeight: 'bold', // 字体加粗 | |
4829 | + color: 'black', // 字体颜色 | |
4830 | + fontSize: '40px', // 字体大小 | |
4831 | + justifyContent: 'center', | |
4832 | + display: 'flex', | |
4833 | + alignItems: 'center', | |
4834 | + marginBottom: '20px', | |
4835 | + }} | |
4836 | + > | |
4837 | + {waitFeedback} | |
4838 | + </div> | |
4839 | + 待回访登记订单 | |
4840 | + </div> | |
4841 | + </Card> | |
4842 | + </div> | |
4843 | + </Col> | |
4844 | + | |
4845 | + {/* 现有卡片: 发票待确认订单 */} | |
4846 | + <Col span={6}> | |
4847 | + {' '} | |
4848 | + {/* 修改位置:将 span 改为 6,以保证一行四个卡片 */} | |
4849 | + <div | |
4850 | + style={{ | |
4851 | + display: 'flex', | |
4852 | + justifyContent: 'center', | |
4853 | + marginTop: '20px', | |
4854 | + }} | |
4855 | + > | |
4856 | + <Card | |
4857 | + bordered={true} | |
4858 | + style={{ | |
4859 | + backgroundColor: '#f0f0f0', // 背景颜色 | |
4860 | + width: '200px', // 卡片宽度 | |
4861 | + height: '200px', // 卡片高度 | |
4862 | + display: 'flex', | |
4863 | + alignItems: 'center', | |
4864 | + justifyContent: 'center', | |
4865 | + }} | |
4866 | + > | |
4867 | + <div | |
4868 | + style={{ | |
4869 | + fontWeight: 'bold', // 字体加粗 | |
4870 | + color: 'black', // 字体颜色 | |
4871 | + fontSize: '18px', // 字体大小 | |
4872 | + }} | |
4873 | + > | |
4874 | + <div | |
4875 | + style={{ | |
4876 | + fontWeight: 'bold', // 字体加粗 | |
4877 | + color: 'black', // 字体颜色 | |
4878 | + fontSize: '40px', // 字体大小 | |
4879 | + justifyContent: 'center', | |
4880 | + display: 'flex', | |
4881 | + alignItems: 'center', | |
4882 | + marginBottom: '20px', | |
4883 | + }} | |
4884 | + > | |
4885 | + {invoiceWarningNum} | |
4886 | + </div> | |
4887 | + 待确认发票订单 | |
4888 | + </div> | |
4889 | + </Card> | |
4890 | + </div> | |
4891 | + </Col> | |
4892 | + | |
4893 | + {/* 现有卡片: 回款待确认订单 */} | |
4894 | + <Col span={6}> | |
4895 | + {' '} | |
4896 | + {/* 修改位置:将 span 改为 6,以保证一行四个卡片 */} | |
4897 | + <div | |
4898 | + style={{ | |
4899 | + display: 'flex', | |
4900 | + justifyContent: 'center', | |
4901 | + marginTop: '20px', | |
4902 | + }} | |
4903 | + > | |
4904 | + <Card | |
4905 | + bordered={true} | |
4906 | + style={{ | |
4907 | + backgroundColor: '#f0f0f0', // 背景颜色 | |
4908 | + width: '200px', // 卡片宽度 | |
4909 | + height: '200px', // 卡片高度 | |
4910 | + display: 'flex', | |
4911 | + alignItems: 'center', | |
4912 | + justifyContent: 'center', | |
4913 | + }} | |
4914 | + > | |
4915 | + <div | |
4916 | + style={{ | |
4917 | + fontWeight: 'bold', // 字体加粗 | |
4918 | + color: 'black', // 字体颜色 | |
4919 | + fontSize: '18px', // 字体大小 | |
4920 | + }} | |
4921 | + > | |
4922 | + <div | |
4923 | + style={{ | |
4924 | + fontWeight: 'bold', // 字体加粗 | |
4925 | + color: 'black', // 字体颜色 | |
4926 | + fontSize: '40px', // 字体大小 | |
4927 | + justifyContent: 'center', | |
4928 | + display: 'flex', | |
4929 | + alignItems: 'center', | |
4930 | + marginBottom: '20px', | |
4931 | + }} | |
4932 | + > | |
4933 | + {waitConfirmPayment} | |
4934 | + </div> | |
4935 | + 待回款订单 | |
4936 | + </div> | |
4937 | + </Card> | |
4938 | + </div> | |
4939 | + </Col> | |
4696 | 4940 | </Row> |
4697 | - <div style={{ color: 'red', padding: '40px' }}> | |
4698 | - <p>预警说明:</p> | |
4699 | - <p> | |
4700 | - 1、从申请开票之日起,超过5天未【确认发票】的订单在登录时进行第一次提醒,超过15天未【确认发票】将进行每日提醒并锁单。 | |
4701 | - </p> | |
4702 | - <p> | |
4703 | - 2、从【确认发票】之日起,超过15天未【回款】的订单在账号登录时会进行第一次提醒,超过25天未【回款】将进行每日提醒并锁单。 | |
4941 | + | |
4942 | + <div> | |
4943 | + <p | |
4944 | + style={{ | |
4945 | + color: 'red', | |
4946 | + paddingLeft: '20px', | |
4947 | + paddingRight: '20px', | |
4948 | + marginTop: '10px', | |
4949 | + }} | |
4950 | + > | |
4951 | + 预警说明: | |
4704 | 4952 | </p> |
4953 | + <div | |
4954 | + style={{ | |
4955 | + marginLeft: '20px', | |
4956 | + marginRight: '20px', | |
4957 | + marginBottom: '20px', | |
4958 | + }} | |
4959 | + > | |
4960 | + <span style={{ color: 'red' }}>确认收货预警:</span> | |
4961 | + <span> | |
4962 | + 从发货之日起计算,国内超过7天(海外30天)未【确认收货】,将进行确认收货预警提醒,超过10天(海外60天)未确认收货将锁单,并且每次登录都会提醒 | |
4963 | + </span> | |
4964 | + </div> | |
4965 | + <div | |
4966 | + style={{ | |
4967 | + marginLeft: '20px', | |
4968 | + marginRight: '20px', | |
4969 | + marginBottom: '20px', | |
4970 | + }} | |
4971 | + > | |
4972 | + <span style={{ color: 'red' }}>回访登记预警:</span> | |
4973 | + <span> | |
4974 | + 从【确认收货】之日起计算,国内超过20天(海外30天)未【回访登记】,将进行回访登记预警提醒,超过45天(海外60天)未回访登记将锁单,并且每次登录都会提醒 | |
4975 | + </span> | |
4976 | + </div> | |
4977 | + <div | |
4978 | + style={{ | |
4979 | + marginLeft: '20px', | |
4980 | + marginRight: '20px', | |
4981 | + marginBottom: '20px', | |
4982 | + }} | |
4983 | + > | |
4984 | + <span style={{ color: 'red' }}>确认发票预警:</span> | |
4985 | + <span> | |
4986 | + 从发票开出之日起,超过5天未和客户确认发票(不开票的订单除外)的订单将会进行第一次提醒;超过15天未和客户确认发票(不开票的订单除外)的订单将会每天进行一次提醒,并限制下单功能 | |
4987 | + </span> | |
4988 | + </div> | |
4989 | + <div | |
4990 | + style={{ | |
4991 | + marginLeft: '20px', | |
4992 | + marginRight: '20px', | |
4993 | + marginBottom: '20px', | |
4994 | + }} | |
4995 | + > | |
4996 | + <span style={{ color: 'red' }}>回款预警:</span> | |
4997 | + <span> | |
4998 | + 从【发票确认】之日起,超过30天未确认回款的订单将会每周提醒,超过90天未确认回款的订单将会每天进行一次提醒,并限制下单功能 | |
4999 | + </span> | |
5000 | + </div> | |
4705 | 5001 | </div> |
4706 | 5002 | </Modal> |
4707 | 5003 | <ProTable |
... | ... | @@ -5285,6 +5581,24 @@ const OrderPage = () => { |
5285 | 5581 | }} |
5286 | 5582 | /> |
5287 | 5583 | )} |
5584 | + {feedbackRegistrationModalVisible && ( | |
5585 | + <FeedbackRegistrationModal | |
5586 | + setVisible={(val: boolean) => { | |
5587 | + setFeedbackRegistrationModalVisible(val); | |
5588 | + if (!val) { | |
5589 | + clearOptObject(); | |
5590 | + } | |
5591 | + }} | |
5592 | + subOrders={buildSubOrders()} | |
5593 | + mainOrder={buildMainOrder()} | |
5594 | + onClose={() => { | |
5595 | + setFeedbackRegistrationModalVisible(false); | |
5596 | + clearOptObject(); | |
5597 | + refreshTable(); | |
5598 | + }} | |
5599 | + /> | |
5600 | + )} | |
5601 | + | |
5288 | 5602 | {invoicingDrawerFormVisible && ( |
5289 | 5603 | <InvoicingDrawerForm |
5290 | 5604 | dataList={ | ... | ... |
src/pages/Order/OrderWarning/components/CheckModal.tsx
... | ... | @@ -235,8 +235,8 @@ export default ({ |
235 | 235 | setPreviewOpen(true); |
236 | 236 | setPreviewTitle( |
237 | 237 | file.name || |
238 | - file.originFileObj?.name || | |
239 | - file.url!.substring(file.url!.lastIndexOf('/') + 1), | |
238 | + file.originFileObj?.name || | |
239 | + file.url!.substring(file.url!.lastIndexOf('/') + 1), | |
240 | 240 | ); |
241 | 241 | }; |
242 | 242 | ... | ... |
src/pages/Order/OrderWarning/components/ConfirmReceiptModal.tsx
... | ... | @@ -107,8 +107,8 @@ export default ({ data, onClose }) => { |
107 | 107 | setPreviewOpen(true); |
108 | 108 | setPreviewTitle( |
109 | 109 | file.name || |
110 | - file.originFileObj?.name || | |
111 | - file.url!.substring(file.url!.lastIndexOf('/') + 1), | |
110 | + file.originFileObj?.name || | |
111 | + file.url!.substring(file.url!.lastIndexOf('/') + 1), | |
112 | 112 | ); |
113 | 113 | }; |
114 | 114 | ... | ... |
src/pages/Order/OrderWarning/components/DeliverModal.tsx
... | ... | @@ -260,7 +260,7 @@ const DeliverModal = ({ |
260 | 260 | serialNumber: item.serialNumber, |
261 | 261 | packageNumber: |
262 | 262 | item.packageNumber === null || |
263 | - item.packageNumber === undefined | |
263 | + item.packageNumber === undefined | |
264 | 264 | ? 1 |
265 | 265 | : item.packageNumber, |
266 | 266 | logisticsNotes: item.logisticsNotes, | ... | ... |
src/pages/Order/OrderWarning/components/FeedbackRegistrationModal.tsx
0 → 100644
1 | +import { postServiceOrderFeedbackRegistration } from '@/services/request'; | |
2 | +import { Input, Modal } from 'antd'; | |
3 | +import { useState } from 'react'; | |
4 | + | |
5 | +// import { cloneDeep } from 'lodash'; | |
6 | +export default ({ setVisible, subOrders, mainOrder, onClose }) => { | |
7 | + const [isModalOpen] = useState(true); | |
8 | + const { TextArea } = Input; | |
9 | + const [textValue, setTextValue] = useState(''); | |
10 | + | |
11 | + const handleOk = async () => { | |
12 | + console.log(subOrders, '5656subOrders', mainOrder); | |
13 | + await postServiceOrderFeedbackRegistration({ | |
14 | + data: { | |
15 | + id: subOrders[0].id, | |
16 | + feedbackRegistrationContent: textValue, | |
17 | + }, | |
18 | + }); | |
19 | + onClose(); | |
20 | + // setIsModalOpen(false); | |
21 | + // onClose(); | |
22 | + }; | |
23 | + const handleCancel = () => { | |
24 | + setVisible(false); | |
25 | + onClose(); | |
26 | + // setIsModalOpen(false); | |
27 | + // onClose(); | |
28 | + }; | |
29 | + const handleChange = (e) => { | |
30 | + setTextValue(e.target.value); | |
31 | + }; | |
32 | + return ( | |
33 | + <> | |
34 | + {/* <ModalForm<{ | |
35 | + filePaths: any; | |
36 | + }> | |
37 | + width={500} | |
38 | + open | |
39 | + title="回访登记" | |
40 | + form={form} | |
41 | + autoFocusFirstInput | |
42 | + modalProps={{ | |
43 | + okText: '提交', | |
44 | + cancelText: '取消', | |
45 | + destroyOnClose: true, | |
46 | + onCancel: () => { | |
47 | + setVisible(false); | |
48 | + }, | |
49 | + }} | |
50 | + onFinish={async () => { | |
51 | + onClose(); | |
52 | + }} | |
53 | + onOpenChange={setVisible} | |
54 | + > | |
55 | + <TextArea rows={6} placeholder="请输入" /> | |
56 | + </ModalForm> */} | |
57 | + <Modal | |
58 | + title="回访登记" | |
59 | + open={isModalOpen} | |
60 | + onOk={handleOk} | |
61 | + onCancel={handleCancel} | |
62 | + > | |
63 | + <TextArea | |
64 | + rows={6} | |
65 | + placeholder="请输入" | |
66 | + onChange={handleChange} | |
67 | + value={textValue} | |
68 | + /> | |
69 | + </Modal> | |
70 | + </> | |
71 | + ); | |
72 | +}; | ... | ... |
src/pages/Order/OrderWarning/components/FinancialDrawer.tsx
... | ... | @@ -144,107 +144,107 @@ export default ({ |
144 | 144 | |
145 | 145 | {invoicingStatus !== 'UN_INVOICE' |
146 | 146 | ? [ |
147 | - <ProFormDatePicker | |
148 | - key="invoicingTime" | |
149 | - width="lg" | |
150 | - name="invoicingTime" | |
151 | - label="开票时间" | |
152 | - disabled={isEdit} | |
153 | - rules={[ | |
154 | - { required: !isEdit ? true : false, message: '这是必填项' }, | |
155 | - ]} | |
156 | - initialValue={subOrders[0]?.invoicingTime} | |
157 | - />, | |
158 | - <ProFormText | |
159 | - key="purchaser" | |
160 | - width="lg" | |
161 | - name="purchaser" | |
162 | - label="抬头名称" | |
163 | - disabled={isEdit} | |
164 | - rules={[ | |
165 | - { required: !isEdit ? true : false, message: '这是必填项' }, | |
166 | - ]} | |
167 | - initialValue={subOrders[0]?.purchaser} | |
168 | - />, | |
169 | - <ProFormDatePicker | |
170 | - key="financialReceiptIssuanceTime" | |
171 | - width="lg" | |
172 | - name="financialReceiptIssuanceTime" | |
173 | - label="开收据时间" | |
174 | - initialValue={subOrders[0]?.financialReceiptIssuanceTime} | |
175 | - />, | |
176 | - <ProFormDatePicker | |
177 | - key="collectMoneyTime" | |
178 | - width="lg" | |
179 | - name="collectMoneyTime" | |
180 | - label="收款时间" | |
181 | - initialValue={subOrders[0]?.collectMoneyTime} | |
182 | - />, | |
183 | - <ProFormText | |
184 | - width="lg" | |
185 | - key="invoiceNumber" | |
186 | - name="invoiceNumber" | |
187 | - label="发票号码" | |
188 | - initialValue={subOrders[0]?.invoiceNumber} | |
189 | - rules={[{ required: true, message: '发票号码必填' }]} | |
190 | - />, | |
191 | - <div | |
192 | - key="salesChooseReceivingCompany" | |
193 | - hidden={subOrders[0].receivingCompany === null} | |
194 | - > | |
195 | - <span className={'pl-2 text-xs text-gray-400'}> | |
196 | - 销售申请开票时选择了: | |
197 | - {enumValueToLabel( | |
198 | - subOrders[0].receivingCompany, | |
199 | - getReceivingCompanyOptions(PAYEE_OPTIONS), | |
200 | - )} | |
201 | - </span> | |
202 | - <span | |
203 | - hidden={subOrders[0].receivingCompany === 'ANY'} | |
204 | - className={ | |
205 | - 'pl-2 text-xs text-[#1677ff] cursor-pointer hover:text-[#64abf7]' | |
206 | - } | |
207 | - onClick={() => { | |
208 | - chooseReceivingCompany(subOrders[0].receivingCompany); | |
209 | - }} | |
147 | + <ProFormDatePicker | |
148 | + key="invoicingTime" | |
149 | + width="lg" | |
150 | + name="invoicingTime" | |
151 | + label="开票时间" | |
152 | + disabled={isEdit} | |
153 | + rules={[ | |
154 | + { required: !isEdit ? true : false, message: '这是必填项' }, | |
155 | + ]} | |
156 | + initialValue={subOrders[0]?.invoicingTime} | |
157 | + />, | |
158 | + <ProFormText | |
159 | + key="purchaser" | |
160 | + width="lg" | |
161 | + name="purchaser" | |
162 | + label="抬头名称" | |
163 | + disabled={isEdit} | |
164 | + rules={[ | |
165 | + { required: !isEdit ? true : false, message: '这是必填项' }, | |
166 | + ]} | |
167 | + initialValue={subOrders[0]?.purchaser} | |
168 | + />, | |
169 | + <ProFormDatePicker | |
170 | + key="financialReceiptIssuanceTime" | |
171 | + width="lg" | |
172 | + name="financialReceiptIssuanceTime" | |
173 | + label="开收据时间" | |
174 | + initialValue={subOrders[0]?.financialReceiptIssuanceTime} | |
175 | + />, | |
176 | + <ProFormDatePicker | |
177 | + key="collectMoneyTime" | |
178 | + width="lg" | |
179 | + name="collectMoneyTime" | |
180 | + label="收款时间" | |
181 | + initialValue={subOrders[0]?.collectMoneyTime} | |
182 | + />, | |
183 | + <ProFormText | |
184 | + width="lg" | |
185 | + key="invoiceNumber" | |
186 | + name="invoiceNumber" | |
187 | + label="发票号码" | |
188 | + initialValue={subOrders[0]?.invoiceNumber} | |
189 | + rules={[{ required: true, message: '发票号码必填' }]} | |
190 | + />, | |
191 | + <div | |
192 | + key="salesChooseReceivingCompany" | |
193 | + hidden={subOrders[0].receivingCompany === null} | |
210 | 194 | > |
211 | - 选择 | |
212 | - </span> | |
213 | - </div>, | |
214 | - <ProFormSelect | |
215 | - key="payee" | |
216 | - placeholder="选择收款单位" | |
217 | - name="payee" | |
218 | - width="lg" | |
219 | - showSearch | |
220 | - label="收款单位" | |
221 | - options={enumToSelect(PAYEE_OPTIONS)} | |
222 | - initialValue={subOrders[0]?.payee} | |
223 | - rules={[{ required: true, message: '收款单位必填' }]} | |
224 | - />, | |
225 | - | |
226 | - <div id="total-payment" key="money"> | |
227 | - <ProFormDigit | |
228 | - key="money" | |
229 | - name="money" | |
195 | + <span className={'pl-2 text-xs text-gray-400'}> | |
196 | + 销售申请开票时选择了: | |
197 | + {enumValueToLabel( | |
198 | + subOrders[0].receivingCompany, | |
199 | + getReceivingCompanyOptions(PAYEE_OPTIONS), | |
200 | + )} | |
201 | + </span> | |
202 | + <span | |
203 | + hidden={subOrders[0].receivingCompany === 'ANY'} | |
204 | + className={ | |
205 | + 'pl-2 text-xs text-[#1677ff] cursor-pointer hover:text-[#64abf7]' | |
206 | + } | |
207 | + onClick={() => { | |
208 | + chooseReceivingCompany(subOrders[0].receivingCompany); | |
209 | + }} | |
210 | + > | |
211 | + 选择 | |
212 | + </span> | |
213 | + </div>, | |
214 | + <ProFormSelect | |
215 | + key="payee" | |
216 | + placeholder="选择收款单位" | |
217 | + name="payee" | |
230 | 218 | width="lg" |
231 | - label="金额" | |
232 | - rules={[{ required: true, message: '金额必填' }]} | |
233 | - tooltip="点击计算,合计所有子订单对应主订单总额" | |
234 | - fieldProps={{ | |
235 | - addonAfter: ( | |
236 | - <Button | |
237 | - className="rounded-l-none" | |
238 | - type="primary" | |
239 | - onClick={computeTotalPayment} | |
240 | - > | |
241 | - 计算 | |
242 | - </Button> | |
243 | - ), | |
244 | - }} | |
245 | - /> | |
246 | - </div>, | |
247 | - ] | |
219 | + showSearch | |
220 | + label="收款单位" | |
221 | + options={enumToSelect(PAYEE_OPTIONS)} | |
222 | + initialValue={subOrders[0]?.payee} | |
223 | + rules={[{ required: true, message: '收款单位必填' }]} | |
224 | + />, | |
225 | + | |
226 | + <div id="total-payment" key="money"> | |
227 | + <ProFormDigit | |
228 | + key="money" | |
229 | + name="money" | |
230 | + width="lg" | |
231 | + label="金额" | |
232 | + rules={[{ required: true, message: '金额必填' }]} | |
233 | + tooltip="点击计算,合计所有子订单对应主订单总额" | |
234 | + fieldProps={{ | |
235 | + addonAfter: ( | |
236 | + <Button | |
237 | + className="rounded-l-none" | |
238 | + type="primary" | |
239 | + onClick={computeTotalPayment} | |
240 | + > | |
241 | + 计算 | |
242 | + </Button> | |
243 | + ), | |
244 | + }} | |
245 | + /> | |
246 | + </div>, | |
247 | + ] | |
248 | 248 | : ''} |
249 | 249 | |
250 | 250 | <ProFormSelect | ... | ... |
src/pages/Order/OrderWarning/components/FinancialEditDrawer.tsx
... | ... | @@ -130,24 +130,24 @@ export default ({ mainOrder, subOrders, setVisible, isMainOrder, onClose }) => { |
130 | 130 | width="lg" |
131 | 131 | name="financialReceiptIssuanceTime" |
132 | 132 | label="开收据时间" |
133 | - // rules={[ | |
134 | - // { | |
135 | - // required: !isMainOrder && invoicingStatus === 'UN_INVOICE', | |
136 | - // message: '开收据时间必填', | |
137 | - // }, | |
138 | - // ]} | |
133 | + // rules={[ | |
134 | + // { | |
135 | + // required: !isMainOrder && invoicingStatus === 'UN_INVOICE', | |
136 | + // message: '开收据时间必填', | |
137 | + // }, | |
138 | + // ]} | |
139 | 139 | /> |
140 | 140 | <ProFormDatePicker |
141 | 141 | key="collectMoneyTime" |
142 | 142 | width="lg" |
143 | 143 | name="collectMoneyTime" |
144 | 144 | label="收款时间" |
145 | - // rules={[ | |
146 | - // { | |
147 | - // required: !isMainOrder && invoicingStatus === 'UN_INVOICE', | |
148 | - // message: '收款时间必填', | |
149 | - // }, | |
150 | - // ]} | |
145 | + // rules={[ | |
146 | + // { | |
147 | + // required: !isMainOrder && invoicingStatus === 'UN_INVOICE', | |
148 | + // message: '收款时间必填', | |
149 | + // }, | |
150 | + // ]} | |
151 | 151 | /> |
152 | 152 | </DrawerForm> |
153 | 153 | ); | ... | ... |
src/pages/Order/OrderWarning/components/ImagesViewerModal.tsx
... | ... | @@ -3,7 +3,7 @@ import { Button, Divider, Image, Modal } from 'antd'; |
3 | 3 | import { useEffect, useState } from 'react'; |
4 | 4 | export default ({ setVisible, optType, onClose, orderRow }) => { |
5 | 5 | const [images, setImages] = useState<any[]>([]); |
6 | - const [title, setTitle] = useState("收货凭证"); | |
6 | + const [title, setTitle] = useState('收货凭证'); | |
7 | 7 | const handleOk = () => { |
8 | 8 | onClose(); |
9 | 9 | setVisible(false); |
... | ... | @@ -23,7 +23,7 @@ export default ({ setVisible, optType, onClose, orderRow }) => { |
23 | 23 | } |
24 | 24 | useEffect(() => { |
25 | 25 | if (optType === 'shippingReceipt') { |
26 | - setTitle("收货凭证"); | |
26 | + setTitle('收货凭证'); | |
27 | 27 | getImages(); |
28 | 28 | } else if (optType === 'paymentReceipt') { |
29 | 29 | let paymentReceiptsImagesList: any[] = []; |
... | ... | @@ -34,7 +34,6 @@ export default ({ setVisible, optType, onClose, orderRow }) => { |
34 | 34 | paymentReceiptsImagesList = [...new Set(paymentReceiptsImagesList)]; |
35 | 35 | setImages(paymentReceiptsImagesList); |
36 | 36 | } |
37 | - | |
38 | 37 | }, []); |
39 | 38 | |
40 | 39 | return ( | ... | ... |
src/pages/Order/OrderWarning/components/ModifiedDiffModal.tsx
... | ... | @@ -106,7 +106,7 @@ export default ({ setVisible, subOrders, mainOrder, onClose }) => { |
106 | 106 | onClick={() => { |
107 | 107 | window.open( |
108 | 108 | '/previewApi/onlinePreview?url=' + |
109 | - encodeURIComponent(Base64.encode(item)), | |
109 | + encodeURIComponent(Base64.encode(item)), | |
110 | 110 | ); |
111 | 111 | }} |
112 | 112 | > | ... | ... |
src/pages/Order/OrderWarning/components/OrderDrawer.tsx
... | ... | @@ -556,9 +556,9 @@ export default ({ onClose, data, subOrders, orderOptType }) => { |
556 | 556 | form.setFieldValue( |
557 | 557 | 'customerShippingAddress', |
558 | 558 | getDefaultString(option.province) + |
559 | - getDefaultString(option.city) + | |
560 | - getDefaultString(option.district) + | |
561 | - getDefaultString(option.detail), | |
559 | + getDefaultString(option.city) + | |
560 | + getDefaultString(option.district) + | |
561 | + getDefaultString(option.detail), | |
562 | 562 | ); |
563 | 563 | form.setFieldValue('customerNameString', option.realName); |
564 | 564 | |
... | ... | @@ -641,11 +641,11 @@ export default ({ onClose, data, subOrders, orderOptType }) => { |
641 | 641 | |
642 | 642 | message.error( |
643 | 643 | '用户余额不足,当前预减的金额为:' + |
644 | - data.subPrice + | |
645 | - ',当前账号余额为:' + | |
646 | - data.nowMoney + | |
647 | - ',当前账号可赊账额度为:' + | |
648 | - data.creditLimit, | |
644 | + data.subPrice + | |
645 | + ',当前账号余额为:' + | |
646 | + data.nowMoney + | |
647 | + ',当前账号可赊账额度为:' + | |
648 | + data.creditLimit, | |
649 | 649 | ); |
650 | 650 | return false; |
651 | 651 | } |
... | ... | @@ -1110,7 +1110,7 @@ export default ({ onClose, data, subOrders, orderOptType }) => { |
1110 | 1110 | }, |
1111 | 1111 | }} |
1112 | 1112 | debounceTime={1000} |
1113 | - request={async (value, { }) => { | |
1113 | + request={async (value, {}) => { | |
1114 | 1114 | const keywords = value.keyWords; |
1115 | 1115 | if (keywords === '') { |
1116 | 1116 | return []; |
... | ... | @@ -1865,7 +1865,7 @@ export default ({ onClose, data, subOrders, orderOptType }) => { |
1865 | 1865 | placeholder="请输入商品参数" |
1866 | 1866 | disabled={ |
1867 | 1867 | productParametersDisabledFlagList[listMeta.index] !== |
1868 | - false || optType('after-sales-check') | |
1868 | + false || optType('after-sales-check') | |
1869 | 1869 | } |
1870 | 1870 | />, |
1871 | 1871 | <ProFormDigit |
... | ... | @@ -1918,7 +1918,7 @@ export default ({ onClose, data, subOrders, orderOptType }) => { |
1918 | 1918 | placeholder="请输入商品单位" |
1919 | 1919 | disabled={ |
1920 | 1920 | productParametersDisabledFlagList[listMeta.index] !== |
1921 | - false || optType('after-sales-check') | |
1921 | + false || optType('after-sales-check') | |
1922 | 1922 | } |
1923 | 1923 | rules={[{ required: true, message: '商品单位必填' }]} |
1924 | 1924 | />, | ... | ... |
src/pages/Order/OrderWarning/components/UploadPayBillModal.tsx
1 | +import { RESPONSE_CODE } from '@/constants/enum'; | |
2 | +import { | |
3 | + postServiceOrderFileProcess, | |
4 | + postServiceOrderUploadPaymentReceipt, | |
5 | +} from '@/services'; | |
6 | +import { transImageFile } from '@/utils'; | |
7 | +import { PlusOutlined } from '@ant-design/icons'; | |
1 | 8 | import { ModalForm } from '@ant-design/pro-components'; |
2 | 9 | import { Form, Modal, Upload, UploadFile, UploadProps, message } from 'antd'; |
3 | 10 | import { RcFile } from 'antd/lib/upload'; |
4 | 11 | import { cloneDeep } from 'lodash'; |
5 | 12 | import { useEffect, useRef, useState } from 'react'; |
6 | 13 | import { COMFIR_RECEIPT_IMAGES_NUMBER } from '../../constant'; |
7 | -import { PlusOutlined } from '@ant-design/icons'; | |
8 | -import { transImageFile } from '@/utils'; | |
9 | -import { postServiceOrderFileProcess, postServiceOrderUploadPaymentReceipt } from '@/services'; | |
10 | -import { RESPONSE_CODE } from '@/constants/enum'; | |
11 | 14 | |
12 | 15 | // import { cloneDeep } from 'lodash'; |
13 | 16 | export default ({ setVisible, subOrders, mainOrder, onClose }) => { |
... | ... | @@ -25,7 +28,9 @@ export default ({ setVisible, subOrders, mainOrder, onClose }) => { |
25 | 28 | reader.onerror = (error) => reject(error); |
26 | 29 | }); |
27 | 30 | |
28 | - const subOrderIds = subOrders?.map((item: any) => { return item.id }); | |
31 | + const subOrderIds = subOrders?.map((item: any) => { | |
32 | + return item.id; | |
33 | + }); | |
29 | 34 | const fileListObj = useRef<UploadFile[]>([]); //使用引用类型,使得在useEffect里面设置监听事件后,不用更新监听事件也能保持obj与外界一致 |
30 | 35 | const handleBeforeUpload = (file: any) => { |
31 | 36 | setFileList([...fileList, file]); |
... | ... | @@ -105,8 +110,8 @@ export default ({ setVisible, subOrders, mainOrder, onClose }) => { |
105 | 110 | setPreviewOpen(true); |
106 | 111 | setPreviewTitle( |
107 | 112 | file.name || |
108 | - file.originFileObj?.name || | |
109 | - file.url!.substring(file.url!.lastIndexOf('/') + 1), | |
113 | + file.originFileObj?.name || | |
114 | + file.url!.substring(file.url!.lastIndexOf('/') + 1), | |
110 | 115 | ); |
111 | 116 | }; |
112 | 117 | const props: UploadProps = { |
... | ... | @@ -128,7 +133,6 @@ export default ({ setVisible, subOrders, mainOrder, onClose }) => { |
128 | 133 | }; |
129 | 134 | |
130 | 135 | useEffect(() => { |
131 | - | |
132 | 136 | document.addEventListener('paste', onPaste); |
133 | 137 | return () => { |
134 | 138 | document.removeEventListener('paste', onPaste); |
... | ... | @@ -206,19 +210,15 @@ export default ({ setVisible, subOrders, mainOrder, onClose }) => { |
206 | 210 | } |
207 | 211 | } else { |
208 | 212 | message.success('上传失败'); |
213 | + console.log(mainOrder); | |
209 | 214 | } |
210 | 215 | onClose(); |
211 | 216 | }} |
212 | 217 | onOpenChange={setVisible} |
213 | 218 | > |
214 | - | |
215 | - <div className="pb-4 text-xs decoration-gray-50"> | |
216 | - 可复制照片粘贴 | |
217 | - </div> | |
219 | + <div className="pb-4 text-xs decoration-gray-50">可复制照片粘贴</div> | |
218 | 220 | <Upload {...props}> |
219 | - {fileList.length < COMFIR_RECEIPT_IMAGES_NUMBER | |
220 | - ? uploadButton | |
221 | - : ''} | |
221 | + {fileList.length < COMFIR_RECEIPT_IMAGES_NUMBER ? uploadButton : ''} | |
222 | 222 | </Upload> |
223 | 223 | </ModalForm> |
224 | 224 | ... | ... |
src/pages/Order/OrderWarning/index.tsx
... | ... | @@ -32,6 +32,7 @@ import { |
32 | 32 | } from '@/utils'; |
33 | 33 | import { |
34 | 34 | getReceivingCompanyOptions, |
35 | + getSalesCodeOptions, | |
35 | 36 | isAdmin, |
36 | 37 | isExaminer, |
37 | 38 | isFinance, |
... | ... | @@ -53,6 +54,7 @@ import { |
53 | 54 | ActionType, |
54 | 55 | ProColumns, |
55 | 56 | ProFormInstance, |
57 | + ProFormSelect, | |
56 | 58 | ProTable, |
57 | 59 | } from '@ant-design/pro-components'; |
58 | 60 | import { |
... | ... | @@ -67,7 +69,6 @@ import { |
67 | 69 | Radio, |
68 | 70 | Space, |
69 | 71 | Spin, |
70 | - Tabs, | |
71 | 72 | Tag, |
72 | 73 | Tooltip, |
73 | 74 | message, |
... | ... | @@ -103,6 +104,7 @@ import CheckModal from './components/CheckModal'; |
103 | 104 | import ConfirmReceiptModal from './components/ConfirmReceiptModal'; |
104 | 105 | import DeliverInfoDrawer from './components/DeliverInfoDrawer'; |
105 | 106 | import DeliverModal from './components/DeliverModal'; |
107 | +import FeedbackRegistrationModal from './components/FeedbackRegistrationModal'; | |
106 | 108 | import FinancialDrawer from './components/FinancialDrawer'; |
107 | 109 | import FinancialEditDrawer from './components/FinancialEditDrawer'; |
108 | 110 | import FinancialMergeDrawer from './components/FinancialMergeDrawer'; |
... | ... | @@ -120,12 +122,15 @@ import ShippingWarehouseChangeModal from './components/ShippingWarehouseChangeMo |
120 | 122 | import UploadPayBillModal from './components/UploadPayBillModal'; |
121 | 123 | import './index.less'; |
122 | 124 | import { OrderListItemType, OrderType } from './type.d'; |
125 | +// import { useParams } from '@umijs/max'; | |
123 | 126 | |
124 | 127 | const OrderPage = () => { |
125 | 128 | const [orderDrawerVisible, setOrderDrawerVisible] = useState<boolean>(false); |
126 | 129 | const [checkVisible, setCheckVisible] = useState<boolean>(false); |
127 | 130 | const [orderPrintVisible, setOrderPrintVisible] = useState<boolean>(false); |
131 | + const [salesCodeOptions, setSalesCodeOptions] = useState([]); | |
128 | 132 | const [allMainChecked, setAllMainChecked] = useState(false); |
133 | + const [salesCodeSelect, setSalesCodeSelect] = useState(); | |
129 | 134 | const [imagesViewerModalVisible, setImagesViewerModalVisible] = |
130 | 135 | useState<boolean>(false); |
131 | 136 | const [data, setData] = useState([]); //列表数据 |
... | ... | @@ -136,6 +141,10 @@ const OrderPage = () => { |
136 | 141 | useState<boolean>(false); |
137 | 142 | const [uploadPayBillModalVisible, setUploadPayBillModalVisible] = |
138 | 143 | useState<boolean>(false); |
144 | + const [ | |
145 | + feedbackRegistrationModalVisible, | |
146 | + setFeedbackRegistrationModalVisible, | |
147 | + ] = useState<boolean>(false); | |
139 | 148 | const [modifiedDiffModalVisible, setModifiedDiffModalVisible] = |
140 | 149 | useState<boolean>(false); |
141 | 150 | const [financialReceiptsModalVisible, setFinancialReceiptsModalVisible] = |
... | ... | @@ -194,9 +203,7 @@ const OrderPage = () => { |
194 | 203 | const [subOrderCount, setSubOrderCount] = useState(0); |
195 | 204 | const [sorted] = useState(false); |
196 | 205 | const mainTableRef = useRef<ActionType>(); |
197 | - const mainTableSecondRef = useRef<ActionType>(); | |
198 | 206 | const mainTableFormRef = useRef<ProFormInstance>(); |
199 | - const mainTableSecondFormRef = useRef<ProFormInstance>(); | |
200 | 207 | let [searchParams, setSearchParam] = useState(Object); //表格的查询条件存储 |
201 | 208 | console.log(searchParams); |
202 | 209 | const [messageApi, contextHolder] = message.useMessage(); |
... | ... | @@ -208,7 +215,7 @@ const OrderPage = () => { |
208 | 215 | const [ids, setIds] = useState([]); |
209 | 216 | const [recordOptNode, setRecordOptNode] = useState(null); |
210 | 217 | const roleCode = userInfo?.roleSmallVO?.code; |
211 | - const [activeTabKey, setActiveTabKey] = useState('1'); // **新增状态** | |
218 | + const [activeTabKey, setActiveTabKey] = useState(1); // **新增状态** | |
212 | 219 | |
213 | 220 | const triggerRecordOptNode = async (id) => { |
214 | 221 | const res = await postServiceOrderGetCurrentOptNode({ |
... | ... | @@ -225,12 +232,6 @@ const OrderPage = () => { |
225 | 232 | setSelectedRows([]); |
226 | 233 | setSelectedSubOrderKeys([]); |
227 | 234 | }; |
228 | - const refreshTable2 = () => { | |
229 | - mainTableSecondRef.current?.reload(); | |
230 | - //刷新表格数据的时候,取消选中行 | |
231 | - setSelectedRows([]); | |
232 | - setSelectedSubOrderKeys([]); | |
233 | - }; | |
234 | 235 | |
235 | 236 | /*useEffect(() => { |
236 | 237 | let initAfterInvoicingStatus = async () => { |
... | ... | @@ -2034,6 +2035,20 @@ const OrderPage = () => { |
2034 | 2035 | ) : ( |
2035 | 2036 | '' |
2036 | 2037 | )} |
2038 | + {optRecord.paths?.includes('feedbackRegistration') ? ( | |
2039 | + <Button | |
2040 | + className="p-0" | |
2041 | + type="link" | |
2042 | + onClick={() => { | |
2043 | + createOptObject(optRecord.id, record.id); | |
2044 | + setFeedbackRegistrationModalVisible(true); | |
2045 | + }} | |
2046 | + > | |
2047 | + 回访登记 | |
2048 | + </Button> | |
2049 | + ) : ( | |
2050 | + '' | |
2051 | + )} | |
2037 | 2052 | |
2038 | 2053 | {optRecord.paths?.includes('confirmInvoice') ? ( |
2039 | 2054 | <ButtonConfirm |
... | ... | @@ -2255,6 +2270,30 @@ const OrderPage = () => { |
2255 | 2270 | ) : ( |
2256 | 2271 | '' |
2257 | 2272 | )} |
2273 | + {isAdmin() || isSales() ? ( | |
2274 | + <Flex title={optRecord.notes} className="pt-2"> | |
2275 | + <div className="flex items-center"> | |
2276 | + <div className="flex items-center max-w-[500px]"> | |
2277 | + <div className="max-w-md overflow-hidden whitespace-no-wrap overflow-ellipsis"> | |
2278 | + <Tooltip | |
2279 | + title={optRecord.feedbackRegistrationContent} | |
2280 | + placement="topLeft" | |
2281 | + > | |
2282 | + <span className="text-[#8C8C8C] mr-3"> | |
2283 | + 产品回访登记: | |
2284 | + {optRecord.feedbackRegistrationContent === undefined || | |
2285 | + optRecord.feedbackRegistrationContent === null | |
2286 | + ? '暂无' | |
2287 | + : optRecord.feedbackRegistrationContent} | |
2288 | + </span> | |
2289 | + </Tooltip> | |
2290 | + </div> | |
2291 | + </div> | |
2292 | + </div> | |
2293 | + </Flex> | |
2294 | + ) : ( | |
2295 | + '' | |
2296 | + )} | |
2258 | 2297 | </> |
2259 | 2298 | ); |
2260 | 2299 | }; |
... | ... | @@ -3996,58 +4035,6 @@ const OrderPage = () => { |
3996 | 4035 | }, |
3997 | 4036 | ); |
3998 | 4037 | |
3999 | - // 主订单列表 | |
4000 | - const mainOrdersColumns2: ProColumns<OrderType>[] = MAIN_ORDER_COLUMNS.map( | |
4001 | - (item) => { | |
4002 | - //首能账号只能搜索订单编号 | |
4003 | - let canSearchIndex = [ | |
4004 | - 'id', | |
4005 | - 'salesCode', | |
4006 | - 'subNotes', | |
4007 | - 'orderStatus', | |
4008 | - 'createTime', | |
4009 | - 'modifiedAuditStatus', | |
4010 | - ]; | |
4011 | - if (isSupplier() && !canSearchIndex.includes(item.dataIndex)) { | |
4012 | - item.search = false; | |
4013 | - } | |
4014 | - | |
4015 | - canSearchIndex = [ | |
4016 | - 'id', | |
4017 | - 'salesCode', | |
4018 | - 'customerName', | |
4019 | - 'institution', | |
4020 | - 'productName', | |
4021 | - 'orderStatus', | |
4022 | - 'createTime', | |
4023 | - ]; | |
4024 | - | |
4025 | - if (isExaminer() && !canSearchIndex.includes(item.dataIndex)) { | |
4026 | - item.search = false; | |
4027 | - } | |
4028 | - | |
4029 | - if (item.dataIndex === 'name') { | |
4030 | - return { | |
4031 | - ...item, | |
4032 | - title: <OrderTableHeader />, | |
4033 | - render: (text, record) => { | |
4034 | - return <MainOrderColumnRender record={record} />; | |
4035 | - }, | |
4036 | - }; | |
4037 | - } | |
4038 | - | |
4039 | - /** | |
4040 | - * 采购的订单状态筛选内容 | |
4041 | - */ | |
4042 | - if (roleCode === 'procure' && item.dataIndex === 'orderStatus') { | |
4043 | - item.valueEnum = enumToProTableEnumValue( | |
4044 | - PROCURE_PRIMARY_ORDER_STATUS_OPTIONS, | |
4045 | - ); | |
4046 | - } | |
4047 | - return item; | |
4048 | - }, | |
4049 | - ); | |
4050 | - | |
4051 | 4038 | /** |
4052 | 4039 | * 采购可以筛选供应商备注 |
4053 | 4040 | */ |
... | ... | @@ -4059,13 +4046,6 @@ const OrderPage = () => { |
4059 | 4046 | valueType: 'text', |
4060 | 4047 | hideInTable: true, |
4061 | 4048 | }); |
4062 | - mainOrdersColumns2.push({ | |
4063 | - title: '供应商备注', | |
4064 | - width: 120, | |
4065 | - dataIndex: 'supplierNotes', | |
4066 | - valueType: 'text', | |
4067 | - hideInTable: true, | |
4068 | - }); | |
4069 | 4049 | } |
4070 | 4050 | |
4071 | 4051 | /** |
... | ... | @@ -4086,20 +4066,6 @@ const OrderPage = () => { |
4086 | 4066 | }, |
4087 | 4067 | hideInTable: true, |
4088 | 4068 | }); |
4089 | - mainOrdersColumns2.push({ | |
4090 | - title: '采购名称', | |
4091 | - width: 120, | |
4092 | - dataIndex: 'supplierName', | |
4093 | - valueType: 'select', | |
4094 | - request: async () => { | |
4095 | - const res = await postServiceOrderProvideProcurementRoles(); | |
4096 | - let options = res.data?.map((item) => { | |
4097 | - return { label: item, value: item }; | |
4098 | - }); | |
4099 | - return options; | |
4100 | - }, | |
4101 | - hideInTable: true, | |
4102 | - }); | |
4103 | 4069 | } |
4104 | 4070 | |
4105 | 4071 | /** |
... | ... | @@ -4123,23 +4089,6 @@ const OrderPage = () => { |
4123 | 4089 | }, |
4124 | 4090 | hideInTable: true, |
4125 | 4091 | }); |
4126 | - mainOrdersColumns2.push({ | |
4127 | - title: '采购排除', | |
4128 | - width: 120, | |
4129 | - dataIndex: 'excludeProcureNames', | |
4130 | - fieldProps: { | |
4131 | - mode: 'multiple', | |
4132 | - }, | |
4133 | - valueType: 'select', | |
4134 | - request: async () => { | |
4135 | - const res = await postServiceOrderProvideProcurementRoles(); | |
4136 | - let options = res.data?.map((item) => { | |
4137 | - return { label: item, value: item }; | |
4138 | - }); | |
4139 | - return options; | |
4140 | - }, | |
4141 | - hideInTable: true, | |
4142 | - }); | |
4143 | 4092 | } |
4144 | 4093 | |
4145 | 4094 | /** |
... | ... | @@ -4154,14 +4103,6 @@ const OrderPage = () => { |
4154 | 4103 | valueEnum: enumToProTableEnumValue(SHIPPING_WAREHOUSE_OPTIONS), |
4155 | 4104 | hideInTable: true, |
4156 | 4105 | }); |
4157 | - mainOrdersColumns2.push({ | |
4158 | - title: '发货仓库', | |
4159 | - width: 120, | |
4160 | - dataIndex: 'shippingWarehouse', | |
4161 | - valueType: 'select', | |
4162 | - valueEnum: enumToProTableEnumValue(SHIPPING_WAREHOUSE_OPTIONS), | |
4163 | - hideInTable: true, | |
4164 | - }); | |
4165 | 4106 | } |
4166 | 4107 | |
4167 | 4108 | //判断是否是采购,是的话新增一个筛选条件 |
... | ... | @@ -4173,1432 +4114,974 @@ const OrderPage = () => { |
4173 | 4114 | hideInTable: true, |
4174 | 4115 | valueEnum: enumToProTableEnumValue(PROCURE_ORDER_STATUS), |
4175 | 4116 | }); |
4176 | - mainOrdersColumns2.push({ | |
4177 | - title: isSupplier() ? '下单状态' : '采购下单状态', | |
4178 | - dataIndex: 'procureOrderStatus', | |
4179 | - valueType: 'select', | |
4180 | - hideInTable: true, | |
4181 | - valueEnum: enumToProTableEnumValue(PROCURE_ORDER_STATUS), | |
4182 | - }); | |
4183 | 4117 | } |
4184 | 4118 | |
4185 | 4119 | //选择天数1 |
4186 | 4120 | const options1 = [ |
4187 | 4121 | { |
4188 | - label: '超过5天', | |
4189 | - value: 5, | |
4190 | - }, | |
4191 | - { | |
4192 | 4122 | label: '超过15天', |
4193 | 4123 | value: 15, |
4194 | 4124 | }, |
4125 | + { | |
4126 | + label: '超过30天', | |
4127 | + value: 30, | |
4128 | + }, | |
4195 | 4129 | ]; |
4196 | - //选择天数 | |
4197 | - const [calDate, setCalDate] = useState<string | null>(null); | |
4198 | - const [calDate2, setCalDate2] = useState<string | null>(null); | |
4199 | - const [value1, setValue1] = useState(); | |
4200 | - const radioOnChange1 = ({ target: { value } }) => { | |
4201 | - const currentDate = new Date(); | |
4202 | - // 创建一个新的日期对象,并在当前日期的基础上加上 daysToAdd 天 | |
4203 | - const newDate = new Date(currentDate); | |
4204 | - newDate.setDate(currentDate.getDate() - value); | |
4205 | - const formattedDate = format(newDate, 'yyyy-MM-dd HH:mm:ss'); | |
4206 | - setCalDate(formattedDate); | |
4207 | - setValue1(value); | |
4208 | - }; | |
4209 | - //选择天数2 | |
4210 | 4130 | const options2 = [ |
4211 | 4131 | { |
4212 | 4132 | label: '超过15天', |
4213 | 4133 | value: 15, |
4214 | 4134 | }, |
4215 | 4135 | { |
4216 | - label: '超过25天', | |
4217 | - value: 25, | |
4136 | + label: '超过30天', | |
4137 | + value: 30, | |
4138 | + }, | |
4139 | + ]; | |
4140 | + const options3 = [ | |
4141 | + { | |
4142 | + label: '超过5天', | |
4143 | + value: 5, | |
4144 | + }, | |
4145 | + { | |
4146 | + label: '超过10天', | |
4147 | + value: 10, | |
4148 | + }, | |
4149 | + ]; | |
4150 | + const options4 = [ | |
4151 | + { | |
4152 | + label: '超过30天', | |
4153 | + value: 30, | |
4154 | + }, | |
4155 | + { | |
4156 | + label: '超过75天', | |
4157 | + value: 75, | |
4158 | + }, | |
4159 | + { | |
4160 | + label: '超过90天', | |
4161 | + value: 90, | |
4162 | + }, | |
4163 | + { | |
4164 | + label: '超过120天', | |
4165 | + value: 120, | |
4218 | 4166 | }, |
4219 | 4167 | ]; |
4220 | - const [value2, setValue2] = useState(); | |
4221 | - const radioOnChange2 = ({ target: { value } }) => { | |
4168 | + //选择天数 | |
4169 | + const [calDate, setCalDate] = useState<string | null>(null); | |
4170 | + const [value1, setValue1] = useState(0); | |
4171 | + const radioOnChange1 = ({ target: { value } }) => { | |
4222 | 4172 | const currentDate = new Date(); |
4223 | - | |
4224 | 4173 | // 创建一个新的日期对象,并在当前日期的基础上加上 daysToAdd 天 |
4225 | 4174 | const newDate = new Date(currentDate); |
4226 | 4175 | newDate.setDate(currentDate.getDate() - value); |
4227 | 4176 | const formattedDate = format(newDate, 'yyyy-MM-dd HH:mm:ss'); |
4228 | - setCalDate2(formattedDate); | |
4229 | - setValue2(value); | |
4230 | - }; | |
4231 | - const confirmInvoice = async () => { | |
4232 | - let flat = [...subOrderSelectedMap.values()].flat().map((item) => item.id); | |
4233 | - const data = await postServiceOrderConfirmInvoice({ | |
4234 | - data: flat, | |
4235 | - }); | |
4236 | - if (data.result === RESPONSE_CODE.SUCCESS) { | |
4237 | - message.success(data.message); | |
4238 | - refreshTable(); | |
4239 | - } | |
4177 | + setCalDate(formattedDate); | |
4178 | + setValue1(value); | |
4240 | 4179 | }; |
4241 | 4180 | const [invoiceWarningNum, setInvoiceWarningNum] = useState(0); |
4242 | 4181 | const [invoiceRefundWarningNum, setInvoiceRefundWarningNum] = useState(0); |
4182 | + const [waitConfirmPayment, setWaitConfirmPayment] = useState(0); | |
4183 | + const [waitFeedback, setWaitFeedback] = useState(0); | |
4184 | + const [staticSalesCode, setStaticSalesCode] = useState(userInfo.username); | |
4185 | + const [salesCodePermission, setSalesCodePermission] = useState(false); | |
4186 | + //修改预警数请求salesCode | |
4187 | + const changeSalesCode = () => { | |
4188 | + if (salesCodeSelect === undefined) { | |
4189 | + setStaticSalesCode(userInfo.username); | |
4190 | + } else { | |
4191 | + setStaticSalesCode(salesCodeSelect); | |
4192 | + } | |
4193 | + }; | |
4194 | + //选择栏权限 | |
4195 | + const permission = () => { | |
4196 | + const { roles } = userInfo; | |
4197 | + const boolean = | |
4198 | + roles?.includes('SALES_MANAGER') || roles?.includes('ADMIN'); | |
4199 | + if (boolean) { | |
4200 | + setSalesCodePermission(true); | |
4201 | + } | |
4202 | + }; | |
4243 | 4203 | async function getInvoiceWarningNum() { |
4244 | - const res = await postServiceOrderWarningOrderStatistics(); | |
4204 | + changeSalesCode(); | |
4205 | + const res = await postServiceOrderWarningOrderStatistics({ | |
4206 | + data: { | |
4207 | + salesCode: staticSalesCode, | |
4208 | + }, | |
4209 | + }); | |
4245 | 4210 | setInvoiceWarningNum(res.data.waitConfirmInvoice); |
4246 | 4211 | setInvoiceRefundWarningNum(res.data.waitConfirmReceipt); |
4212 | + setWaitConfirmPayment(res.data.waitConfirmPayment); | |
4213 | + setWaitFeedback(res.data.waitFeedback); | |
4247 | 4214 | } |
4248 | 4215 | useEffect(() => { |
4249 | 4216 | //预警订单数 |
4250 | 4217 | getInvoiceWarningNum(); |
4251 | - }, []); | |
4218 | + permission(); | |
4219 | + }, [salesCodeSelect]); | |
4252 | 4220 | //biaojiup |
4253 | 4221 | // 监听 calDate 变化,触发请求 |
4254 | 4222 | useEffect(() => { |
4255 | - if (calDate) { | |
4256 | - mainTableRef.current?.reload(); | |
4257 | - } | |
4223 | + mainTableRef.current?.reload(); | |
4258 | 4224 | }, [calDate]); |
4259 | - | |
4260 | - const request = async (params: any, sorter: any, filter: any) => { | |
4261 | - let orderIds = mainTableFormRef.current?.getFieldValue('id'); | |
4262 | - let subOrderId = mainTableFormRef.current?.getFieldValue('subOrderId'); | |
4263 | - params.id = params.id || orderIds; | |
4264 | - params.subOrderId = params.subOrderId || subOrderId; | |
4265 | - if (params.id !== '') { | |
4266 | - params.id = params.id?.replace(/ /g, ''); | |
4267 | - if (params.id?.indexOf(',')) { | |
4268 | - params.id = params.id.split(','); | |
4269 | - params.id = params.id.filter((id) => id !== ''); | |
4270 | - } | |
4271 | - } | |
4272 | - params.salesCode = userInfo.username; | |
4273 | - params.condition = filterCondifion; | |
4274 | - params.paymentMethod = 'UNPAID'; | |
4275 | - params.sorted = sorted; | |
4276 | - // params.isDeleteQueryOrder = filterCondifion === 70; | |
4277 | - params.isDeleteQueryOrder = false; | |
4278 | - params.invoiceConfirmStatusNe = 'CONFIRMED'; | |
4279 | - params.invoicingStatusNe = 'UN_INVOICE'; | |
4280 | - if (calDate === 'null') { | |
4281 | - params.applyTimeLe = null; | |
4282 | - } else { | |
4283 | - params.applyTimeLe = calDate; | |
4284 | - } | |
4285 | - params.applyTimeIsNotNull = true; | |
4286 | - setSearchParam(params); | |
4287 | - | |
4288 | - const res = await postServiceOrderQueryServiceOrder({ | |
4289 | - sorter, | |
4290 | - filter, | |
4291 | - data: { ...params, statusDatetimeGe: calDate }, | |
4292 | - }); | |
4293 | - console.log(res.data, '5656request'); | |
4294 | - | |
4295 | - const data = res.data; | |
4296 | - setRolePath(data.specialPath); | |
4297 | - setSubOrderCount(data.count); | |
4298 | - setAllMainChecked(false); | |
4299 | - setSelectedMainOrderKeys([]); | |
4300 | - subOrderSelectedMap.clear(); | |
4301 | - mainOrderSelectedMap.clear(); | |
4302 | - setData(data?.data); | |
4303 | - | |
4304 | - mainOrderIdSubOrderIdRelationsMap.clear(); | |
4305 | - for (let row of data?.data) { | |
4306 | - let mianOrderId = row.id; | |
4307 | - let subOrderIds = row.subOrderInformationLists?.map((item) => { | |
4308 | - item.totalPayment = row.totalPayment; | |
4309 | - return item.id; | |
4310 | - }); | |
4311 | - mainOrderIdSubOrderIdRelationsMap.set(mianOrderId, subOrderIds); | |
4312 | - } | |
4313 | - | |
4314 | - return { | |
4315 | - data: data?.data || [], | |
4316 | - total: data?.total || 0, | |
4317 | - }; | |
4318 | - }; | |
4319 | - //biaojidown | |
4320 | - | |
4321 | - //biaojiup2 | |
4322 | - // 监听 calDate 变化,触发请求 | |
4323 | - useEffect(() => { | |
4324 | - if (calDate2) { | |
4325 | - // mainTableRef.current?.reload(); | |
4326 | - mainTableSecondRef.current?.reload(); | |
4327 | - } | |
4328 | - }, [calDate2]); | |
4329 | 4225 | useEffect(() => { |
4330 | - if (activeTabKey === '1') { | |
4331 | - mainTableRef.current?.reload(); // **修改位置:在选择第二个标签时请求request2** | |
4332 | - } | |
4333 | - if (activeTabKey === '2') { | |
4334 | - mainTableSecondRef.current?.reload(); // **修改位置:在选择第二个标签时请求request2** | |
4226 | + if ( | |
4227 | + activeTabKey === 1 || | |
4228 | + activeTabKey === 2 || | |
4229 | + activeTabKey === 3 || | |
4230 | + activeTabKey === 4 | |
4231 | + ) { | |
4232 | + setValue1(0); // 清空 value1 | |
4335 | 4233 | } |
4234 | + mainTableRef.current?.reload(); // **修改位置:在选择第二个标签时请求request2** | |
4336 | 4235 | }, [activeTabKey]); |
4337 | - | |
4338 | - const request2 = async ( | |
4339 | - // 第一个参数 params 查询表单和 params 参数的结合 | |
4340 | - // 第一个参数中一定会有 pageSize 和 current ,这两个参数是 antd 的规范 | |
4341 | - params, | |
4342 | - sorter, | |
4343 | - filter, | |
4344 | - ) => { | |
4345 | - params.invoiceConfirmStatus = 'CONFIRMED'; | |
4346 | - params.paymentMethod = 'UNPAID'; | |
4347 | - params.salesCode = userInfo.username; | |
4348 | - if (calDate2 === 'null') { | |
4349 | - params.invoiceConfirmStatusDatetimeLe = null; | |
4350 | - } else { | |
4351 | - params.invoiceConfirmStatusDatetimeLe = calDate2; | |
4352 | - } | |
4353 | - //订单id处理 | |
4354 | - /** | |
4355 | - * 以params中的id为主,如果params没id,则取url中的id | |
4356 | - * 第一次进来这个页面,url带有id的话,会自动填充到查询表单中,但是第一次查询params不会带这个id进来 | |
4357 | - */ | |
4358 | - let orderIds = mainTableSecondFormRef.current?.getFieldValue('id'); | |
4359 | - let subOrderId = | |
4360 | - mainTableSecondFormRef.current?.getFieldValue('subOrderId'); | |
4361 | - params.id = params.id || orderIds; | |
4362 | - params.subOrderId = params.subOrderId || subOrderId; | |
4363 | - if (params.id !== '') { | |
4364 | - params.id = params.id?.replace(/ /g, ''); | |
4365 | - if (params.id?.indexOf(',')) { | |
4366 | - params.id = params.id.split(','); | |
4367 | - params.id = params.id.filter((id) => { | |
4368 | - return id !== ''; | |
4369 | - }); | |
4370 | - } | |
4371 | - } | |
4372 | - | |
4373 | - params.condition = filterCondifion; | |
4374 | - | |
4375 | - //排序 | |
4376 | - params.sorted = sorted; | |
4377 | - //是否只查看已作废 | |
4378 | - params.isDeleteQueryOrder = filterCondifion === 70; | |
4379 | - params.paymentNotReceipt = true; | |
4380 | - //保存这个搜索条件 | |
4381 | - setSearchParam(params); | |
4382 | - | |
4383 | - //订单标记2 | |
4384 | - const { data } = await postServiceOrderQueryServiceOrder({ | |
4385 | - // ...params, | |
4386 | - // FIXME: remove @ts-ignore | |
4387 | - // @ts-ignore | |
4388 | - sorter, | |
4389 | - filter, | |
4390 | - data: { ...params }, | |
4391 | - }); | |
4392 | - console.log(data, '5656request2'); | |
4393 | - | |
4394 | - setRolePath(data.specialPath); | |
4395 | - setSubOrderCount(data.count); | |
4396 | - setAllMainChecked(false); | |
4397 | - setSelectedMainOrderKeys([]); | |
4398 | - subOrderSelectedMap.clear(); | |
4399 | - mainOrderSelectedMap.clear(); | |
4400 | - setData(data?.data); | |
4401 | - | |
4402 | - //主订单id与子订单id的对照关系保存 | |
4403 | - mainOrderIdSubOrderIdRelationsMap.clear(); | |
4404 | - for (let row of data?.data) { | |
4405 | - let mianOrderId = row.id; | |
4406 | - let subOrderIds = row.subOrderInformationLists?.map((item) => { | |
4407 | - //目前子订单存储的totalPayment不准确,这里重新处理取主订单的totalPayment | |
4408 | - //totalPayment在财务开票计算金额时使用到 | |
4409 | - item.totalPayment = row.totalPayment; | |
4410 | - return item.id; | |
4411 | - }); | |
4412 | - mainOrderIdSubOrderIdRelationsMap.set(mianOrderId, subOrderIds); | |
4236 | + // 修改位置:监听 value1 的变化 | |
4237 | + useEffect(() => { | |
4238 | + if (value1 === 0) { | |
4239 | + // 这里执行你希望在 value1 为 0 时的逻辑 | |
4240 | + mainTableRef.current?.reload(); // 重新请求数据 | |
4413 | 4241 | } |
4414 | - | |
4415 | - return { | |
4416 | - data: data?.data || [], | |
4417 | - total: data?.total || 0, | |
4418 | - }; | |
4419 | - }; | |
4242 | + }, [value1]); // 添加了 value1 作为依赖 | |
4420 | 4243 | //biaojidown2 |
4421 | 4244 | //取消单选,将时间设为null |
4422 | 4245 | const handleSetNull = () => { |
4423 | - setCalDate('null'); // 这应该会触发 useEffect | |
4246 | + setCalDate(null); // 这应该会触发 useEffect | |
4424 | 4247 | }; |
4425 | - const handleSetNull2 = () => { | |
4426 | - setCalDate2('null'); // 这应该会触发 useEffect | |
4248 | + const selectSalesCode = (value) => { | |
4249 | + setSalesCodeSelect(value); // 这应该会触发 useEffect | |
4427 | 4250 | }; |
4428 | - const tabsItems = [ | |
4251 | + const warningOptions = [ | |
4252 | + { | |
4253 | + value: 1, | |
4254 | + label: ( | |
4255 | + <span> | |
4256 | + 确认收货预警 | |
4257 | + <Badge count={invoiceRefundWarningNum} style={{ marginLeft: 8 }} /> | |
4258 | + </span> | |
4259 | + ), | |
4260 | + }, | |
4261 | + { | |
4262 | + value: 2, | |
4263 | + label: ( | |
4264 | + <span> | |
4265 | + 回访登记预警 | |
4266 | + <Badge count={waitFeedback} style={{ marginLeft: 8 }} /> | |
4267 | + </span> | |
4268 | + ), | |
4269 | + }, | |
4429 | 4270 | { |
4430 | - key: '1', | |
4271 | + value: 3, | |
4431 | 4272 | label: ( |
4432 | 4273 | <span> |
4433 | - 发票确认预警 | |
4274 | + 确认发票预警 | |
4434 | 4275 | <Badge count={invoiceWarningNum} style={{ marginLeft: 8 }} /> |
4435 | 4276 | </span> |
4436 | 4277 | ), |
4437 | - children: ( | |
4438 | - <div> | |
4439 | - <div style={{ position: 'relative' }}> | |
4440 | - {/* <Radio.Group options={options1} onChange={radioOnChange1} value={value1} /> */} | |
4441 | - <Radio.Group | |
4442 | - value={value1} | |
4443 | - onChange={radioOnChange1} | |
4444 | - // 通过 onClick 处理单独 Radio 的点击事件 | |
4445 | - > | |
4446 | - {options1.map((option) => ( | |
4447 | - <Radio | |
4448 | - key={option.value} | |
4449 | - value={option.value} | |
4450 | - onClick={(e) => { | |
4451 | - radioOnChange1( | |
4452 | - e as unknown as React.ChangeEvent<HTMLInputElement>, | |
4453 | - ); | |
4454 | - handleSetNull(); | |
4455 | - }} | |
4456 | - > | |
4457 | - {option.label} | |
4458 | - </Radio> | |
4459 | - ))} | |
4460 | - </Radio.Group> | |
4461 | - <Button | |
4462 | - size="large" | |
4463 | - type="primary" | |
4464 | - onClick={confirmInvoice} | |
4465 | - style={{ position: 'absolute', right: '20px' }} | |
4466 | - > | |
4467 | - 确认发票 | |
4468 | - </Button> | |
4469 | - </div> | |
4470 | - <div style={{ height: '25px' }}></div> | |
4471 | - <ProTable | |
4472 | - id="main-table" | |
4473 | - // tableStyle={{backgroundColor:'red'}} | |
4474 | - | |
4475 | - actionRef={mainTableRef} | |
4476 | - formRef={mainTableFormRef} | |
4477 | - expandIconColumnIndex={-1} | |
4478 | - columns={mainOrdersColumns} | |
4479 | - rowKey="id" | |
4480 | - pagination={{ | |
4481 | - showQuickJumper: true, | |
4482 | - pageSize: pageSize, | |
4483 | - current: currentPage, | |
4484 | - showSizeChanger: true, | |
4485 | - onChange: (page, size) => { | |
4486 | - setPageSize(size); | |
4487 | - setCurrentPage(page); | |
4488 | - }, | |
4489 | - showTotal: (total, range) => { | |
4490 | - return ( | |
4491 | - <> | |
4492 | - <span> | |
4493 | - {'第 ' + | |
4494 | - range[0] + | |
4495 | - '-' + | |
4496 | - range[1] + | |
4497 | - ' 条/总共 ' + | |
4498 | - total + | |
4499 | - ' 条主订单 '} | |
4500 | - </span> | |
4501 | - <span className="text-[#8C8C8C]"> | |
4502 | - {' (' + subOrderCount + ' 条子订单)'} | |
4503 | - </span> | |
4504 | - </> | |
4505 | - ); | |
4506 | - }, | |
4507 | - }} | |
4508 | - // showHeader={false} | |
4509 | - expandedRowKeys={expandedRowKeys} | |
4510 | - // expandable={{ expandedRowRender }} | |
4511 | - dateFormatter="string" | |
4512 | - options={false} | |
4513 | - headerTitle="" | |
4514 | - search={false} | |
4515 | - // labelWidth: 'auto', | |
4516 | - // onCollapse: resize, | |
4517 | - // request={request} | |
4518 | - request={activeTabKey === '1' ? request : null} // **条件请求** | |
4519 | - toolbar={{ | |
4520 | - multipleLine: true, | |
4521 | - }} | |
4522 | - // toolBarRender={() => { | |
4523 | - // return toolBarRender(); | |
4524 | - // }} | |
4525 | - /> | |
4278 | + }, | |
4279 | + { | |
4280 | + value: 4, | |
4281 | + label: ( | |
4282 | + <span> | |
4283 | + 订单回款预警 | |
4284 | + <Badge count={waitConfirmPayment} style={{ marginLeft: 8 }} /> | |
4285 | + </span> | |
4286 | + ), | |
4287 | + }, | |
4288 | + ]; | |
4526 | 4289 | |
4527 | - {orderDrawerVisible && ( | |
4528 | - <OrderDrawer | |
4529 | - data={orderOptType === 'add' ? {} : buildMainOrder()} | |
4530 | - subOrders={orderOptType === 'add' ? [] : buildSubOrders()} | |
4531 | - onClose={(isSuccess: boolean) => { | |
4532 | - setOrderDrawerVisible(false); | |
4533 | - clearOptObject(); | |
4534 | - if (isSuccess) { | |
4535 | - refreshTable(); | |
4536 | - } | |
4537 | - }} | |
4538 | - orderOptType={orderOptType} | |
4539 | - /> | |
4540 | - )} | |
4541 | - | |
4542 | - {checkVisible && ( | |
4543 | - <CheckModal | |
4544 | - setCheckVisible={(val: boolean) => { | |
4545 | - setCheckVisible(val); | |
4546 | - if (!val) { | |
4547 | - clearOptObject(); | |
4548 | - } | |
4549 | - }} | |
4550 | - data={isMainOrder ? getFirstMainOrder() : buildMainOrder()} | |
4551 | - subOrders={ | |
4552 | - isMainOrder | |
4553 | - ? [...subOrderSelectedMap.values()].flat() | |
4554 | - : buildSubOrders() | |
4555 | - } | |
4556 | - orderCheckType={orderCheckType} | |
4557 | - openOrderDrawer={(type: any, id: any) => { | |
4558 | - setCurrentMainId(id); | |
4559 | - setOrderOptType(type); | |
4560 | - setOrderDrawerVisible(true); | |
4561 | - }} | |
4562 | - onClose={() => { | |
4563 | - clearOptObject(); | |
4564 | - setCheckVisible(false); | |
4565 | - refreshTable(); | |
4566 | - }} | |
4567 | - /> | |
4568 | - )} | |
4569 | - | |
4570 | - {applyForInvoicingVisible && ( | |
4571 | - <ApplyForInvoicingModal | |
4572 | - setCheckVisible={(val: boolean) => { | |
4573 | - setApplyForInvoicingVisible(val); | |
4574 | - if (!val) { | |
4575 | - clearOptObject(); | |
4576 | - } | |
4577 | - }} | |
4578 | - subOrders={ | |
4579 | - isMainOrder | |
4580 | - ? [...subOrderSelectedMap.values()].flat() | |
4581 | - : buildSubOrders() | |
4582 | - } | |
4583 | - totalPayment={getApplyInvoicingTotalPayment()} | |
4584 | - isMainOrder={isMainOrder} | |
4585 | - isEdit={isEdit} | |
4586 | - onClose={() => { | |
4587 | - setApplyForInvoicingVisible(false); | |
4588 | - setIsMainOrder(false); | |
4589 | - clearOptObject(); | |
4590 | - refreshTable(); | |
4591 | - }} | |
4592 | - /> | |
4593 | - )} | |
4594 | - | |
4595 | - {notesEditVisible && ( | |
4596 | - <OrderNotesEditModal | |
4597 | - setNotesEditVisible={(val: boolean) => { | |
4598 | - setNotesEditVisible(val); | |
4599 | - if (!val) { | |
4600 | - clearOptObject(); | |
4601 | - } | |
4602 | - }} | |
4603 | - ids={selectedRows} | |
4604 | - notesType={notesType} | |
4605 | - notes={notes} | |
4606 | - onClose={() => { | |
4607 | - setNotesEditVisible(false); | |
4608 | - setSelectedRows([]); | |
4609 | - setNotes(notes); | |
4610 | - setNotesType(1); | |
4611 | - refreshTable(); | |
4612 | - }} | |
4613 | - /> | |
4614 | - )} | |
4615 | - | |
4616 | - {deliverVisible && ( | |
4617 | - <DeliverModal | |
4618 | - data={buildSubOrders()} | |
4619 | - isSendProduct={isSendProduct} | |
4620 | - setVisible={(val: boolean) => { | |
4621 | - setDeliverVisible(val); | |
4622 | - if (!val) { | |
4623 | - clearOptObject(); | |
4624 | - } | |
4625 | - }} | |
4626 | - sendType={orderCheckType} | |
4627 | - onClose={() => { | |
4628 | - clearOptObject(); | |
4629 | - setDeliverVisible(false); | |
4630 | - setIsSendProduct(false); | |
4631 | - refreshTable(); | |
4632 | - }} | |
4633 | - /> | |
4634 | - )} | |
4635 | - | |
4636 | - {financialVisible && ( | |
4637 | - <FinancialDrawer | |
4638 | - isEdit={isEdit} | |
4639 | - mainOrder={isMainOrder ? getFirstMainOrder() : buildMainOrder()} | |
4640 | - subOrders={ | |
4641 | - isMainOrder | |
4642 | - ? [...subOrderSelectedMap.values()].flat() | |
4643 | - : buildSubOrders() | |
4644 | - } | |
4645 | - isMainOrder={isMainOrder} | |
4646 | - cancel={() => { | |
4647 | - setFinancialVisible(false); | |
4648 | - clearOptObject(); | |
4649 | - setIsMainOrder(false); | |
4650 | - setIsEdit(false); | |
4651 | - }} | |
4652 | - onClose={() => { | |
4653 | - setFinancialVisible(false); | |
4654 | - clearOptObject(); | |
4655 | - refreshTable(); | |
4656 | - setIsMainOrder(false); | |
4657 | - setIsEdit(false); | |
4658 | - }} | |
4659 | - /> | |
4660 | - )} | |
4661 | - | |
4662 | - {financialEditVisible && ( | |
4663 | - <FinancialEditDrawer | |
4664 | - mainOrder={buildMainOrder()} | |
4665 | - subOrders={buildSubOrders()} | |
4666 | - isMainOrder={isMainOrder} | |
4667 | - setVisible={() => { | |
4668 | - setFinancialEditVisible(false); | |
4669 | - clearOptObject(); | |
4670 | - }} | |
4671 | - onClose={() => { | |
4672 | - setFinancialEditVisible(false); | |
4673 | - refreshTable(); | |
4674 | - setIsMainOrder(false); | |
4675 | - clearOptObject(); | |
4676 | - }} | |
4677 | - /> | |
4678 | - )} | |
4679 | - | |
4680 | - {orderPrintVisible && ( | |
4681 | - <OrderPrintModal | |
4682 | - mainOrder={buildMainOrder()} | |
4683 | - subOrders={buildSubOrders()} | |
4684 | - isRePrint={isRePrintOrder} | |
4685 | - setVisible={(val: boolean) => { | |
4686 | - setOrderPrintVisible(val); | |
4687 | - if (!val) { | |
4688 | - clearOptObject(); | |
4689 | - } | |
4690 | - }} | |
4691 | - printOptType={orderCheckType} | |
4692 | - onClose={() => { | |
4693 | - setOrderPrintVisible(false); | |
4694 | - clearOptObject(); | |
4695 | - setIsRePrintOrder(false); | |
4696 | - refreshTable(); | |
4697 | - }} | |
4698 | - /> | |
4699 | - )} | |
4700 | - | |
4701 | - {confirmReceiptVisible && ( | |
4702 | - <ConfirmReceiptModal | |
4703 | - data={buildSubOrders()} | |
4704 | - onClose={() => { | |
4705 | - setConfirmReceiptVisible(false); | |
4706 | - clearOptObject(); | |
4707 | - refreshTable(); | |
4708 | - }} | |
4709 | - /> | |
4710 | - )} | |
4711 | - | |
4712 | - {imagesViewerModalVisible && ( | |
4713 | - <ImagesViewerModal | |
4714 | - optType={imagesViewerOptType} | |
4715 | - setVisible={(val: boolean) => { | |
4716 | - setImagesViewerModalVisible(val); | |
4717 | - if (!val) { | |
4718 | - clearOptObject(); | |
4719 | - } | |
4720 | - }} | |
4721 | - onClose={() => { | |
4722 | - setImagesViewerModalVisible(false); | |
4723 | - }} | |
4724 | - orderRow={buildSubOrders()[0]} | |
4725 | - /> | |
4726 | - )} | |
4727 | - | |
4728 | - {importModalVisible && ( | |
4729 | - <ImportModal | |
4730 | - onClose={() => { | |
4731 | - setImportModalVisible(false); | |
4732 | - refreshTable(); | |
4733 | - }} | |
4734 | - /> | |
4735 | - )} | |
4736 | - | |
4737 | - {attachmentModalVisible && ( | |
4738 | - <AttachmentModal | |
4739 | - data={buildSubOrders()[0]} | |
4740 | - onClose={() => { | |
4741 | - setAttachmentModalVisible(false); | |
4742 | - clearOptObject(); | |
4743 | - }} | |
4744 | - /> | |
4745 | - )} | |
4746 | - | |
4747 | - {historyModalVisible && ( | |
4748 | - <HistoryModal | |
4749 | - subOrders={selectedRows} | |
4750 | - isCancelledOrder={filterCondifion === 70} | |
4751 | - onClose={() => { | |
4752 | - setHistoryModalVisible(false); | |
4753 | - setSelectedRows({}); | |
4754 | - clearOptObject(); | |
4755 | - }} | |
4756 | - /> | |
4757 | - )} | |
4758 | - | |
4759 | - {deliverInfoDrawerVisible && ( | |
4760 | - <DeliverInfoDrawer | |
4761 | - data={buildMainOrder()} | |
4762 | - onClose={() => { | |
4763 | - setDeliverInfoDrawerVisible(false); | |
4764 | - clearOptObject(); | |
4765 | - }} | |
4766 | - /> | |
4767 | - )} | |
4768 | - | |
4769 | - {deliverInfoDrawerVisible && ( | |
4770 | - <DeliverInfoDrawer | |
4771 | - data={buildMainOrder()} | |
4772 | - onClose={() => { | |
4773 | - setDeliverInfoDrawerVisible(false); | |
4774 | - clearOptObject(); | |
4775 | - }} | |
4776 | - /> | |
4777 | - )} | |
4778 | - | |
4779 | - {procureCheckModalVisible && ( | |
4780 | - <ProcureCheckModal | |
4781 | - setCheckVisible={(val: boolean) => { | |
4782 | - setProcureCheckModalVisible(val); | |
4783 | - if (!val) { | |
4784 | - clearOptObject(); | |
4785 | - } | |
4786 | - }} | |
4787 | - isMainOrder={isMainOrder} | |
4788 | - orders={ | |
4789 | - isMainOrder | |
4790 | - ? [...subOrderSelectedMap.values()].flat() | |
4791 | - : buildSubOrders() | |
4792 | - } | |
4793 | - onClose={() => { | |
4794 | - setProcureCheckModalVisible(false); | |
4795 | - clearOptObject(); | |
4796 | - setIsMainOrder(false); | |
4797 | - refreshTable(); | |
4798 | - }} | |
4799 | - /> | |
4800 | - )} | |
4801 | - | |
4802 | - {afterSalesDrawerVisible && ( | |
4803 | - <AfterSalesDrawer | |
4804 | - setVisible={(val: boolean) => { | |
4805 | - setAfterSalesDrawerVisible(val); | |
4806 | - if (!val) { | |
4807 | - clearOptObject(); | |
4808 | - } | |
4809 | - }} | |
4810 | - mainOrder={buildMainOrder()} | |
4811 | - subOrders={buildSubOrders()} | |
4812 | - onClose={() => { | |
4813 | - setAfterSalesDrawerVisible(false); | |
4814 | - clearOptObject(); | |
4815 | - refreshTable(); | |
4816 | - }} | |
4817 | - /> | |
4818 | - )} | |
4819 | - | |
4820 | - {procureConvertModalVisible && ( | |
4821 | - <ProcureConvertModal | |
4822 | - setVisible={(val: boolean) => { | |
4823 | - setProcureConvertModalVisible(val); | |
4824 | - if (!val) { | |
4825 | - clearOptObject(); | |
4826 | - } | |
4827 | - }} | |
4828 | - subOrders={buildSubOrders()} | |
4829 | - onClose={() => { | |
4830 | - setProcureConvertModalVisible(false); | |
4831 | - clearOptObject(); | |
4832 | - refreshTable(); | |
4833 | - }} | |
4834 | - /> | |
4835 | - )} | |
4836 | - | |
4837 | - {financialMergeDrawerVisible && ( | |
4838 | - <FinancialMergeDrawer | |
4839 | - setVisible={(val: boolean) => { | |
4840 | - setFinancialMergeDrawerVisible(val); | |
4841 | - if (!val) { | |
4842 | - clearOptObject(); | |
4843 | - } | |
4844 | - }} | |
4845 | - dataList={ | |
4846 | - isMainOrder | |
4847 | - ? [...subOrderSelectedMap.values()].flat() | |
4848 | - : buildSubOrders() | |
4849 | - } | |
4850 | - onClose={() => { | |
4851 | - setFinancialMergeDrawerVisible(false); | |
4852 | - setIsMainOrder(false); | |
4853 | - clearOptObject(); | |
4854 | - refreshTable(); | |
4855 | - }} | |
4856 | - /> | |
4857 | - )} | |
4858 | - | |
4859 | - {financialReceiptsModalVisible && ( | |
4860 | - <FinancialReceiptsModal | |
4861 | - setVisible={(val: boolean) => { | |
4862 | - setFinancialReceiptsModalVisible(val); | |
4863 | - if (!val) { | |
4864 | - clearOptObject(); | |
4865 | - } | |
4866 | - }} | |
4867 | - datas={selectedRows} | |
4868 | - onClose={() => { | |
4869 | - setFinancialReceiptsModalVisible(false); | |
4870 | - setSelectedRows({}); | |
4871 | - refreshTable(); | |
4872 | - }} | |
4873 | - /> | |
4874 | - )} | |
4875 | - | |
4876 | - {shippingWarehouseChangeModalVisible && ( | |
4877 | - <ShippingWarehouseChangeModal | |
4878 | - setVisible={(val: boolean) => { | |
4879 | - setShippingWarehouseChangeModalVisible(val); | |
4880 | - if (!val) { | |
4881 | - clearOptObject(); | |
4882 | - } | |
4883 | - }} | |
4884 | - subOrderIds={ids} | |
4885 | - originShippingWarehouse={buildSubOrders()[0].shippingWarehouse} | |
4886 | - onClose={() => { | |
4887 | - setShippingWarehouseChangeModalVisible(false); | |
4888 | - clearOptObject(); | |
4889 | - setIds([]); | |
4890 | - refreshTable(); | |
4891 | - }} | |
4892 | - /> | |
4893 | - )} | |
4894 | - {reissueVisible && ( | |
4895 | - <ReissueModal | |
4896 | - setVisible={(val: boolean) => { | |
4897 | - setReissueVisible(val); | |
4898 | - if (!val) { | |
4899 | - clearOptObject(); | |
4900 | - } | |
4901 | - }} | |
4902 | - subOrders={ | |
4903 | - isMainOrder | |
4904 | - ? [...subOrderSelectedMap.values()].flat() | |
4905 | - : buildSubOrders() | |
4906 | - } | |
4907 | - onClose={() => { | |
4908 | - setReissueVisible(false); | |
4909 | - clearOptObject(); | |
4910 | - refreshTable(); | |
4911 | - }} | |
4912 | - /> | |
4913 | - )} | |
4914 | - {reissueVisibleOld && ( | |
4915 | - <ReissueModal_old | |
4916 | - setVisible={(val: boolean) => { | |
4917 | - setReissueVisibleOld(val); | |
4918 | - console.log(reissueVisible); | |
4919 | - if (!val) { | |
4920 | - clearOptObject(); | |
4921 | - } | |
4922 | - }} | |
4923 | - mainOrder={buildMainOrder()} | |
4924 | - subOrders={buildSubOrders()} | |
4925 | - onClose={() => { | |
4926 | - setReissueVisibleOld(false); | |
4927 | - clearOptObject(); | |
4928 | - refreshTable(); | |
4929 | - }} | |
4930 | - /> | |
4931 | - )} | |
4932 | - {productionTimeModalVisible && ( | |
4933 | - <ProductionTimeModal | |
4934 | - setVisible={(val: boolean) => { | |
4935 | - setProductionTimeModalVisible(val); | |
4936 | - if (!val) { | |
4937 | - clearOptObject(); | |
4938 | - } | |
4939 | - }} | |
4940 | - subOrders={buildSubOrders()} | |
4941 | - onClose={() => { | |
4942 | - setProductionTimeModalVisible(false); | |
4943 | - clearOptObject(); | |
4944 | - refreshTable(); | |
4945 | - }} | |
4946 | - /> | |
4947 | - )} | |
4948 | - | |
4949 | - {modifiedDiffModalVisible && ( | |
4950 | - <ModifiedDiffModal | |
4951 | - setVisible={(val: boolean) => { | |
4952 | - setModifiedDiffModalVisible(val); | |
4953 | - if (!val) { | |
4954 | - clearOptObject(); | |
4955 | - } | |
4956 | - }} | |
4957 | - subOrders={buildSubOrders()} | |
4958 | - mainOrder={buildMainOrder()} | |
4959 | - onClose={() => { | |
4960 | - setModifiedDiffModalVisible(false); | |
4961 | - clearOptObject(); | |
4962 | - }} | |
4963 | - /> | |
4964 | - )} | |
4965 | - | |
4966 | - {uploadPayBillModalVisible && ( | |
4967 | - <UploadPayBillModal | |
4968 | - setVisible={(val: boolean) => { | |
4969 | - setUploadPayBillModalVisible(val); | |
4970 | - if (!val) { | |
4971 | - clearOptObject(); | |
4972 | - } | |
4973 | - }} | |
4974 | - subOrders={buildSubOrders()} | |
4975 | - mainOrder={buildMainOrder()} | |
4976 | - onClose={() => { | |
4977 | - setUploadPayBillModalVisible(false); | |
4978 | - clearOptObject(); | |
4979 | - refreshTable(); | |
4980 | - }} | |
4981 | - /> | |
4982 | - )} | |
4983 | - {invoicingDrawerFormVisible && ( | |
4984 | - <InvoicingDrawerForm | |
4985 | - dataList={ | |
4986 | - isMainOrder | |
4987 | - ? [...subOrderSelectedMap.values()].flat() | |
4988 | - : buildSubOrders() | |
4989 | - } | |
4990 | - setVisible={(val: boolean) => { | |
4991 | - setInvoicingDrawerFormVisible(val); | |
4992 | - if (!val) { | |
4993 | - clearOptObject(); | |
4994 | - } | |
4995 | - }} | |
4996 | - mainOrder={isMainOrder ? getFirstMainOrder() : buildMainOrder()} | |
4997 | - onClose={() => { | |
4998 | - setInvoicingDrawerFormVisible(false); | |
4999 | - setIsMainOrder(true); | |
5000 | - clearOptObject(); | |
5001 | - refreshTable(); | |
5002 | - }} | |
5003 | - /> | |
5004 | - )} | |
5005 | - {contextHolder} | |
5006 | - <FloatButton.BackTop visibilityHeight={0} /> | |
5007 | - </div> | |
5008 | - ), | |
5009 | - }, | |
5010 | - { | |
5011 | - key: '2', | |
5012 | - label: ( | |
5013 | - <span> | |
5014 | - 订单回款预警 | |
5015 | - <Badge count={invoiceRefundWarningNum} style={{ marginLeft: 8 }} /> | |
5016 | - </span> | |
5017 | - ), | |
5018 | - children: ( | |
5019 | - <div> | |
5020 | - {/* <Radio.Group options={options2} onChange={radioOnChange2} value={value2} /> */} | |
5021 | - <Radio.Group | |
5022 | - value={value2} | |
5023 | - onChange={radioOnChange2} | |
5024 | - // 通过 onClick 处理单独 Radio 的点击事件 | |
5025 | - > | |
5026 | - {options2.map((option) => ( | |
4290 | + return ( | |
4291 | + <div className="order-page-container"> | |
4292 | + <div id="resizeDiv"></div> | |
4293 | + <div key={'activeTabKey'}> | |
4294 | + <Radio.Group | |
4295 | + options={warningOptions} | |
4296 | + onChange={(e) => { | |
4297 | + setActiveTabKey(e.target.value); | |
4298 | + mainTableRef.current?.reload(); // 重新请求数据 | |
4299 | + }} | |
4300 | + value={activeTabKey} | |
4301 | + optionType="button" | |
4302 | + /> | |
4303 | + </div> | |
4304 | + <div style={{ height: '25px' }}></div> | |
4305 | + <div | |
4306 | + style={{ | |
4307 | + display: 'flex', | |
4308 | + justifyContent: 'space-between', | |
4309 | + alignItems: 'center', | |
4310 | + width: '100%', | |
4311 | + }} | |
4312 | + > | |
4313 | + {/* 左边的 Radio.Group */} | |
4314 | + <span style={{ flex: '1' }}> | |
4315 | + {' '} | |
4316 | + {/* 修改:设置 flex 属性 */} | |
4317 | + <Radio.Group value={value1} onChange={radioOnChange1}> | |
4318 | + {(activeTabKey === 1 | |
4319 | + ? options1 | |
4320 | + : activeTabKey === 2 | |
4321 | + ? options2 | |
4322 | + : activeTabKey === 3 | |
4323 | + ? options3 | |
4324 | + : options4 | |
4325 | + ).map((option) => ( | |
5027 | 4326 | <Radio |
5028 | 4327 | key={option.value} |
5029 | 4328 | value={option.value} |
5030 | 4329 | onClick={(e) => { |
5031 | - radioOnChange2( | |
4330 | + radioOnChange1( | |
5032 | 4331 | e as unknown as React.ChangeEvent<HTMLInputElement>, |
5033 | 4332 | ); |
5034 | - handleSetNull2(); | |
4333 | + handleSetNull(); | |
5035 | 4334 | }} |
5036 | 4335 | > |
5037 | 4336 | {option.label} |
5038 | 4337 | </Radio> |
5039 | 4338 | ))} |
5040 | 4339 | </Radio.Group> |
5041 | - <div style={{ height: '25px' }}></div> | |
5042 | - <ProTable | |
5043 | - id="main-table" | |
5044 | - // tableStyle={{backgroundColor:'red'}} | |
5045 | - | |
5046 | - actionRef={mainTableSecondRef} | |
5047 | - formRef={mainTableSecondFormRef} | |
5048 | - expandIconColumnIndex={-1} | |
5049 | - columns={mainOrdersColumns2} | |
5050 | - rowKey="id" | |
5051 | - pagination={{ | |
5052 | - showQuickJumper: true, | |
5053 | - pageSize: pageSize, | |
5054 | - current: currentPage, | |
5055 | - showSizeChanger: true, | |
5056 | - onChange: (page, size) => { | |
5057 | - setPageSize(size); | |
5058 | - setCurrentPage(page); | |
5059 | - mainTableSecondRef.current?.reload(); | |
5060 | - }, | |
5061 | - showTotal: (total, range) => { | |
5062 | - return ( | |
5063 | - <> | |
5064 | - <span> | |
5065 | - {'第 ' + | |
5066 | - range[0] + | |
5067 | - '-' + | |
5068 | - range[1] + | |
5069 | - ' 条/总共 ' + | |
5070 | - total + | |
5071 | - ' 条主订单 '} | |
5072 | - </span> | |
5073 | - <span className="text-[#8C8C8C]"> | |
5074 | - {' (' + subOrderCount + ' 条子订单)'} | |
5075 | - </span> | |
5076 | - </> | |
5077 | - ); | |
5078 | - }, | |
5079 | - }} | |
5080 | - // showHeader={false} | |
5081 | - expandedRowKeys={expandedRowKeys} | |
5082 | - // expandable={{ expandedRowRender }} | |
5083 | - dateFormatter="string" | |
5084 | - options={false} | |
5085 | - headerTitle="" | |
5086 | - search={false} | |
5087 | - // labelWidth: 'auto', | |
5088 | - // onCollapse: resize, | |
5089 | - // request={request2} | |
5090 | - request={activeTabKey === '2' ? request2 : null} // **条件请求** | |
5091 | - toolbar={{ | |
5092 | - multipleLine: true, | |
5093 | - }} | |
5094 | - // toolBarRender={() => { | |
5095 | - // return toolBarRender(); | |
5096 | - // }} | |
5097 | - /> | |
5098 | - | |
5099 | - {orderDrawerVisible && ( | |
5100 | - <OrderDrawer | |
5101 | - data={orderOptType === 'add' ? {} : buildMainOrder()} | |
5102 | - subOrders={orderOptType === 'add' ? [] : buildSubOrders()} | |
5103 | - onClose={(isSuccess: boolean) => { | |
5104 | - setOrderDrawerVisible(false); | |
5105 | - clearOptObject(); | |
5106 | - if (isSuccess) { | |
5107 | - refreshTable2(); | |
5108 | - } | |
5109 | - }} | |
5110 | - orderOptType={orderOptType} | |
5111 | - /> | |
5112 | - )} | |
5113 | - | |
5114 | - {checkVisible && ( | |
5115 | - <CheckModal | |
5116 | - setCheckVisible={(val: boolean) => { | |
5117 | - setCheckVisible(val); | |
5118 | - if (!val) { | |
5119 | - clearOptObject(); | |
5120 | - } | |
5121 | - }} | |
5122 | - data={isMainOrder ? getFirstMainOrder() : buildMainOrder()} | |
5123 | - subOrders={ | |
5124 | - isMainOrder | |
5125 | - ? [...subOrderSelectedMap.values()].flat() | |
5126 | - : buildSubOrders() | |
5127 | - } | |
5128 | - orderCheckType={orderCheckType} | |
5129 | - openOrderDrawer={(type: any, id: any) => { | |
5130 | - setCurrentMainId(id); | |
5131 | - setOrderOptType(type); | |
5132 | - setOrderDrawerVisible(true); | |
5133 | - }} | |
5134 | - onClose={() => { | |
5135 | - clearOptObject(); | |
5136 | - setCheckVisible(false); | |
5137 | - refreshTable2(); | |
5138 | - }} | |
5139 | - /> | |
5140 | - )} | |
5141 | - | |
5142 | - {applyForInvoicingVisible && ( | |
5143 | - <ApplyForInvoicingModal | |
5144 | - setCheckVisible={(val: boolean) => { | |
5145 | - setApplyForInvoicingVisible(val); | |
5146 | - if (!val) { | |
5147 | - clearOptObject(); | |
5148 | - } | |
5149 | - }} | |
5150 | - subOrders={ | |
5151 | - isMainOrder | |
5152 | - ? [...subOrderSelectedMap.values()].flat() | |
5153 | - : buildSubOrders() | |
5154 | - } | |
5155 | - totalPayment={getApplyInvoicingTotalPayment()} | |
5156 | - isMainOrder={isMainOrder} | |
5157 | - isEdit={isEdit} | |
5158 | - onClose={() => { | |
5159 | - setApplyForInvoicingVisible(false); | |
5160 | - setIsMainOrder(false); | |
5161 | - clearOptObject(); | |
5162 | - refreshTable2(); | |
5163 | - }} | |
5164 | - /> | |
5165 | - )} | |
5166 | - | |
5167 | - {notesEditVisible && ( | |
5168 | - <OrderNotesEditModal | |
5169 | - setNotesEditVisible={(val: boolean) => { | |
5170 | - setNotesEditVisible(val); | |
5171 | - if (!val) { | |
5172 | - clearOptObject(); | |
5173 | - } | |
5174 | - }} | |
5175 | - ids={selectedRows} | |
5176 | - notesType={notesType} | |
5177 | - notes={notes} | |
5178 | - onClose={() => { | |
5179 | - setNotesEditVisible(false); | |
5180 | - setSelectedRows([]); | |
5181 | - setNotes(notes); | |
5182 | - setNotesType(1); | |
5183 | - refreshTable2(); | |
5184 | - }} | |
5185 | - /> | |
5186 | - )} | |
5187 | - | |
5188 | - {deliverVisible && ( | |
5189 | - <DeliverModal | |
5190 | - data={buildSubOrders()} | |
5191 | - isSendProduct={isSendProduct} | |
5192 | - setVisible={(val: boolean) => { | |
5193 | - setDeliverVisible(val); | |
5194 | - if (!val) { | |
5195 | - clearOptObject(); | |
5196 | - } | |
5197 | - }} | |
5198 | - sendType={orderCheckType} | |
5199 | - onClose={() => { | |
5200 | - clearOptObject(); | |
5201 | - setDeliverVisible(false); | |
5202 | - setIsSendProduct(false); | |
5203 | - refreshTable2(); | |
5204 | - }} | |
5205 | - /> | |
5206 | - )} | |
5207 | - | |
5208 | - {financialVisible && ( | |
5209 | - <FinancialDrawer | |
5210 | - isEdit={isEdit} | |
5211 | - mainOrder={isMainOrder ? getFirstMainOrder() : buildMainOrder()} | |
5212 | - subOrders={ | |
5213 | - isMainOrder | |
5214 | - ? [...subOrderSelectedMap.values()].flat() | |
5215 | - : buildSubOrders() | |
5216 | - } | |
5217 | - isMainOrder={isMainOrder} | |
5218 | - cancel={() => { | |
5219 | - setFinancialVisible(false); | |
5220 | - clearOptObject(); | |
5221 | - setIsMainOrder(false); | |
5222 | - setIsEdit(false); | |
5223 | - }} | |
5224 | - onClose={() => { | |
5225 | - setFinancialVisible(false); | |
5226 | - clearOptObject(); | |
5227 | - refreshTable2(); | |
5228 | - setIsMainOrder(false); | |
5229 | - setIsEdit(false); | |
5230 | - }} | |
5231 | - /> | |
5232 | - )} | |
5233 | - | |
5234 | - {financialEditVisible && ( | |
5235 | - <FinancialEditDrawer | |
5236 | - mainOrder={buildMainOrder()} | |
5237 | - subOrders={buildSubOrders()} | |
5238 | - isMainOrder={isMainOrder} | |
5239 | - setVisible={() => { | |
5240 | - setFinancialEditVisible(false); | |
5241 | - clearOptObject(); | |
5242 | - }} | |
5243 | - onClose={() => { | |
5244 | - setFinancialEditVisible(false); | |
5245 | - refreshTable2(); | |
5246 | - setIsMainOrder(false); | |
5247 | - clearOptObject(); | |
5248 | - }} | |
5249 | - /> | |
5250 | - )} | |
5251 | - | |
5252 | - {orderPrintVisible && ( | |
5253 | - <OrderPrintModal | |
5254 | - mainOrder={buildMainOrder()} | |
5255 | - subOrders={buildSubOrders()} | |
5256 | - isRePrint={isRePrintOrder} | |
5257 | - setVisible={(val: boolean) => { | |
5258 | - setOrderPrintVisible(val); | |
5259 | - if (!val) { | |
5260 | - clearOptObject(); | |
5261 | - } | |
5262 | - }} | |
5263 | - printOptType={orderCheckType} | |
5264 | - onClose={() => { | |
5265 | - setOrderPrintVisible(false); | |
5266 | - clearOptObject(); | |
5267 | - setIsRePrintOrder(false); | |
5268 | - refreshTable2(); | |
5269 | - }} | |
5270 | - /> | |
5271 | - )} | |
5272 | - | |
5273 | - {confirmReceiptVisible && ( | |
5274 | - <ConfirmReceiptModal | |
5275 | - data={buildSubOrders()} | |
5276 | - onClose={() => { | |
5277 | - setConfirmReceiptVisible(false); | |
5278 | - clearOptObject(); | |
5279 | - refreshTable2(); | |
5280 | - }} | |
5281 | - /> | |
5282 | - )} | |
5283 | - | |
5284 | - {imagesViewerModalVisible && ( | |
5285 | - <ImagesViewerModal | |
5286 | - optType={imagesViewerOptType} | |
5287 | - setVisible={(val: boolean) => { | |
5288 | - setImagesViewerModalVisible(val); | |
5289 | - if (!val) { | |
5290 | - clearOptObject(); | |
5291 | - } | |
5292 | - }} | |
5293 | - onClose={() => { | |
5294 | - setImagesViewerModalVisible(false); | |
5295 | - }} | |
5296 | - orderRow={buildSubOrders()[0]} | |
5297 | - /> | |
5298 | - )} | |
5299 | - | |
5300 | - {importModalVisible && ( | |
5301 | - <ImportModal | |
5302 | - onClose={() => { | |
5303 | - setImportModalVisible(false); | |
5304 | - refreshTable2(); | |
5305 | - }} | |
5306 | - /> | |
5307 | - )} | |
5308 | - | |
5309 | - {attachmentModalVisible && ( | |
5310 | - <AttachmentModal | |
5311 | - data={buildSubOrders()[0]} | |
5312 | - onClose={() => { | |
5313 | - setAttachmentModalVisible(false); | |
5314 | - clearOptObject(); | |
5315 | - }} | |
5316 | - /> | |
5317 | - )} | |
5318 | - | |
5319 | - {historyModalVisible && ( | |
5320 | - <HistoryModal | |
5321 | - subOrders={selectedRows} | |
5322 | - isCancelledOrder={filterCondifion === 70} | |
5323 | - onClose={() => { | |
5324 | - setHistoryModalVisible(false); | |
5325 | - setSelectedRows({}); | |
5326 | - clearOptObject(); | |
5327 | - }} | |
5328 | - /> | |
5329 | - )} | |
5330 | - | |
5331 | - {deliverInfoDrawerVisible && ( | |
5332 | - <DeliverInfoDrawer | |
5333 | - data={buildMainOrder()} | |
5334 | - onClose={() => { | |
5335 | - setDeliverInfoDrawerVisible(false); | |
5336 | - clearOptObject(); | |
5337 | - }} | |
5338 | - /> | |
5339 | - )} | |
5340 | - | |
5341 | - {deliverInfoDrawerVisible && ( | |
5342 | - <DeliverInfoDrawer | |
5343 | - data={buildMainOrder()} | |
5344 | - onClose={() => { | |
5345 | - setDeliverInfoDrawerVisible(false); | |
5346 | - clearOptObject(); | |
5347 | - }} | |
5348 | - /> | |
5349 | - )} | |
5350 | - | |
5351 | - {procureCheckModalVisible && ( | |
5352 | - <ProcureCheckModal | |
5353 | - setCheckVisible={(val: boolean) => { | |
5354 | - setProcureCheckModalVisible(val); | |
5355 | - if (!val) { | |
5356 | - clearOptObject(); | |
5357 | - } | |
5358 | - }} | |
5359 | - isMainOrder={isMainOrder} | |
5360 | - orders={ | |
5361 | - isMainOrder | |
5362 | - ? [...subOrderSelectedMap.values()].flat() | |
5363 | - : buildSubOrders() | |
5364 | - } | |
5365 | - onClose={() => { | |
5366 | - setProcureCheckModalVisible(false); | |
5367 | - clearOptObject(); | |
5368 | - setIsMainOrder(false); | |
5369 | - refreshTable2(); | |
5370 | - }} | |
5371 | - /> | |
5372 | - )} | |
5373 | - | |
5374 | - {afterSalesDrawerVisible && ( | |
5375 | - <AfterSalesDrawer | |
5376 | - setVisible={(val: boolean) => { | |
5377 | - setAfterSalesDrawerVisible(val); | |
5378 | - if (!val) { | |
5379 | - clearOptObject(); | |
5380 | - } | |
5381 | - }} | |
5382 | - mainOrder={buildMainOrder()} | |
5383 | - subOrders={buildSubOrders()} | |
5384 | - onClose={() => { | |
5385 | - setAfterSalesDrawerVisible(false); | |
5386 | - clearOptObject(); | |
5387 | - refreshTable2(); | |
5388 | - }} | |
5389 | - /> | |
5390 | - )} | |
5391 | - | |
5392 | - {procureConvertModalVisible && ( | |
5393 | - <ProcureConvertModal | |
5394 | - setVisible={(val: boolean) => { | |
5395 | - setProcureConvertModalVisible(val); | |
5396 | - if (!val) { | |
5397 | - clearOptObject(); | |
5398 | - } | |
5399 | - }} | |
5400 | - subOrders={buildSubOrders()} | |
5401 | - onClose={() => { | |
5402 | - setProcureConvertModalVisible(false); | |
5403 | - clearOptObject(); | |
5404 | - refreshTable2(); | |
5405 | - }} | |
5406 | - /> | |
5407 | - )} | |
5408 | - | |
5409 | - {financialMergeDrawerVisible && ( | |
5410 | - <FinancialMergeDrawer | |
5411 | - setVisible={(val: boolean) => { | |
5412 | - setFinancialMergeDrawerVisible(val); | |
5413 | - if (!val) { | |
5414 | - clearOptObject(); | |
5415 | - } | |
5416 | - }} | |
5417 | - dataList={ | |
5418 | - isMainOrder | |
5419 | - ? [...subOrderSelectedMap.values()].flat() | |
5420 | - : buildSubOrders() | |
5421 | - } | |
5422 | - onClose={() => { | |
5423 | - setFinancialMergeDrawerVisible(false); | |
5424 | - setIsMainOrder(false); | |
5425 | - clearOptObject(); | |
5426 | - refreshTable2(); | |
5427 | - }} | |
5428 | - /> | |
5429 | - )} | |
5430 | - | |
5431 | - {financialReceiptsModalVisible && ( | |
5432 | - <FinancialReceiptsModal | |
5433 | - setVisible={(val: boolean) => { | |
5434 | - setFinancialReceiptsModalVisible(val); | |
5435 | - if (!val) { | |
5436 | - clearOptObject(); | |
5437 | - } | |
5438 | - }} | |
5439 | - datas={selectedRows} | |
5440 | - onClose={() => { | |
5441 | - setFinancialReceiptsModalVisible(false); | |
5442 | - setSelectedRows({}); | |
5443 | - refreshTable2(); | |
5444 | - }} | |
5445 | - /> | |
5446 | - )} | |
4340 | + </span> | |
5447 | 4341 | |
5448 | - {shippingWarehouseChangeModalVisible && ( | |
5449 | - <ShippingWarehouseChangeModal | |
5450 | - setVisible={(val: boolean) => { | |
5451 | - setShippingWarehouseChangeModalVisible(val); | |
5452 | - if (!val) { | |
5453 | - clearOptObject(); | |
5454 | - } | |
5455 | - }} | |
5456 | - subOrderIds={ids} | |
5457 | - originShippingWarehouse={buildSubOrders()[0].shippingWarehouse} | |
5458 | - onClose={() => { | |
5459 | - setShippingWarehouseChangeModalVisible(false); | |
5460 | - clearOptObject(); | |
5461 | - setIds([]); | |
5462 | - refreshTable2(); | |
5463 | - }} | |
5464 | - /> | |
5465 | - )} | |
5466 | - {reissueVisible && ( | |
5467 | - <ReissueModal | |
5468 | - setVisible={(val: boolean) => { | |
5469 | - setReissueVisible(val); | |
5470 | - if (!val) { | |
5471 | - clearOptObject(); | |
5472 | - } | |
5473 | - }} | |
5474 | - subOrders={ | |
5475 | - isMainOrder | |
5476 | - ? [...subOrderSelectedMap.values()].flat() | |
5477 | - : buildSubOrders() | |
5478 | - } | |
5479 | - onClose={() => { | |
5480 | - setReissueVisible(false); | |
5481 | - clearOptObject(); | |
5482 | - refreshTable2(); | |
5483 | - }} | |
5484 | - /> | |
5485 | - )} | |
5486 | - {reissueVisibleOld && ( | |
5487 | - <ReissueModal_old | |
5488 | - setVisible={(val: boolean) => { | |
5489 | - setReissueVisibleOld(val); | |
5490 | - console.log(reissueVisible); | |
5491 | - if (!val) { | |
5492 | - clearOptObject(); | |
4342 | + {/* 右边的 ProFormSelect */} | |
4343 | + <span style={{ width: '300px', marginLeft: 'auto', marginTop: '30px' }}> | |
4344 | + {' '} | |
4345 | + {/* 修改:设置 width 和 marginLeft */} | |
4346 | + {salesCodePermission && ( | |
4347 | + <ProFormSelect | |
4348 | + name="salesCode" | |
4349 | + key="salesCode" | |
4350 | + width="200px" | |
4351 | + actionRef={mainTableRef} | |
4352 | + formRef={mainTableFormRef} | |
4353 | + initialValue={userInfo.username} | |
4354 | + showSearch | |
4355 | + label="销售代表" | |
4356 | + placeholder="请输入销售代表" | |
4357 | + options={salesCodeOptions} | |
4358 | + onChange={(_, option) => { | |
4359 | + if (option === undefined) { | |
4360 | + selectSalesCode(userInfo.username); | |
5493 | 4361 | } |
5494 | - }} | |
5495 | - mainOrder={buildMainOrder()} | |
5496 | - subOrders={buildSubOrders()} | |
5497 | - onClose={() => { | |
5498 | - setReissueVisibleOld(false); | |
5499 | - clearOptObject(); | |
5500 | - refreshTable2(); | |
5501 | - }} | |
5502 | - /> | |
5503 | - )} | |
5504 | - {productionTimeModalVisible && ( | |
5505 | - <ProductionTimeModal | |
5506 | - setVisible={(val: boolean) => { | |
5507 | - setProductionTimeModalVisible(val); | |
5508 | - if (!val) { | |
5509 | - clearOptObject(); | |
5510 | - } | |
5511 | - }} | |
5512 | - subOrders={buildSubOrders()} | |
5513 | - onClose={() => { | |
5514 | - setProductionTimeModalVisible(false); | |
5515 | - clearOptObject(); | |
5516 | - refreshTable2(); | |
5517 | - }} | |
5518 | - /> | |
5519 | - )} | |
5520 | - | |
5521 | - {modifiedDiffModalVisible && ( | |
5522 | - <ModifiedDiffModal | |
5523 | - setVisible={(val: boolean) => { | |
5524 | - setModifiedDiffModalVisible(val); | |
5525 | - if (!val) { | |
5526 | - clearOptObject(); | |
4362 | + // if (option.value !== undefined) { | |
4363 | + // selectSalesCode(option.value); | |
4364 | + // } | |
4365 | + if (option && option.value !== undefined) { | |
4366 | + selectSalesCode(option.value); | |
5527 | 4367 | } |
4368 | + mainTableRef.current?.reload(); | |
5528 | 4369 | }} |
5529 | - subOrders={buildSubOrders()} | |
5530 | - mainOrder={buildMainOrder()} | |
5531 | - onClose={() => { | |
5532 | - setModifiedDiffModalVisible(false); | |
5533 | - clearOptObject(); | |
4370 | + request={async () => { | |
4371 | + let options = await getSalesCodeOptions(); | |
4372 | + setSalesCodeOptions(options); | |
4373 | + return options; | |
5534 | 4374 | }} |
5535 | 4375 | /> |
5536 | 4376 | )} |
4377 | + </span> | |
4378 | + </div> | |
5537 | 4379 | |
5538 | - {uploadPayBillModalVisible && ( | |
5539 | - <UploadPayBillModal | |
5540 | - setVisible={(val: boolean) => { | |
5541 | - setUploadPayBillModalVisible(val); | |
5542 | - if (!val) { | |
5543 | - clearOptObject(); | |
5544 | - } | |
5545 | - }} | |
5546 | - subOrders={buildSubOrders()} | |
5547 | - mainOrder={buildMainOrder()} | |
5548 | - onClose={() => { | |
5549 | - setUploadPayBillModalVisible(false); | |
5550 | - clearOptObject(); | |
5551 | - refreshTable2(); | |
5552 | - }} | |
5553 | - /> | |
5554 | - )} | |
5555 | - {invoicingDrawerFormVisible && ( | |
5556 | - <InvoicingDrawerForm | |
5557 | - dataList={ | |
5558 | - isMainOrder | |
5559 | - ? [...subOrderSelectedMap.values()].flat() | |
5560 | - : buildSubOrders() | |
5561 | - } | |
5562 | - setVisible={(val: boolean) => { | |
5563 | - setInvoicingDrawerFormVisible(val); | |
5564 | - if (!val) { | |
5565 | - clearOptObject(); | |
5566 | - } | |
5567 | - }} | |
5568 | - mainOrder={isMainOrder ? getFirstMainOrder() : buildMainOrder()} | |
5569 | - onClose={() => { | |
5570 | - setInvoicingDrawerFormVisible(false); | |
5571 | - setIsMainOrder(true); | |
5572 | - clearOptObject(); | |
5573 | - refreshTable2(); | |
5574 | - }} | |
5575 | - /> | |
5576 | - )} | |
5577 | - {contextHolder} | |
5578 | - <FloatButton.BackTop visibilityHeight={0} /> | |
5579 | - </div> | |
5580 | - ), | |
5581 | - }, | |
5582 | - ]; | |
4380 | + <div style={{ height: '15px' }}></div> | |
4381 | + <ProTable | |
4382 | + id="main-table" | |
4383 | + // tableStyle={{backgroundColor:'red'}} | |
5583 | 4384 | |
5584 | - return ( | |
5585 | - <div className="order-page-container"> | |
5586 | - <div id="resizeDiv"></div> | |
5587 | - {/* <Tabs defaultActiveKey="1" items={tabsItems} onChange={() => { }} /> */} | |
5588 | - <Tabs | |
5589 | - defaultActiveKey="1" | |
5590 | - items={tabsItems} | |
5591 | - onChange={(key) => { | |
5592 | - setActiveTabKey(key); // **修改位置:更新 activeTabKey** | |
5593 | - if (key === '1') { | |
5594 | - setActiveTabKey(key); // **修改位置:更新 activeTabKey** | |
5595 | - mainTableRef.current?.reload(); // **请求主订单的 request** | |
5596 | - } else if (key === '2') { | |
5597 | - setActiveTabKey(key); // **修改位置:更新 activeTabKey** | |
5598 | - mainTableSecondRef.current?.reload(); // **请求订单回款的 request2** | |
4385 | + actionRef={mainTableRef} | |
4386 | + formRef={mainTableFormRef} | |
4387 | + expandIconColumnIndex={-1} | |
4388 | + columns={mainOrdersColumns} | |
4389 | + rowKey="id" | |
4390 | + pagination={{ | |
4391 | + showQuickJumper: true, | |
4392 | + pageSize: pageSize, | |
4393 | + current: currentPage, | |
4394 | + showSizeChanger: true, | |
4395 | + onChange: (page, size) => { | |
4396 | + setPageSize(size); | |
4397 | + setCurrentPage(page); | |
4398 | + }, | |
4399 | + showTotal: (total, range) => { | |
4400 | + return ( | |
4401 | + <> | |
4402 | + <span> | |
4403 | + {'第 ' + | |
4404 | + range[0] + | |
4405 | + '-' + | |
4406 | + range[1] + | |
4407 | + ' 条/总共 ' + | |
4408 | + total + | |
4409 | + ' 条主订单 '} | |
4410 | + </span> | |
4411 | + <span className="text-[#8C8C8C]"> | |
4412 | + {' (' + subOrderCount + ' 条子订单)'} | |
4413 | + </span> | |
4414 | + </> | |
4415 | + ); | |
4416 | + }, | |
4417 | + }} | |
4418 | + // showHeader={false} | |
4419 | + expandedRowKeys={expandedRowKeys} | |
4420 | + // expandable={{ expandedRowRender }} | |
4421 | + dateFormatter="string" | |
4422 | + options={false} | |
4423 | + headerTitle="" | |
4424 | + search={false} | |
4425 | + request={async ( | |
4426 | + // 第一个参数 params 查询表单和 params 参数的结合 | |
4427 | + // 第一个参数中一定会有 pageSize 和 current ,这两个参数是 antd 的规范 | |
4428 | + params, | |
4429 | + sorter, | |
4430 | + filter, | |
4431 | + ) => { | |
4432 | + //订单id处理 | |
4433 | + /** | |
4434 | + * 以params中的id为主,如果params没id,则取url中的id | |
4435 | + * 第一次进来这个页面,url带有id的话,会自动填充到查询表单中,但是第一次查询params不会带这个id进来 | |
4436 | + */ | |
4437 | + let orderIds = mainTableFormRef.current?.getFieldValue('id'); | |
4438 | + let subOrderId = | |
4439 | + mainTableFormRef.current?.getFieldValue('subOrderId'); | |
4440 | + params.id = params.id || orderIds; | |
4441 | + params.subOrderId = params.subOrderId || subOrderId; | |
4442 | + if (params.id !== '') { | |
4443 | + params.id = params.id?.replace(/ /g, ''); | |
4444 | + if (params.id?.indexOf(',')) { | |
4445 | + params.id = params.id.split(','); | |
4446 | + params.id = params.id.filter((id) => { | |
4447 | + return id !== ''; | |
4448 | + }); | |
4449 | + } | |
4450 | + } | |
4451 | + params.salesCode = userInfo.username; | |
4452 | + params.condition = filterCondifion; | |
4453 | + //排序 | |
4454 | + params.sorted = sorted; | |
4455 | + //是否只查看已作废 | |
4456 | + params.isDeleteQueryOrder = filterCondifion === 70; | |
4457 | + let finalParams = { | |
4458 | + ...params, | |
4459 | + }; | |
4460 | + if (value1 === 0) { | |
4461 | + // const currentDate = new Date(); | |
4462 | + // const newDate = new Date(currentDate); | |
4463 | + // newDate.setDate(currentDate.getDate() - 0); | |
4464 | + handleSetNull(); | |
4465 | + } | |
4466 | + if (activeTabKey === 1) { | |
4467 | + // // 第一段代码 | |
4468 | + // if (calDate === 'null') { | |
4469 | + // params.applyTimeLe = null; | |
4470 | + // } else { | |
4471 | + // params.applyTimeLe = calDate; | |
4472 | + // } | |
4473 | + // params.applyTimeIsNotNull = true; // 要求申请时间非空 | |
4474 | + params.orderStatus = 'SHIPPED'; // 发票确认预警 | |
4475 | + params.isDeleteQueryOrder = false; // 强制查询非作废订单 | |
4476 | + console.log(userInfo, '5656userInfo'); | |
4477 | + params.salesCode = userInfo.username; | |
4478 | + if (salesCodeSelect !== undefined && salesCodeSelect !== null) { | |
4479 | + params.salesCode = salesCodeSelect; | |
4480 | + } | |
4481 | + // params.paymentMethod = 'UNPAID'; | |
4482 | + finalParams = { | |
4483 | + ...params, | |
4484 | + statusDatetimeLe: calDate, | |
4485 | + }; | |
4486 | + } else if (activeTabKey === 2) { | |
4487 | + // // 第一段代码 | |
4488 | + // if (calDate === 'null') { | |
4489 | + // params.applyTimeLe = null; | |
4490 | + // } else { | |
4491 | + // params.applyTimeLe = calDate; | |
4492 | + // } | |
4493 | + // params.applyTimeIsNotNull = true; // 要求申请时间非空 | |
4494 | + params.salesCode = userInfo.username; | |
4495 | + if (salesCodeSelect !== undefined && salesCodeSelect !== null) { | |
4496 | + params.salesCode = salesCodeSelect; | |
4497 | + } | |
4498 | + params.warningStatus = 'waitFeedbackWarning'; // 发票确认预警 | |
4499 | + params.isDeleteQueryOrder = false; // 强制查询非作废订单 | |
4500 | + // params.paymentMethod = 'UNPAID'; | |
4501 | + finalParams = { | |
4502 | + ...params, | |
4503 | + confirmReceiptDatetimeLe: calDate, | |
4504 | + }; | |
4505 | + } else if (activeTabKey === 3) { | |
4506 | + // 第一段代码 | |
4507 | + // if (calDate === 'null') { | |
4508 | + // params.applyTimeLe = null; | |
4509 | + // } else { | |
4510 | + // params.applyTimeLe = calDate; | |
4511 | + // } | |
4512 | + // params.applyTimeIsNotNull = true; // 要求申请时间非空 | |
4513 | + params.salesCode = userInfo.username; | |
4514 | + if (salesCodeSelect !== undefined && salesCodeSelect !== null) { | |
4515 | + params.salesCode = salesCodeSelect; | |
4516 | + } | |
4517 | + params.warningStatus = 'invoiceConfirmWarning'; // 发票确认预警 | |
4518 | + params.isDeleteQueryOrder = false; // 强制查询非作废订单 | |
4519 | + // params.paymentMethod = 'UNPAID'; | |
4520 | + finalParams = { | |
4521 | + ...params, | |
4522 | + invoicingEndTime: calDate, | |
4523 | + }; | |
4524 | + } else if (activeTabKey === 4) { | |
4525 | + params.warningStatus = 'paymentReceiptStatusWarning'; // 用于回款预警 | |
4526 | + if (calDate === 'null') { | |
4527 | + params.applyTimeLe = null; | |
4528 | + } else { | |
4529 | + params.applyTimeLe = calDate; | |
4530 | + } | |
4531 | + params.salesCode = userInfo.username; | |
4532 | + if (salesCodeSelect !== undefined && salesCodeSelect !== null) { | |
4533 | + params.salesCode = salesCodeSelect; | |
4534 | + } | |
4535 | + params.isDeleteQueryOrder = false; // 强制查询非作废订单 | |
4536 | + params.paymentNotReceipt = true; // 在回款预警中标记未支付订单 | |
4537 | + finalParams = { | |
4538 | + ...params, | |
4539 | + }; | |
4540 | + } | |
4541 | + //保存这个搜索条件 | |
4542 | + setSearchParam(params); | |
4543 | + const { data } = await postServiceOrderQueryServiceOrder({ | |
4544 | + // ...params, | |
4545 | + // FIXME: remove @ts-ignore | |
4546 | + // @ts-ignore | |
4547 | + sorter, | |
4548 | + filter, | |
4549 | + data: finalParams, | |
4550 | + }); | |
4551 | + | |
4552 | + setRolePath(data.specialPath); | |
4553 | + setSubOrderCount(data.count); | |
4554 | + setAllMainChecked(false); | |
4555 | + setSelectedMainOrderKeys([]); | |
4556 | + subOrderSelectedMap.clear(); | |
4557 | + mainOrderSelectedMap.clear(); | |
4558 | + setData(data?.data); | |
4559 | + | |
4560 | + //主订单id与子订单id的对照关系保存 | |
4561 | + mainOrderIdSubOrderIdRelationsMap.clear(); | |
4562 | + for (let row of data?.data) { | |
4563 | + let mianOrderId = row.id; | |
4564 | + let subOrderIds = row.subOrderInformationLists?.map((item) => { | |
4565 | + //目前子订单存储的totalPayment不准确,这里重新处理取主订单的totalPayment | |
4566 | + //totalPayment在财务开票计算金额时使用到 | |
4567 | + item.totalPayment = row.totalPayment; | |
4568 | + return item.id; | |
4569 | + }); | |
4570 | + mainOrderIdSubOrderIdRelationsMap.set(mianOrderId, subOrderIds); | |
5599 | 4571 | } |
4572 | + // 请求完成后触发 getInvoiceWarningNum | |
4573 | + getInvoiceWarningNum(); | |
4574 | + return { | |
4575 | + data: data?.data || [], | |
4576 | + total: data?.total || 0, | |
4577 | + }; | |
5600 | 4578 | }} |
4579 | + toolbar={{ | |
4580 | + multipleLine: true, | |
4581 | + }} | |
4582 | + // toolBarRender={() => { | |
4583 | + // return toolBarRender(); | |
4584 | + // }} | |
5601 | 4585 | /> |
4586 | + | |
4587 | + {orderDrawerVisible && ( | |
4588 | + <OrderDrawer | |
4589 | + data={orderOptType === 'add' ? {} : buildMainOrder()} | |
4590 | + subOrders={orderOptType === 'add' ? [] : buildSubOrders()} | |
4591 | + onClose={(isSuccess: boolean) => { | |
4592 | + setOrderDrawerVisible(false); | |
4593 | + clearOptObject(); | |
4594 | + if (isSuccess) { | |
4595 | + refreshTable(); | |
4596 | + } | |
4597 | + }} | |
4598 | + orderOptType={orderOptType} | |
4599 | + /> | |
4600 | + )} | |
4601 | + | |
4602 | + {checkVisible && ( | |
4603 | + <CheckModal | |
4604 | + setCheckVisible={(val: boolean) => { | |
4605 | + setCheckVisible(val); | |
4606 | + if (!val) { | |
4607 | + clearOptObject(); | |
4608 | + } | |
4609 | + }} | |
4610 | + data={isMainOrder ? getFirstMainOrder() : buildMainOrder()} | |
4611 | + subOrders={ | |
4612 | + isMainOrder | |
4613 | + ? [...subOrderSelectedMap.values()].flat() | |
4614 | + : buildSubOrders() | |
4615 | + } | |
4616 | + orderCheckType={orderCheckType} | |
4617 | + openOrderDrawer={(type: any, id: any) => { | |
4618 | + setCurrentMainId(id); | |
4619 | + setOrderOptType(type); | |
4620 | + setOrderDrawerVisible(true); | |
4621 | + }} | |
4622 | + onClose={() => { | |
4623 | + clearOptObject(); | |
4624 | + setCheckVisible(false); | |
4625 | + refreshTable(); | |
4626 | + }} | |
4627 | + /> | |
4628 | + )} | |
4629 | + | |
4630 | + {applyForInvoicingVisible && ( | |
4631 | + <ApplyForInvoicingModal | |
4632 | + setCheckVisible={(val: boolean) => { | |
4633 | + setApplyForInvoicingVisible(val); | |
4634 | + if (!val) { | |
4635 | + clearOptObject(); | |
4636 | + } | |
4637 | + }} | |
4638 | + subOrders={ | |
4639 | + isMainOrder | |
4640 | + ? [...subOrderSelectedMap.values()].flat() | |
4641 | + : buildSubOrders() | |
4642 | + } | |
4643 | + totalPayment={getApplyInvoicingTotalPayment()} | |
4644 | + isMainOrder={isMainOrder} | |
4645 | + isEdit={isEdit} | |
4646 | + onClose={() => { | |
4647 | + setApplyForInvoicingVisible(false); | |
4648 | + setIsMainOrder(false); | |
4649 | + clearOptObject(); | |
4650 | + refreshTable(); | |
4651 | + }} | |
4652 | + /> | |
4653 | + )} | |
4654 | + | |
4655 | + {notesEditVisible && ( | |
4656 | + <OrderNotesEditModal | |
4657 | + setNotesEditVisible={(val: boolean) => { | |
4658 | + setNotesEditVisible(val); | |
4659 | + if (!val) { | |
4660 | + clearOptObject(); | |
4661 | + } | |
4662 | + }} | |
4663 | + ids={selectedRows} | |
4664 | + notesType={notesType} | |
4665 | + notes={notes} | |
4666 | + onClose={() => { | |
4667 | + setNotesEditVisible(false); | |
4668 | + setSelectedRows([]); | |
4669 | + setNotes(notes); | |
4670 | + setNotesType(1); | |
4671 | + refreshTable(); | |
4672 | + }} | |
4673 | + /> | |
4674 | + )} | |
4675 | + | |
4676 | + {deliverVisible && ( | |
4677 | + <DeliverModal | |
4678 | + data={buildSubOrders()} | |
4679 | + isSendProduct={isSendProduct} | |
4680 | + setVisible={(val: boolean) => { | |
4681 | + setDeliverVisible(val); | |
4682 | + if (!val) { | |
4683 | + clearOptObject(); | |
4684 | + } | |
4685 | + }} | |
4686 | + sendType={orderCheckType} | |
4687 | + onClose={() => { | |
4688 | + clearOptObject(); | |
4689 | + setDeliverVisible(false); | |
4690 | + setIsSendProduct(false); | |
4691 | + refreshTable(); | |
4692 | + }} | |
4693 | + /> | |
4694 | + )} | |
4695 | + | |
4696 | + {financialVisible && ( | |
4697 | + <FinancialDrawer | |
4698 | + isEdit={isEdit} | |
4699 | + mainOrder={isMainOrder ? getFirstMainOrder() : buildMainOrder()} | |
4700 | + subOrders={ | |
4701 | + isMainOrder | |
4702 | + ? [...subOrderSelectedMap.values()].flat() | |
4703 | + : buildSubOrders() | |
4704 | + } | |
4705 | + isMainOrder={isMainOrder} | |
4706 | + cancel={() => { | |
4707 | + setFinancialVisible(false); | |
4708 | + clearOptObject(); | |
4709 | + setIsMainOrder(false); | |
4710 | + setIsEdit(false); | |
4711 | + }} | |
4712 | + onClose={() => { | |
4713 | + setFinancialVisible(false); | |
4714 | + clearOptObject(); | |
4715 | + refreshTable(); | |
4716 | + setIsMainOrder(false); | |
4717 | + setIsEdit(false); | |
4718 | + }} | |
4719 | + /> | |
4720 | + )} | |
4721 | + | |
4722 | + {financialEditVisible && ( | |
4723 | + <FinancialEditDrawer | |
4724 | + mainOrder={buildMainOrder()} | |
4725 | + subOrders={buildSubOrders()} | |
4726 | + isMainOrder={isMainOrder} | |
4727 | + setVisible={() => { | |
4728 | + setFinancialEditVisible(false); | |
4729 | + clearOptObject(); | |
4730 | + }} | |
4731 | + onClose={() => { | |
4732 | + setFinancialEditVisible(false); | |
4733 | + refreshTable(); | |
4734 | + setIsMainOrder(false); | |
4735 | + clearOptObject(); | |
4736 | + }} | |
4737 | + /> | |
4738 | + )} | |
4739 | + | |
4740 | + {orderPrintVisible && ( | |
4741 | + <OrderPrintModal | |
4742 | + mainOrder={buildMainOrder()} | |
4743 | + subOrders={buildSubOrders()} | |
4744 | + isRePrint={isRePrintOrder} | |
4745 | + setVisible={(val: boolean) => { | |
4746 | + setOrderPrintVisible(val); | |
4747 | + if (!val) { | |
4748 | + clearOptObject(); | |
4749 | + } | |
4750 | + }} | |
4751 | + printOptType={orderCheckType} | |
4752 | + onClose={() => { | |
4753 | + setOrderPrintVisible(false); | |
4754 | + clearOptObject(); | |
4755 | + setIsRePrintOrder(false); | |
4756 | + refreshTable(); | |
4757 | + }} | |
4758 | + /> | |
4759 | + )} | |
4760 | + | |
4761 | + {confirmReceiptVisible && ( | |
4762 | + <ConfirmReceiptModal | |
4763 | + data={buildSubOrders()} | |
4764 | + onClose={() => { | |
4765 | + setConfirmReceiptVisible(false); | |
4766 | + clearOptObject(); | |
4767 | + refreshTable(); | |
4768 | + }} | |
4769 | + /> | |
4770 | + )} | |
4771 | + | |
4772 | + {imagesViewerModalVisible && ( | |
4773 | + <ImagesViewerModal | |
4774 | + optType={imagesViewerOptType} | |
4775 | + setVisible={(val: boolean) => { | |
4776 | + setImagesViewerModalVisible(val); | |
4777 | + if (!val) { | |
4778 | + clearOptObject(); | |
4779 | + } | |
4780 | + }} | |
4781 | + onClose={() => { | |
4782 | + setImagesViewerModalVisible(false); | |
4783 | + }} | |
4784 | + orderRow={buildSubOrders()[0]} | |
4785 | + /> | |
4786 | + )} | |
4787 | + | |
4788 | + {importModalVisible && ( | |
4789 | + <ImportModal | |
4790 | + onClose={() => { | |
4791 | + setImportModalVisible(false); | |
4792 | + refreshTable(); | |
4793 | + }} | |
4794 | + /> | |
4795 | + )} | |
4796 | + | |
4797 | + {attachmentModalVisible && ( | |
4798 | + <AttachmentModal | |
4799 | + data={buildSubOrders()[0]} | |
4800 | + onClose={() => { | |
4801 | + setAttachmentModalVisible(false); | |
4802 | + clearOptObject(); | |
4803 | + }} | |
4804 | + /> | |
4805 | + )} | |
4806 | + | |
4807 | + {historyModalVisible && ( | |
4808 | + <HistoryModal | |
4809 | + subOrders={selectedRows} | |
4810 | + isCancelledOrder={filterCondifion === 70} | |
4811 | + onClose={() => { | |
4812 | + setHistoryModalVisible(false); | |
4813 | + setSelectedRows({}); | |
4814 | + clearOptObject(); | |
4815 | + }} | |
4816 | + /> | |
4817 | + )} | |
4818 | + | |
4819 | + {deliverInfoDrawerVisible && ( | |
4820 | + <DeliverInfoDrawer | |
4821 | + data={buildMainOrder()} | |
4822 | + onClose={() => { | |
4823 | + setDeliverInfoDrawerVisible(false); | |
4824 | + clearOptObject(); | |
4825 | + }} | |
4826 | + /> | |
4827 | + )} | |
4828 | + | |
4829 | + {deliverInfoDrawerVisible && ( | |
4830 | + <DeliverInfoDrawer | |
4831 | + data={buildMainOrder()} | |
4832 | + onClose={() => { | |
4833 | + setDeliverInfoDrawerVisible(false); | |
4834 | + clearOptObject(); | |
4835 | + }} | |
4836 | + /> | |
4837 | + )} | |
4838 | + | |
4839 | + {procureCheckModalVisible && ( | |
4840 | + <ProcureCheckModal | |
4841 | + setCheckVisible={(val: boolean) => { | |
4842 | + setProcureCheckModalVisible(val); | |
4843 | + if (!val) { | |
4844 | + clearOptObject(); | |
4845 | + } | |
4846 | + }} | |
4847 | + isMainOrder={isMainOrder} | |
4848 | + orders={ | |
4849 | + isMainOrder | |
4850 | + ? [...subOrderSelectedMap.values()].flat() | |
4851 | + : buildSubOrders() | |
4852 | + } | |
4853 | + onClose={() => { | |
4854 | + setProcureCheckModalVisible(false); | |
4855 | + clearOptObject(); | |
4856 | + setIsMainOrder(false); | |
4857 | + refreshTable(); | |
4858 | + }} | |
4859 | + /> | |
4860 | + )} | |
4861 | + | |
4862 | + {afterSalesDrawerVisible && ( | |
4863 | + <AfterSalesDrawer | |
4864 | + setVisible={(val: boolean) => { | |
4865 | + setAfterSalesDrawerVisible(val); | |
4866 | + if (!val) { | |
4867 | + clearOptObject(); | |
4868 | + } | |
4869 | + }} | |
4870 | + mainOrder={buildMainOrder()} | |
4871 | + subOrders={buildSubOrders()} | |
4872 | + onClose={() => { | |
4873 | + setAfterSalesDrawerVisible(false); | |
4874 | + clearOptObject(); | |
4875 | + refreshTable(); | |
4876 | + }} | |
4877 | + /> | |
4878 | + )} | |
4879 | + | |
4880 | + {procureConvertModalVisible && ( | |
4881 | + <ProcureConvertModal | |
4882 | + setVisible={(val: boolean) => { | |
4883 | + setProcureConvertModalVisible(val); | |
4884 | + if (!val) { | |
4885 | + clearOptObject(); | |
4886 | + } | |
4887 | + }} | |
4888 | + subOrders={buildSubOrders()} | |
4889 | + onClose={() => { | |
4890 | + setProcureConvertModalVisible(false); | |
4891 | + clearOptObject(); | |
4892 | + refreshTable(); | |
4893 | + }} | |
4894 | + /> | |
4895 | + )} | |
4896 | + | |
4897 | + {financialMergeDrawerVisible && ( | |
4898 | + <FinancialMergeDrawer | |
4899 | + setVisible={(val: boolean) => { | |
4900 | + setFinancialMergeDrawerVisible(val); | |
4901 | + if (!val) { | |
4902 | + clearOptObject(); | |
4903 | + } | |
4904 | + }} | |
4905 | + dataList={ | |
4906 | + isMainOrder | |
4907 | + ? [...subOrderSelectedMap.values()].flat() | |
4908 | + : buildSubOrders() | |
4909 | + } | |
4910 | + onClose={() => { | |
4911 | + setFinancialMergeDrawerVisible(false); | |
4912 | + setIsMainOrder(false); | |
4913 | + clearOptObject(); | |
4914 | + refreshTable(); | |
4915 | + }} | |
4916 | + /> | |
4917 | + )} | |
4918 | + | |
4919 | + {financialReceiptsModalVisible && ( | |
4920 | + <FinancialReceiptsModal | |
4921 | + setVisible={(val: boolean) => { | |
4922 | + setFinancialReceiptsModalVisible(val); | |
4923 | + if (!val) { | |
4924 | + clearOptObject(); | |
4925 | + } | |
4926 | + }} | |
4927 | + datas={selectedRows} | |
4928 | + onClose={() => { | |
4929 | + setFinancialReceiptsModalVisible(false); | |
4930 | + setSelectedRows({}); | |
4931 | + refreshTable(); | |
4932 | + }} | |
4933 | + /> | |
4934 | + )} | |
4935 | + | |
4936 | + {shippingWarehouseChangeModalVisible && ( | |
4937 | + <ShippingWarehouseChangeModal | |
4938 | + setVisible={(val: boolean) => { | |
4939 | + setShippingWarehouseChangeModalVisible(val); | |
4940 | + if (!val) { | |
4941 | + clearOptObject(); | |
4942 | + } | |
4943 | + }} | |
4944 | + subOrderIds={ids} | |
4945 | + originShippingWarehouse={buildSubOrders()[0].shippingWarehouse} | |
4946 | + onClose={() => { | |
4947 | + setShippingWarehouseChangeModalVisible(false); | |
4948 | + clearOptObject(); | |
4949 | + setIds([]); | |
4950 | + refreshTable(); | |
4951 | + }} | |
4952 | + /> | |
4953 | + )} | |
4954 | + {reissueVisible && ( | |
4955 | + <ReissueModal | |
4956 | + setVisible={(val: boolean) => { | |
4957 | + setReissueVisible(val); | |
4958 | + if (!val) { | |
4959 | + clearOptObject(); | |
4960 | + } | |
4961 | + }} | |
4962 | + subOrders={ | |
4963 | + isMainOrder | |
4964 | + ? [...subOrderSelectedMap.values()].flat() | |
4965 | + : buildSubOrders() | |
4966 | + } | |
4967 | + onClose={() => { | |
4968 | + setReissueVisible(false); | |
4969 | + clearOptObject(); | |
4970 | + refreshTable(); | |
4971 | + }} | |
4972 | + /> | |
4973 | + )} | |
4974 | + {reissueVisibleOld && ( | |
4975 | + <ReissueModal_old | |
4976 | + setVisible={(val: boolean) => { | |
4977 | + setReissueVisibleOld(val); | |
4978 | + console.log(reissueVisible); | |
4979 | + if (!val) { | |
4980 | + clearOptObject(); | |
4981 | + } | |
4982 | + }} | |
4983 | + mainOrder={buildMainOrder()} | |
4984 | + subOrders={buildSubOrders()} | |
4985 | + onClose={() => { | |
4986 | + setReissueVisibleOld(false); | |
4987 | + clearOptObject(); | |
4988 | + refreshTable(); | |
4989 | + }} | |
4990 | + /> | |
4991 | + )} | |
4992 | + {productionTimeModalVisible && ( | |
4993 | + <ProductionTimeModal | |
4994 | + setVisible={(val: boolean) => { | |
4995 | + setProductionTimeModalVisible(val); | |
4996 | + if (!val) { | |
4997 | + clearOptObject(); | |
4998 | + } | |
4999 | + }} | |
5000 | + subOrders={buildSubOrders()} | |
5001 | + onClose={() => { | |
5002 | + setProductionTimeModalVisible(false); | |
5003 | + clearOptObject(); | |
5004 | + refreshTable(); | |
5005 | + }} | |
5006 | + /> | |
5007 | + )} | |
5008 | + | |
5009 | + {modifiedDiffModalVisible && ( | |
5010 | + <ModifiedDiffModal | |
5011 | + setVisible={(val: boolean) => { | |
5012 | + setModifiedDiffModalVisible(val); | |
5013 | + if (!val) { | |
5014 | + clearOptObject(); | |
5015 | + } | |
5016 | + }} | |
5017 | + subOrders={buildSubOrders()} | |
5018 | + mainOrder={buildMainOrder()} | |
5019 | + onClose={() => { | |
5020 | + setModifiedDiffModalVisible(false); | |
5021 | + clearOptObject(); | |
5022 | + }} | |
5023 | + /> | |
5024 | + )} | |
5025 | + | |
5026 | + {uploadPayBillModalVisible && ( | |
5027 | + <UploadPayBillModal | |
5028 | + setVisible={(val: boolean) => { | |
5029 | + setUploadPayBillModalVisible(val); | |
5030 | + if (!val) { | |
5031 | + clearOptObject(); | |
5032 | + } | |
5033 | + }} | |
5034 | + subOrders={buildSubOrders()} | |
5035 | + mainOrder={buildMainOrder()} | |
5036 | + onClose={() => { | |
5037 | + setUploadPayBillModalVisible(false); | |
5038 | + clearOptObject(); | |
5039 | + refreshTable(); | |
5040 | + }} | |
5041 | + /> | |
5042 | + )} | |
5043 | + {feedbackRegistrationModalVisible && ( | |
5044 | + <FeedbackRegistrationModal | |
5045 | + setVisible={(val: boolean) => { | |
5046 | + setFeedbackRegistrationModalVisible(val); | |
5047 | + if (!val) { | |
5048 | + clearOptObject(); | |
5049 | + } | |
5050 | + }} | |
5051 | + subOrders={buildSubOrders()} | |
5052 | + mainOrder={buildMainOrder()} | |
5053 | + onClose={() => { | |
5054 | + setFeedbackRegistrationModalVisible(false); | |
5055 | + clearOptObject(); | |
5056 | + refreshTable(); | |
5057 | + }} | |
5058 | + /> | |
5059 | + )} | |
5060 | + | |
5061 | + {invoicingDrawerFormVisible && ( | |
5062 | + <InvoicingDrawerForm | |
5063 | + dataList={ | |
5064 | + isMainOrder | |
5065 | + ? [...subOrderSelectedMap.values()].flat() | |
5066 | + : buildSubOrders() | |
5067 | + } | |
5068 | + setVisible={(val: boolean) => { | |
5069 | + setInvoicingDrawerFormVisible(val); | |
5070 | + if (!val) { | |
5071 | + clearOptObject(); | |
5072 | + } | |
5073 | + }} | |
5074 | + mainOrder={isMainOrder ? getFirstMainOrder() : buildMainOrder()} | |
5075 | + onClose={() => { | |
5076 | + setInvoicingDrawerFormVisible(false); | |
5077 | + setIsMainOrder(true); | |
5078 | + clearOptObject(); | |
5079 | + refreshTable(); | |
5080 | + }} | |
5081 | + /> | |
5082 | + )} | |
5083 | + {contextHolder} | |
5084 | + <FloatButton.BackTop visibilityHeight={0} /> | |
5602 | 5085 | </div> |
5603 | 5086 | ); |
5604 | 5087 | }; | ... | ... |
src/pages/Order/WarningWhitelist/index.css deleted
100644 → 0
src/pages/Order/WarningWhitelist/index.less deleted
100644 → 0
src/pages/Order/WarningWhitelist/index.tsx
1 | -import { | |
2 | - ActionType, | |
3 | - ModalForm, | |
4 | - ProColumns, | |
5 | - ProFormText, | |
6 | - ProTable, | |
7 | -} from '@ant-design/pro-components'; | |
8 | -import { | |
9 | - Button, | |
10 | - Checkbox, | |
11 | - Divider, | |
12 | - Dropdown, | |
13 | - Flex, | |
14 | - FloatButton, | |
15 | - Image, | |
16 | - MenuProps, | |
17 | - Modal, | |
18 | - Popconfirm, | |
19 | - Radio, | |
20 | - Space, | |
21 | - Spin, | |
22 | - Tag, | |
23 | - Tooltip, | |
24 | - message, | |
25 | - Tabs, | |
26 | -} from 'antd'; | |
27 | 1 | import ButtonConfirm from '@/components/ButtomConfirm'; |
28 | 2 | import { RESPONSE_CODE } from '@/constants/enum'; |
29 | 3 | import { |
30 | - postOldInvoicingWhiteListBatchAdd, | |
31 | - postOldInvoicingWhiteListPage, | |
32 | - postOldInvoicingWhiteListRemove, | |
33 | - postServiceOrderWarningUserWhiteLists, | |
4 | + postServiceOrderAddWarningOrderWhiteList, | |
34 | 5 | postServiceOrderAddWarningUserWhiteList, |
6 | + postServiceOrderDeleteWarningOrderWhiteList, | |
35 | 7 | postServiceOrderDeleteWarningUserWhiteList, |
36 | 8 | postServiceOrderWarningOrderWhiteLists, |
37 | - postServiceOrderAddWarningOrderWhiteList, | |
38 | - postServiceOrderDeleteWarningOrderWhiteList, | |
9 | + postServiceOrderWarningUserWhiteLists, | |
39 | 10 | } from '@/services'; |
40 | 11 | import { PlusOutlined } from '@ant-design/icons'; |
12 | +import { | |
13 | + ActionType, | |
14 | + ModalForm, | |
15 | + ProColumns, | |
16 | + ProFormText, | |
17 | + ProTable, | |
18 | +} from '@ant-design/pro-components'; | |
19 | +import { Button, Tabs, message } from 'antd'; | |
41 | 20 | import { useRef } from 'react'; |
42 | 21 | export const waitTimePromise = async (time: number = 100) => { |
43 | 22 | return new Promise((resolve) => { |
... | ... | @@ -134,9 +113,9 @@ const WarningWhitelist = () => { |
134 | 113 | search: { |
135 | 114 | transform: (value) => { |
136 | 115 | if (value) { |
137 | - console.log(value, '5656valueid') | |
116 | + console.log(value, '5656valueid'); | |
138 | 117 | return { |
139 | - orderId: Number(value) | |
118 | + orderId: Number(value), | |
140 | 119 | }; |
141 | 120 | } |
142 | 121 | }, |
... | ... | @@ -186,7 +165,7 @@ const WarningWhitelist = () => { |
186 | 165 | title={'确认删除此项吗?'} |
187 | 166 | text="删除" |
188 | 167 | onConfirm={async () => { |
189 | - console.log(record.orderId, '5656idoreder') | |
168 | + console.log(record.orderId, '5656idoreder'); | |
190 | 169 | await postServiceOrderDeleteWarningOrderWhiteList({ |
191 | 170 | query: { |
192 | 171 | orderId: record.orderId, |
... | ... | @@ -213,7 +192,7 @@ const WarningWhitelist = () => { |
213 | 192 | const res = await postServiceOrderWarningUserWhiteLists({ |
214 | 193 | data: { ...params }, |
215 | 194 | }); |
216 | - console.log(res.data, '5656res.data') | |
195 | + console.log(res.data, '5656res.data'); | |
217 | 196 | return res.data; |
218 | 197 | }} |
219 | 198 | rowKey="id" |
... | ... | @@ -281,7 +260,7 @@ const WarningWhitelist = () => { |
281 | 260 | ]} |
282 | 261 | /> |
283 | 262 | </div> |
284 | - ) | |
263 | + ), | |
285 | 264 | }, |
286 | 265 | { |
287 | 266 | key: 2, |
... | ... | @@ -334,7 +313,7 @@ const WarningWhitelist = () => { |
334 | 313 | console.log(values, '5656values'); |
335 | 314 | const res = await postServiceOrderAddWarningOrderWhiteList({ |
336 | 315 | data: { |
337 | - orderId: values.orderIdsText | |
316 | + orderId: values.orderIdsText, | |
338 | 317 | }, |
339 | 318 | }); |
340 | 319 | if (res.result === RESPONSE_CODE.SUCCESS) { |
... | ... | @@ -361,9 +340,9 @@ const WarningWhitelist = () => { |
361 | 340 | ]} |
362 | 341 | /> |
363 | 342 | </div> |
364 | - ) | |
365 | - } | |
366 | - ] | |
343 | + ), | |
344 | + }, | |
345 | + ]; | |
367 | 346 | return ( |
368 | 347 | <div> |
369 | 348 | <Tabs |
... | ... | @@ -374,6 +353,6 @@ const WarningWhitelist = () => { |
374 | 353 | }} |
375 | 354 | /> |
376 | 355 | </div> |
377 | - ) | |
378 | -} | |
379 | -export default WarningWhitelist | |
356 | + ); | |
357 | +}; | |
358 | +export default WarningWhitelist; | ... | ... |
src/pages/OrderReport/components/OrderStatisticCard.tsx
... | ... | @@ -310,59 +310,44 @@ export default ({ data, statisticsMethod, reFreshData }) => { |
310 | 310 | <ProCard |
311 | 311 | className="order-statictis-card" |
312 | 312 | bordered |
313 | - title={<CardTitle title='待开票订单' />} | |
313 | + title={<CardTitle title="待开票订单" />} | |
314 | 314 | > |
315 | - <CardContent | |
316 | - content={data?.waitInvoicingCount} | |
317 | - /> | |
315 | + <CardContent content={data?.waitInvoicingCount} /> | |
318 | 316 | </ProCard> |
319 | 317 | <ProCard |
320 | 318 | className="order-statictis-card" |
321 | 319 | bordered |
322 | - title={<CardTitle title='待开票订单总金额' />} | |
320 | + title={<CardTitle title="待开票订单总金额" />} | |
323 | 321 | > |
324 | - <CardContent | |
325 | - unit="¥" | |
326 | - content={data?.waitInvoicingPriceSum} | |
327 | - /> | |
322 | + <CardContent unit="¥" content={data?.waitInvoicingPriceSum} /> | |
328 | 323 | </ProCard> |
329 | 324 | <ProCard |
330 | 325 | className="order-statictis-card" |
331 | 326 | bordered |
332 | - title={<CardTitle title='已开票未回款订单' />} | |
327 | + title={<CardTitle title="已开票未回款订单" />} | |
333 | 328 | > |
334 | - <CardContent | |
335 | - content={data?.invoicedNotReiceptCount} | |
336 | - /> | |
329 | + <CardContent content={data?.invoicedNotReiceptCount} /> | |
337 | 330 | </ProCard> |
338 | 331 | <ProCard |
339 | 332 | className="order-statictis-card" |
340 | 333 | bordered |
341 | - title={<CardTitle title='已开票未回款订单总金额' />} | |
334 | + title={<CardTitle title="已开票未回款订单总金额" />} | |
342 | 335 | > |
343 | - <CardContent | |
344 | - unit="¥" | |
345 | - content={data?.invoicedNotReiceptPriceSum} | |
346 | - /> | |
336 | + <CardContent unit="¥" content={data?.invoicedNotReiceptPriceSum} /> | |
347 | 337 | </ProCard> |
348 | 338 | <ProCard |
349 | 339 | className="order-statictis-card" |
350 | 340 | bordered |
351 | - title={<CardTitle title='已开票已回款订单' />} | |
341 | + title={<CardTitle title="已开票已回款订单" />} | |
352 | 342 | > |
353 | - <CardContent | |
354 | - content={data?.invoicedAndReiceptedCount} | |
355 | - /> | |
343 | + <CardContent content={data?.invoicedAndReiceptedCount} /> | |
356 | 344 | </ProCard> |
357 | 345 | <ProCard |
358 | 346 | className="order-statictis-card" |
359 | 347 | bordered |
360 | - title={<CardTitle title='已开票已回款订单总金额' />} | |
348 | + title={<CardTitle title="已开票已回款订单总金额" />} | |
361 | 349 | > |
362 | - <CardContent | |
363 | - unit="¥" | |
364 | - content={data?.invoicedAndReiceptedPriceSum} | |
365 | - /> | |
350 | + <CardContent unit="¥" content={data?.invoicedAndReiceptedPriceSum} /> | |
366 | 351 | </ProCard> |
367 | 352 | </ProCard> |
368 | 353 | ... | ... |
src/pages/Prepaid/index.tsx
1 | 1 | import ButtonConfirm from '@/components/ButtomConfirm'; |
2 | 2 | import EllipsisDiv from '@/components/Div/EllipsisDiv'; |
3 | 3 | import { RESPONSE_CODE } from '@/constants/enum'; |
4 | -import { } from '@/pages/Invoice/constant'; | |
4 | +import {} from '@/pages/Invoice/constant'; | |
5 | 5 | import { |
6 | 6 | postCanrdApiUserList, |
7 | 7 | postPrepaidDelete, | ... | ... |
src/services/definition.ts
... | ... | @@ -94,36 +94,33 @@ export interface AdminAuthUserVO { |
94 | 94 | export interface AdminClientDto { |
95 | 95 | /** |
96 | 96 | * @description |
97 | - * 市 | |
98 | - */ | |
99 | - city?: string; | |
100 | - /** | |
101 | - * @description | |
102 | - * 单位地址 | |
97 | + * 客户地址 | |
103 | 98 | */ |
104 | - companyAddress?: string; | |
99 | + address?: string; | |
105 | 100 | /** |
106 | 101 | * @description |
107 | - * 单位地址 | |
102 | + * 市 | |
108 | 103 | */ |
109 | - companyAddressText?: string; | |
104 | + city?: string; | |
110 | 105 | companyId?: string; |
111 | 106 | /** |
112 | 107 | * @description |
113 | - * 单位名称 | |
108 | + * 联系人 | |
114 | 109 | */ |
115 | - companyName?: string; | |
116 | 110 | contacts?: string; |
117 | - createBy?: string; | |
111 | + createByName?: string; | |
118 | 112 | /** @format date-time */ |
119 | 113 | createTime?: string; |
120 | 114 | /** |
121 | 115 | * @description |
116 | + * 详细地址 | |
117 | + */ | |
118 | + detailAddress?: string; | |
119 | + /** | |
120 | + * @description | |
122 | 121 | * 区 |
123 | 122 | */ |
124 | 123 | district?: string; |
125 | - /** @format int32 */ | |
126 | - enableFlag?: number; | |
127 | 124 | /** |
128 | 125 | * @description |
129 | 126 | * 是否已报方案 |
... | ... | @@ -144,9 +141,7 @@ export interface AdminClientDto { |
144 | 141 | * 客户等级 |
145 | 142 | */ |
146 | 143 | levelText?: string; |
147 | - modifyBy?: string; | |
148 | - /** @format date-time */ | |
149 | - modifyTime?: string; | |
144 | + logicDelete?: boolean; | |
150 | 145 | /** |
151 | 146 | * @description |
152 | 147 | * 名称 |
... | ... | @@ -157,6 +152,7 @@ export interface AdminClientDto { |
157 | 152 | * 备注 |
158 | 153 | */ |
159 | 154 | notes?: string; |
155 | + paths?: Array<string>; | |
160 | 156 | /** |
161 | 157 | * @description |
162 | 158 | * 电话号码 |
... | ... | @@ -180,16 +176,26 @@ export interface AdminClientDto { |
180 | 176 | referrers?: string; |
181 | 177 | /** |
182 | 178 | * @description |
183 | - * 需求 | |
179 | + * 客户需求 | |
184 | 180 | */ |
185 | 181 | requirements?: string; |
186 | 182 | /** |
187 | 183 | * @description |
184 | + * 客户需求 | |
185 | + */ | |
186 | + requirementsText?: string; | |
187 | + /** | |
188 | + * @description | |
188 | 189 | * 来源 |
189 | 190 | */ |
190 | 191 | source?: string; |
191 | 192 | /** |
192 | 193 | * @description |
194 | + * 来源 | |
195 | + */ | |
196 | + sourceText?: string; | |
197 | + /** | |
198 | + * @description | |
193 | 199 | * 跟进状态 |
194 | 200 | */ |
195 | 201 | tradeStatus?: string; |
... | ... | @@ -198,8 +204,9 @@ export interface AdminClientDto { |
198 | 204 | * 跟进状态 |
199 | 205 | */ |
200 | 206 | tradeStatusText?: string; |
201 | - /** @format int32 */ | |
202 | - version?: number; | |
207 | + updateByName?: string; | |
208 | + /** @format date-time */ | |
209 | + updateTime?: string; | |
203 | 210 | } |
204 | 211 | |
205 | 212 | export interface AdminDeptQueryVO { |
... | ... | @@ -758,6 +765,7 @@ export interface ApplyInvoiceDTO { |
758 | 765 | * @format int64 |
759 | 766 | */ |
760 | 767 | id?: number; |
768 | + invoice?: Invoice; | |
761 | 769 | /** |
762 | 770 | * @description |
763 | 771 | * 发票地址 |
... | ... | @@ -771,8 +779,9 @@ export interface ApplyInvoiceDTO { |
771 | 779 | /** |
772 | 780 | * @description |
773 | 781 | * 关联发票id |
782 | + * @format int64 | |
774 | 783 | */ |
775 | - invoiceId?: string; | |
784 | + invoiceId?: number; | |
776 | 785 | /** |
777 | 786 | * @description |
778 | 787 | * 发票号码 |
... | ... | @@ -1413,6 +1422,42 @@ export interface InventoryMaterialStockReq { |
1413 | 1422 | materialId?: string; |
1414 | 1423 | } |
1415 | 1424 | |
1425 | +export interface Invoice { | |
1426 | + /** @format date-time */ | |
1427 | + collectionTime?: string; | |
1428 | + contacts?: string; | |
1429 | + createByName?: string; | |
1430 | + /** @format date-time */ | |
1431 | + createTime?: string; | |
1432 | + ext?: string; | |
1433 | + /** @format int64 */ | |
1434 | + id?: number; | |
1435 | + invoiceConfirmStatus?: string; | |
1436 | + /** @format date-time */ | |
1437 | + invoiceConfirmStatusDatetime?: string; | |
1438 | + invoiceNumber?: string; | |
1439 | + /** @format int64 */ | |
1440 | + invoiceRecordId?: number; | |
1441 | + invoiceStatus?: string; | |
1442 | + /** @format date-time */ | |
1443 | + invoicingTime?: string; | |
1444 | + invoicingType?: string; | |
1445 | + logicDelete?: boolean; | |
1446 | + /** @format int64 */ | |
1447 | + money?: number; | |
1448 | + moneyAsBigDecimal?: number; | |
1449 | + notes?: string; | |
1450 | + payee?: string; | |
1451 | + purchaser?: string; | |
1452 | + sale?: string; | |
1453 | + status?: string; | |
1454 | + updateByName?: string; | |
1455 | + /** @format date-time */ | |
1456 | + updateTime?: string; | |
1457 | + /** @format int64 */ | |
1458 | + writeOffId?: number; | |
1459 | +} | |
1460 | + | |
1416 | 1461 | export interface InvoiceBatchDownloadDto { |
1417 | 1462 | invoiceRecordIds?: Array<number>; |
1418 | 1463 | } |
... | ... | @@ -1450,6 +1495,9 @@ export interface InvoiceDto { |
1450 | 1495 | * @format int64 |
1451 | 1496 | */ |
1452 | 1497 | id?: number; |
1498 | + invoiceConfirmStatus?: string; | |
1499 | + /** @format date-time */ | |
1500 | + invoiceConfirmStatusDatetime?: string; | |
1453 | 1501 | /** |
1454 | 1502 | * @description |
1455 | 1503 | * 发票号码 |
... | ... | @@ -1580,6 +1628,7 @@ export interface InvoiceRecordDTO { |
1580 | 1628 | * @format int64 |
1581 | 1629 | */ |
1582 | 1630 | id?: number; |
1631 | + invoice?: Invoice; | |
1583 | 1632 | /** |
1584 | 1633 | * @description |
1585 | 1634 | * 发票地址 |
... | ... | @@ -1593,8 +1642,9 @@ export interface InvoiceRecordDTO { |
1593 | 1642 | /** |
1594 | 1643 | * @description |
1595 | 1644 | * 关联发票id |
1645 | + * @format int64 | |
1596 | 1646 | */ |
1597 | - invoiceId?: string; | |
1647 | + invoiceId?: number; | |
1598 | 1648 | /** |
1599 | 1649 | * @description |
1600 | 1650 | * 发票号码 |
... | ... | @@ -2839,9 +2889,11 @@ export interface QueryBankStatementDto { |
2839 | 2889 | } |
2840 | 2890 | |
2841 | 2891 | export interface QueryClientDto { |
2892 | + address?: string; | |
2842 | 2893 | companyAddressLike?: string; |
2843 | 2894 | companyIds?: Array<number>; |
2844 | 2895 | companyNameLike?: string; |
2896 | + contacts?: string; | |
2845 | 2897 | createByName?: string; |
2846 | 2898 | createByUserIdIn?: Array<number>; |
2847 | 2899 | /** @format date-time */ |
... | ... | @@ -2850,6 +2902,7 @@ export interface QueryClientDto { |
2850 | 2902 | createTimeLe?: string; |
2851 | 2903 | /** @format int32 */ |
2852 | 2904 | current?: number; |
2905 | + detailAddress?: string; | |
2853 | 2906 | /** @format int32 */ |
2854 | 2907 | end?: number; |
2855 | 2908 | groupFilter?: string; |
... | ... | @@ -2859,6 +2912,8 @@ export interface QueryClientDto { |
2859 | 2912 | /** @format int32 */ |
2860 | 2913 | pageSize?: number; |
2861 | 2914 | phoneNumber?: string; |
2915 | + requirements?: string; | |
2916 | + source?: string; | |
2862 | 2917 | /** @format int32 */ |
2863 | 2918 | start?: number; |
2864 | 2919 | /** @format int32 */ |
... | ... | @@ -2867,13 +2922,21 @@ export interface QueryClientDto { |
2867 | 2922 | } |
2868 | 2923 | |
2869 | 2924 | export interface QueryCommunicationInfoDto { |
2925 | + clientAddressLike?: string; | |
2870 | 2926 | /** @format int64 */ |
2871 | 2927 | clientId?: number; |
2928 | + clientIdIn?: Array<number>; | |
2929 | + clientNameLike?: string; | |
2872 | 2930 | content?: string; |
2873 | 2931 | createByName?: string; |
2932 | + createByNameIn?: Array<string>; | |
2874 | 2933 | /** @format int32 */ |
2875 | 2934 | current?: number; |
2876 | 2935 | /** @format date-time */ |
2936 | + dateTimeGe?: string; | |
2937 | + /** @format date-time */ | |
2938 | + dateTimeLe?: string; | |
2939 | + /** @format date-time */ | |
2877 | 2940 | datetime?: string; |
2878 | 2941 | /** @format int32 */ |
2879 | 2942 | end?: number; |
... | ... | @@ -2885,6 +2948,8 @@ export interface QueryCommunicationInfoDto { |
2885 | 2948 | start?: number; |
2886 | 2949 | /** @format int32 */ |
2887 | 2950 | total?: number; |
2951 | + tradeStatusLike?: string; | |
2952 | + updateByName?: string; | |
2888 | 2953 | way?: string; |
2889 | 2954 | } |
2890 | 2955 | |
... | ... | @@ -3220,12 +3285,33 @@ export interface QueryUseOldInvoicingDto { |
3220 | 3285 | total?: number; |
3221 | 3286 | } |
3222 | 3287 | |
3288 | +export interface QueryWarningOrderStatistics { | |
3289 | + excludeWhiteList?: boolean; | |
3290 | + salesCode?: string; | |
3291 | + /** @format date-time */ | |
3292 | + waitConfirmInvoiceStatusDateTimeLe?: string; | |
3293 | + /** @format date-time */ | |
3294 | + waitConfirmPaymentOrderCreatedDateTimeGe?: string; | |
3295 | + /** @format date-time */ | |
3296 | + waitConfirmPaymentStatusDateTimeLe?: string; | |
3297 | + /** @format date-time */ | |
3298 | + waitConfirmReiceptStatusDateTimeLe?: string; | |
3299 | + /** @format date-time */ | |
3300 | + waitFeedbackStatusDateTimeLe?: string; | |
3301 | +} | |
3302 | + | |
3223 | 3303 | export interface QueryWarningOrderWhiteListDto { |
3224 | 3304 | createByName?: string; |
3305 | + /** @format date-time */ | |
3306 | + createTimeGe?: string; | |
3307 | + /** @format date-time */ | |
3308 | + createTimeLe?: string; | |
3225 | 3309 | /** @format int32 */ |
3226 | 3310 | current?: number; |
3227 | 3311 | /** @format int32 */ |
3228 | 3312 | end?: number; |
3313 | + /** @format int64 */ | |
3314 | + orderId?: number; | |
3229 | 3315 | /** @format int32 */ |
3230 | 3316 | pageSize?: number; |
3231 | 3317 | /** @format int32 */ |
... | ... | @@ -3696,6 +3782,8 @@ export interface SubOrder { |
3696 | 3782 | /** @format date-time */ |
3697 | 3783 | collectMoneyTime?: string; |
3698 | 3784 | confirmDeliverNotes?: string; |
3785 | + /** @format date-time */ | |
3786 | + confirmReceiptDatetime?: string; | |
3699 | 3787 | confirmReissueNotes?: string; |
3700 | 3788 | createByName?: string; |
3701 | 3789 | /** @format date-time */ |
... | ... | @@ -3704,6 +3792,7 @@ export interface SubOrder { |
3704 | 3792 | deadline?: string; |
3705 | 3793 | ext?: string; |
3706 | 3794 | extendField?: string; |
3795 | + feedbackRegistrationContent?: string; | |
3707 | 3796 | /** @format date-time */ |
3708 | 3797 | financialReceiptIssuanceTime?: string; |
3709 | 3798 | fullPaymentStatus?: string; |
... | ... | @@ -4124,14 +4213,30 @@ export interface View { |
4124 | 4213 | } |
4125 | 4214 | |
4126 | 4215 | export interface WarningOrderWhiteListDto { |
4216 | + createByName?: string; | |
4217 | + /** @format date-time */ | |
4218 | + createTime?: string; | |
4219 | + logicDelete?: boolean; | |
4127 | 4220 | /** @format int64 */ |
4128 | 4221 | orderId?: number; |
4222 | + paths?: Array<string>; | |
4129 | 4223 | salesCode?: string; |
4224 | + updateByName?: string; | |
4225 | + /** @format date-time */ | |
4226 | + updateTime?: string; | |
4130 | 4227 | } |
4131 | 4228 | |
4132 | 4229 | export interface WarningUserWhiteListDto { |
4230 | + createByName?: string; | |
4231 | + /** @format date-time */ | |
4232 | + createTime?: string; | |
4133 | 4233 | /** @format int64 */ |
4134 | 4234 | id?: number; |
4235 | + logicDelete?: boolean; | |
4236 | + paths?: Array<string>; | |
4237 | + updateByName?: string; | |
4238 | + /** @format date-time */ | |
4239 | + updateTime?: string; | |
4135 | 4240 | userName?: string; |
4136 | 4241 | } |
4137 | 4242 | |
... | ... | @@ -4154,16 +4259,29 @@ export interface ApiOrderConfirmReceiveRequest { |
4154 | 4259 | } |
4155 | 4260 | |
4156 | 4261 | export interface ClientCommunicationInfo { |
4262 | + attachments?: string; | |
4263 | + /** | |
4264 | + * @description | |
4265 | + * 客户地址 | |
4266 | + */ | |
4267 | + clientAddress?: string; | |
4157 | 4268 | /** @format int64 */ |
4158 | 4269 | clientId?: number; |
4159 | 4270 | /** |
4160 | 4271 | * @description |
4272 | + * 客户名称 | |
4273 | + */ | |
4274 | + clientName?: string; | |
4275 | + /** | |
4276 | + * @description | |
4161 | 4277 | * 内容 |
4162 | 4278 | */ |
4163 | 4279 | content?: string; |
4164 | 4280 | createByName?: string; |
4165 | 4281 | /** @format date-time */ |
4166 | 4282 | createTime?: string; |
4283 | + /** @format int64 */ | |
4284 | + dateRange?: number; | |
4167 | 4285 | /** |
4168 | 4286 | * @description |
4169 | 4287 | * 跟进时间 |
... | ... | @@ -4173,6 +4291,11 @@ export interface ClientCommunicationInfo { |
4173 | 4291 | /** @format int64 */ |
4174 | 4292 | id?: number; |
4175 | 4293 | logicDelete?: boolean; |
4294 | + /** | |
4295 | + * @description | |
4296 | + * 客户状态 | |
4297 | + */ | |
4298 | + tradeStatus?: string; | |
4176 | 4299 | updateByName?: string; |
4177 | 4300 | /** @format date-time */ |
4178 | 4301 | updateTime?: string; |
... | ... | @@ -4181,6 +4304,11 @@ export interface ClientCommunicationInfo { |
4181 | 4304 | * 方式 |
4182 | 4305 | */ |
4183 | 4306 | way?: string; |
4307 | + /** | |
4308 | + * @description | |
4309 | + * 方式 | |
4310 | + */ | |
4311 | + wayText?: string; | |
4184 | 4312 | } |
4185 | 4313 | |
4186 | 4314 | export interface CompanyInfo { |
... | ... | @@ -4739,6 +4867,20 @@ export interface UserAddressSaveRequest { |
4739 | 4867 | institutionContactName?: string; |
4740 | 4868 | } |
4741 | 4869 | |
4870 | +export interface FeedbackRegistrationDTO { | |
4871 | + /** | |
4872 | + * @description | |
4873 | + * 回访登记内容 | |
4874 | + */ | |
4875 | + feedbackRegistrationContent?: string; | |
4876 | + /** | |
4877 | + * @description | |
4878 | + * 子订单id | |
4879 | + * @format int64 | |
4880 | + */ | |
4881 | + id?: number; | |
4882 | +} | |
4883 | + | |
4742 | 4884 | export interface UploadPaymentReceiptDTO { |
4743 | 4885 | /** |
4744 | 4886 | * @description | ... | ... |
src/services/request.ts
... | ... | @@ -54,6 +54,7 @@ import type { |
54 | 54 | DistrictDo, |
55 | 55 | DistrictSearchDo, |
56 | 56 | Dto, |
57 | + FeedbackRegistrationDTO, | |
57 | 58 | InventoryMaterialStockReq, |
58 | 59 | InvoiceBatchDownloadDto, |
59 | 60 | InvoiceDto, |
... | ... | @@ -66,6 +67,7 @@ import type { |
66 | 67 | MaterialUnitListRes, |
67 | 68 | MeasureUnitListRes, |
68 | 69 | MessageQueryDTO, |
70 | + ModelAndView, | |
69 | 71 | OrderAddVO, |
70 | 72 | OrderAuditLogQueryVO, |
71 | 73 | OrderBaseInfoQueryVO, |
... | ... | @@ -103,6 +105,7 @@ import type { |
103 | 105 | QueryProcureReturnBillDto, |
104 | 106 | QueryReportFormsDto, |
105 | 107 | QueryUseOldInvoicingDto, |
108 | + QueryWarningOrderStatistics, | |
106 | 109 | QueryWarningOrderWhiteListDto, |
107 | 110 | QueryWarningUserWhiteListDto, |
108 | 111 | QueryWriteOffRecordDto, |
... | ... | @@ -362,6 +365,79 @@ export const postAdminClientAddOrModifyClientComunicationInfo = |
362 | 365 | return request; |
363 | 366 | })(); |
364 | 367 | |
368 | +/** @description request parameter type for postAdminClientDeleteAdminClient */ | |
369 | +export interface PostAdminClientDeleteAdminClientOption { | |
370 | + /** | |
371 | + * @description | |
372 | + * id | |
373 | + * @format int64 | |
374 | + */ | |
375 | + query?: { | |
376 | + /** | |
377 | + @description | |
378 | + id | |
379 | + @format int64 */ | |
380 | + id?: number; | |
381 | + }; | |
382 | +} | |
383 | + | |
384 | +/** @description response type for postAdminClientDeleteAdminClient */ | |
385 | +export interface PostAdminClientDeleteAdminClientResponse { | |
386 | + /** | |
387 | + * @description | |
388 | + * OK | |
389 | + */ | |
390 | + 200: ServerResult; | |
391 | + /** | |
392 | + * @description | |
393 | + * Created | |
394 | + */ | |
395 | + 201: any; | |
396 | + /** | |
397 | + * @description | |
398 | + * Unauthorized | |
399 | + */ | |
400 | + 401: any; | |
401 | + /** | |
402 | + * @description | |
403 | + * Forbidden | |
404 | + */ | |
405 | + 403: any; | |
406 | + /** | |
407 | + * @description | |
408 | + * Not Found | |
409 | + */ | |
410 | + 404: any; | |
411 | +} | |
412 | + | |
413 | +export type PostAdminClientDeleteAdminClientResponseSuccess = | |
414 | + PostAdminClientDeleteAdminClientResponse[200]; | |
415 | +/** | |
416 | + * @description | |
417 | + * 删除客户 | |
418 | + * @tags 客户管理 | |
419 | + * @produces * | |
420 | + * @consumes application/json | |
421 | + */ | |
422 | +export const postAdminClientDeleteAdminClient = /* #__PURE__ */ (() => { | |
423 | + const method = 'post'; | |
424 | + const url = '/admin/client/deleteAdminClient'; | |
425 | + function request( | |
426 | + option?: PostAdminClientDeleteAdminClientOption, | |
427 | + ): Promise<PostAdminClientDeleteAdminClientResponseSuccess> { | |
428 | + return requester(request.url, { | |
429 | + method: request.method, | |
430 | + ...option, | |
431 | + }) as unknown as Promise<PostAdminClientDeleteAdminClientResponseSuccess>; | |
432 | + } | |
433 | + | |
434 | + /** http method */ | |
435 | + request.method = method; | |
436 | + /** request url */ | |
437 | + request.url = url; | |
438 | + return request; | |
439 | +})(); | |
440 | + | |
365 | 441 | /** @description response type for postAdminClientDownloadImportTemplate */ |
366 | 442 | export interface PostAdminClientDownloadImportTemplateResponse { |
367 | 443 | /** |
... | ... | @@ -520,7 +596,7 @@ export type PostAdminClientGetStatisticalDataResponseSuccess = |
520 | 596 | PostAdminClientGetStatisticalDataResponse[200]; |
521 | 597 | /** |
522 | 598 | * @description |
523 | - * 修改跟进信息 | |
599 | + * 全部与预警客户个数 | |
524 | 600 | * @tags 客户管理 |
525 | 601 | * @produces * |
526 | 602 | * @consumes application/json |
... | ... | @@ -3239,9 +3315,7 @@ export interface GetErrorResponse { |
3239 | 3315 | * @description |
3240 | 3316 | * OK |
3241 | 3317 | */ |
3242 | - 200: { | |
3243 | - [propertyName: string]: any; | |
3244 | - }; | |
3318 | + 200: ModelAndView; | |
3245 | 3319 | /** |
3246 | 3320 | * @description |
3247 | 3321 | * Unauthorized |
... | ... | @@ -3262,9 +3336,9 @@ export interface GetErrorResponse { |
3262 | 3336 | export type GetErrorResponseSuccess = GetErrorResponse[200]; |
3263 | 3337 | /** |
3264 | 3338 | * @description |
3265 | - * error | |
3339 | + * errorHtml | |
3266 | 3340 | * @tags basic-error-controller |
3267 | - * @produces * | |
3341 | + * @produces text/html | |
3268 | 3342 | */ |
3269 | 3343 | export const getError = /* #__PURE__ */ (() => { |
3270 | 3344 | const method = 'get'; |
... | ... | @@ -3288,9 +3362,7 @@ export interface PutErrorResponse { |
3288 | 3362 | * @description |
3289 | 3363 | * OK |
3290 | 3364 | */ |
3291 | - 200: { | |
3292 | - [propertyName: string]: any; | |
3293 | - }; | |
3365 | + 200: ModelAndView; | |
3294 | 3366 | /** |
3295 | 3367 | * @description |
3296 | 3368 | * Created |
... | ... | @@ -3316,9 +3388,9 @@ export interface PutErrorResponse { |
3316 | 3388 | export type PutErrorResponseSuccess = PutErrorResponse[200]; |
3317 | 3389 | /** |
3318 | 3390 | * @description |
3319 | - * error | |
3391 | + * errorHtml | |
3320 | 3392 | * @tags basic-error-controller |
3321 | - * @produces * | |
3393 | + * @produces text/html | |
3322 | 3394 | * @consumes application/json |
3323 | 3395 | */ |
3324 | 3396 | export const putError = /* #__PURE__ */ (() => { |
... | ... | @@ -3343,9 +3415,7 @@ export interface PostErrorResponse { |
3343 | 3415 | * @description |
3344 | 3416 | * OK |
3345 | 3417 | */ |
3346 | - 200: { | |
3347 | - [propertyName: string]: any; | |
3348 | - }; | |
3418 | + 200: ModelAndView; | |
3349 | 3419 | /** |
3350 | 3420 | * @description |
3351 | 3421 | * Created |
... | ... | @@ -3371,9 +3441,9 @@ export interface PostErrorResponse { |
3371 | 3441 | export type PostErrorResponseSuccess = PostErrorResponse[200]; |
3372 | 3442 | /** |
3373 | 3443 | * @description |
3374 | - * error | |
3444 | + * errorHtml | |
3375 | 3445 | * @tags basic-error-controller |
3376 | - * @produces * | |
3446 | + * @produces text/html | |
3377 | 3447 | * @consumes application/json |
3378 | 3448 | */ |
3379 | 3449 | export const postError = /* #__PURE__ */ (() => { |
... | ... | @@ -3398,9 +3468,7 @@ export interface DeleteErrorResponse { |
3398 | 3468 | * @description |
3399 | 3469 | * OK |
3400 | 3470 | */ |
3401 | - 200: { | |
3402 | - [propertyName: string]: any; | |
3403 | - }; | |
3471 | + 200: ModelAndView; | |
3404 | 3472 | /** |
3405 | 3473 | * @description |
3406 | 3474 | * No Content |
... | ... | @@ -3421,9 +3489,9 @@ export interface DeleteErrorResponse { |
3421 | 3489 | export type DeleteErrorResponseSuccess = DeleteErrorResponse[200]; |
3422 | 3490 | /** |
3423 | 3491 | * @description |
3424 | - * error | |
3492 | + * errorHtml | |
3425 | 3493 | * @tags basic-error-controller |
3426 | - * @produces * | |
3494 | + * @produces text/html | |
3427 | 3495 | */ |
3428 | 3496 | export const deleteError = /* #__PURE__ */ (() => { |
3429 | 3497 | const method = 'delete'; |
... | ... | @@ -3447,9 +3515,7 @@ export interface OptionsErrorResponse { |
3447 | 3515 | * @description |
3448 | 3516 | * OK |
3449 | 3517 | */ |
3450 | - 200: { | |
3451 | - [propertyName: string]: any; | |
3452 | - }; | |
3518 | + 200: ModelAndView; | |
3453 | 3519 | /** |
3454 | 3520 | * @description |
3455 | 3521 | * No Content |
... | ... | @@ -3470,9 +3536,9 @@ export interface OptionsErrorResponse { |
3470 | 3536 | export type OptionsErrorResponseSuccess = OptionsErrorResponse[200]; |
3471 | 3537 | /** |
3472 | 3538 | * @description |
3473 | - * error | |
3539 | + * errorHtml | |
3474 | 3540 | * @tags basic-error-controller |
3475 | - * @produces * | |
3541 | + * @produces text/html | |
3476 | 3542 | * @consumes application/json |
3477 | 3543 | */ |
3478 | 3544 | export const optionsError = /* #__PURE__ */ (() => { |
... | ... | @@ -3497,9 +3563,7 @@ export interface HeadErrorResponse { |
3497 | 3563 | * @description |
3498 | 3564 | * OK |
3499 | 3565 | */ |
3500 | - 200: { | |
3501 | - [propertyName: string]: any; | |
3502 | - }; | |
3566 | + 200: ModelAndView; | |
3503 | 3567 | /** |
3504 | 3568 | * @description |
3505 | 3569 | * No Content |
... | ... | @@ -3520,9 +3584,9 @@ export interface HeadErrorResponse { |
3520 | 3584 | export type HeadErrorResponseSuccess = HeadErrorResponse[200]; |
3521 | 3585 | /** |
3522 | 3586 | * @description |
3523 | - * error | |
3587 | + * errorHtml | |
3524 | 3588 | * @tags basic-error-controller |
3525 | - * @produces * | |
3589 | + * @produces text/html | |
3526 | 3590 | * @consumes application/json |
3527 | 3591 | */ |
3528 | 3592 | export const headError = /* #__PURE__ */ (() => { |
... | ... | @@ -3547,9 +3611,7 @@ export interface PatchErrorResponse { |
3547 | 3611 | * @description |
3548 | 3612 | * OK |
3549 | 3613 | */ |
3550 | - 200: { | |
3551 | - [propertyName: string]: any; | |
3552 | - }; | |
3614 | + 200: ModelAndView; | |
3553 | 3615 | /** |
3554 | 3616 | * @description |
3555 | 3617 | * No Content |
... | ... | @@ -3570,9 +3632,9 @@ export interface PatchErrorResponse { |
3570 | 3632 | export type PatchErrorResponseSuccess = PatchErrorResponse[200]; |
3571 | 3633 | /** |
3572 | 3634 | * @description |
3573 | - * error | |
3635 | + * errorHtml | |
3574 | 3636 | * @tags basic-error-controller |
3575 | - * @produces * | |
3637 | + * @produces text/html | |
3576 | 3638 | * @consumes application/json |
3577 | 3639 | */ |
3578 | 3640 | export const patchError = /* #__PURE__ */ (() => { |
... | ... | @@ -13051,6 +13113,168 @@ export const postServiceConstClientLevels = /* #__PURE__ */ (() => { |
13051 | 13113 | return request; |
13052 | 13114 | })(); |
13053 | 13115 | |
13116 | +/** @description response type for postServiceConstClientRequirements */ | |
13117 | +export interface PostServiceConstClientRequirementsResponse { | |
13118 | + /** | |
13119 | + * @description | |
13120 | + * OK | |
13121 | + */ | |
13122 | + 200: ServerResult; | |
13123 | + /** | |
13124 | + * @description | |
13125 | + * Created | |
13126 | + */ | |
13127 | + 201: any; | |
13128 | + /** | |
13129 | + * @description | |
13130 | + * Unauthorized | |
13131 | + */ | |
13132 | + 401: any; | |
13133 | + /** | |
13134 | + * @description | |
13135 | + * Forbidden | |
13136 | + */ | |
13137 | + 403: any; | |
13138 | + /** | |
13139 | + * @description | |
13140 | + * Not Found | |
13141 | + */ | |
13142 | + 404: any; | |
13143 | +} | |
13144 | + | |
13145 | +export type PostServiceConstClientRequirementsResponseSuccess = | |
13146 | + PostServiceConstClientRequirementsResponse[200]; | |
13147 | +/** | |
13148 | + * @description | |
13149 | + * 客户需求 | |
13150 | + * @tags front-const-controller | |
13151 | + * @produces * | |
13152 | + * @consumes application/json | |
13153 | + */ | |
13154 | +export const postServiceConstClientRequirements = /* #__PURE__ */ (() => { | |
13155 | + const method = 'post'; | |
13156 | + const url = '/service/const/clientRequirements'; | |
13157 | + function request(): Promise<PostServiceConstClientRequirementsResponseSuccess> { | |
13158 | + return requester(request.url, { | |
13159 | + method: request.method, | |
13160 | + }) as unknown as Promise<PostServiceConstClientRequirementsResponseSuccess>; | |
13161 | + } | |
13162 | + | |
13163 | + /** http method */ | |
13164 | + request.method = method; | |
13165 | + /** request url */ | |
13166 | + request.url = url; | |
13167 | + return request; | |
13168 | +})(); | |
13169 | + | |
13170 | +/** @description response type for postServiceConstClientSource */ | |
13171 | +export interface PostServiceConstClientSourceResponse { | |
13172 | + /** | |
13173 | + * @description | |
13174 | + * OK | |
13175 | + */ | |
13176 | + 200: ServerResult; | |
13177 | + /** | |
13178 | + * @description | |
13179 | + * Created | |
13180 | + */ | |
13181 | + 201: any; | |
13182 | + /** | |
13183 | + * @description | |
13184 | + * Unauthorized | |
13185 | + */ | |
13186 | + 401: any; | |
13187 | + /** | |
13188 | + * @description | |
13189 | + * Forbidden | |
13190 | + */ | |
13191 | + 403: any; | |
13192 | + /** | |
13193 | + * @description | |
13194 | + * Not Found | |
13195 | + */ | |
13196 | + 404: any; | |
13197 | +} | |
13198 | + | |
13199 | +export type PostServiceConstClientSourceResponseSuccess = | |
13200 | + PostServiceConstClientSourceResponse[200]; | |
13201 | +/** | |
13202 | + * @description | |
13203 | + * 客户来源 | |
13204 | + * @tags front-const-controller | |
13205 | + * @produces * | |
13206 | + * @consumes application/json | |
13207 | + */ | |
13208 | +export const postServiceConstClientSource = /* #__PURE__ */ (() => { | |
13209 | + const method = 'post'; | |
13210 | + const url = '/service/const/clientSource'; | |
13211 | + function request(): Promise<PostServiceConstClientSourceResponseSuccess> { | |
13212 | + return requester(request.url, { | |
13213 | + method: request.method, | |
13214 | + }) as unknown as Promise<PostServiceConstClientSourceResponseSuccess>; | |
13215 | + } | |
13216 | + | |
13217 | + /** http method */ | |
13218 | + request.method = method; | |
13219 | + /** request url */ | |
13220 | + request.url = url; | |
13221 | + return request; | |
13222 | +})(); | |
13223 | + | |
13224 | +/** @description response type for postServiceConstClientWay */ | |
13225 | +export interface PostServiceConstClientWayResponse { | |
13226 | + /** | |
13227 | + * @description | |
13228 | + * OK | |
13229 | + */ | |
13230 | + 200: ServerResult; | |
13231 | + /** | |
13232 | + * @description | |
13233 | + * Created | |
13234 | + */ | |
13235 | + 201: any; | |
13236 | + /** | |
13237 | + * @description | |
13238 | + * Unauthorized | |
13239 | + */ | |
13240 | + 401: any; | |
13241 | + /** | |
13242 | + * @description | |
13243 | + * Forbidden | |
13244 | + */ | |
13245 | + 403: any; | |
13246 | + /** | |
13247 | + * @description | |
13248 | + * Not Found | |
13249 | + */ | |
13250 | + 404: any; | |
13251 | +} | |
13252 | + | |
13253 | +export type PostServiceConstClientWayResponseSuccess = | |
13254 | + PostServiceConstClientWayResponse[200]; | |
13255 | +/** | |
13256 | + * @description | |
13257 | + * 类型 | |
13258 | + * @tags front-const-controller | |
13259 | + * @produces * | |
13260 | + * @consumes application/json | |
13261 | + */ | |
13262 | +export const postServiceConstClientWay = /* #__PURE__ */ (() => { | |
13263 | + const method = 'post'; | |
13264 | + const url = '/service/const/clientWay'; | |
13265 | + function request(): Promise<PostServiceConstClientWayResponseSuccess> { | |
13266 | + return requester(request.url, { | |
13267 | + method: request.method, | |
13268 | + }) as unknown as Promise<PostServiceConstClientWayResponseSuccess>; | |
13269 | + } | |
13270 | + | |
13271 | + /** http method */ | |
13272 | + request.method = method; | |
13273 | + /** request url */ | |
13274 | + request.url = url; | |
13275 | + return request; | |
13276 | +})(); | |
13277 | + | |
13054 | 13278 | /** @description response type for postServiceConstGetPayeeEnum */ |
13055 | 13279 | export interface PostServiceConstGetPayeeEnumResponse { |
13056 | 13280 | /** |
... | ... | @@ -17204,13 +17428,13 @@ export const postServiceOrderConfirmReceipt = /* #__PURE__ */ (() => { |
17204 | 17428 | export interface PostServiceOrderDeleteWarningOrderWhiteListOption { |
17205 | 17429 | /** |
17206 | 17430 | * @description |
17207 | - * id | |
17431 | + * orderId | |
17208 | 17432 | */ |
17209 | 17433 | body?: { |
17210 | 17434 | /** |
17211 | 17435 | @description |
17212 | - id */ | |
17213 | - id?: number; | |
17436 | + orderId */ | |
17437 | + orderId?: number; | |
17214 | 17438 | }; |
17215 | 17439 | } |
17216 | 17440 | |
... | ... | @@ -17682,6 +17906,77 @@ export const postServiceOrderExportTemplate = /* #__PURE__ */ (() => { |
17682 | 17906 | return request; |
17683 | 17907 | })(); |
17684 | 17908 | |
17909 | +/** @description request parameter type for postServiceOrderFeedbackRegistration */ | |
17910 | +export interface PostServiceOrderFeedbackRegistrationOption { | |
17911 | + /** | |
17912 | + * @description | |
17913 | + * dto | |
17914 | + */ | |
17915 | + body: { | |
17916 | + /** | |
17917 | + @description | |
17918 | + dto */ | |
17919 | + dto: FeedbackRegistrationDTO; | |
17920 | + }; | |
17921 | +} | |
17922 | + | |
17923 | +/** @description response type for postServiceOrderFeedbackRegistration */ | |
17924 | +export interface PostServiceOrderFeedbackRegistrationResponse { | |
17925 | + /** | |
17926 | + * @description | |
17927 | + * OK | |
17928 | + */ | |
17929 | + 200: ServerResult; | |
17930 | + /** | |
17931 | + * @description | |
17932 | + * Created | |
17933 | + */ | |
17934 | + 201: any; | |
17935 | + /** | |
17936 | + * @description | |
17937 | + * Unauthorized | |
17938 | + */ | |
17939 | + 401: any; | |
17940 | + /** | |
17941 | + * @description | |
17942 | + * Forbidden | |
17943 | + */ | |
17944 | + 403: any; | |
17945 | + /** | |
17946 | + * @description | |
17947 | + * Not Found | |
17948 | + */ | |
17949 | + 404: any; | |
17950 | +} | |
17951 | + | |
17952 | +export type PostServiceOrderFeedbackRegistrationResponseSuccess = | |
17953 | + PostServiceOrderFeedbackRegistrationResponse[200]; | |
17954 | +/** | |
17955 | + * @description | |
17956 | + * 回访登记 | |
17957 | + * @tags 内部订单 | |
17958 | + * @produces * | |
17959 | + * @consumes application/json | |
17960 | + */ | |
17961 | +export const postServiceOrderFeedbackRegistration = /* #__PURE__ */ (() => { | |
17962 | + const method = 'post'; | |
17963 | + const url = '/service/order/feedbackRegistration'; | |
17964 | + function request( | |
17965 | + option: PostServiceOrderFeedbackRegistrationOption, | |
17966 | + ): Promise<PostServiceOrderFeedbackRegistrationResponseSuccess> { | |
17967 | + return requester(request.url, { | |
17968 | + method: request.method, | |
17969 | + ...option, | |
17970 | + }) as unknown as Promise<PostServiceOrderFeedbackRegistrationResponseSuccess>; | |
17971 | + } | |
17972 | + | |
17973 | + /** http method */ | |
17974 | + request.method = method; | |
17975 | + /** request url */ | |
17976 | + request.url = url; | |
17977 | + return request; | |
17978 | +})(); | |
17979 | + | |
17685 | 17980 | /** @description request parameter type for postServiceOrderFileProcess */ |
17686 | 17981 | export interface PostServiceOrderFileProcessOption { |
17687 | 17982 | /** |
... | ... | @@ -21413,6 +21708,20 @@ export const postServiceOrderViewImages = /* #__PURE__ */ (() => { |
21413 | 21708 | return request; |
21414 | 21709 | })(); |
21415 | 21710 | |
21711 | +/** @description request parameter type for postServiceOrderWarningOrderStatistics */ | |
21712 | +export interface PostServiceOrderWarningOrderStatisticsOption { | |
21713 | + /** | |
21714 | + * @description | |
21715 | + * query | |
21716 | + */ | |
21717 | + body: { | |
21718 | + /** | |
21719 | + @description | |
21720 | + query */ | |
21721 | + query: QueryWarningOrderStatistics; | |
21722 | + }; | |
21723 | +} | |
21724 | + | |
21416 | 21725 | /** @description response type for postServiceOrderWarningOrderStatistics */ |
21417 | 21726 | export interface PostServiceOrderWarningOrderStatisticsResponse { |
21418 | 21727 | /** |
... | ... | @@ -21454,9 +21763,12 @@ export type PostServiceOrderWarningOrderStatisticsResponseSuccess = |
21454 | 21763 | export const postServiceOrderWarningOrderStatistics = /* #__PURE__ */ (() => { |
21455 | 21764 | const method = 'post'; |
21456 | 21765 | const url = '/service/order/warningOrderStatistics'; |
21457 | - function request(): Promise<PostServiceOrderWarningOrderStatisticsResponseSuccess> { | |
21766 | + function request( | |
21767 | + option: PostServiceOrderWarningOrderStatisticsOption, | |
21768 | + ): Promise<PostServiceOrderWarningOrderStatisticsResponseSuccess> { | |
21458 | 21769 | return requester(request.url, { |
21459 | 21770 | method: request.method, |
21771 | + ...option, | |
21460 | 21772 | }) as unknown as Promise<PostServiceOrderWarningOrderStatisticsResponseSuccess>; |
21461 | 21773 | } |
21462 | 21774 | ... | ... |
src/tsg.config.ts
... | ... | @@ -33,7 +33,8 @@ const projects: Project[] = [ |
33 | 33 | * openapi 文档地址,可以是远程的json文件,也可以是本地的json文件 |
34 | 34 | * 如果使用本地文件,相对路径以当前'tsg.config.ts'为基准 |
35 | 35 | * */ |
36 | - source: 'http://localhost:8085/v2/api-docs', | |
36 | + // source: 'http://localhost:8085/v2/api-docs', | |
37 | + source: 'http://39.108.227.113:8085/v2/api-docs', | |
37 | 38 | |
38 | 39 | // source: 'https://petstore3.swagger.io/api/v3/openapi.json', |
39 | 40 | // source: './fixture/pet.json', | ... | ... |