Commit 339e175d40d332f0eab91a7732909ab17613a16b

Authored by boyang
1 parent 3c821a98

生产指标书静态页面,pp确认意见等四个下拉框,跟单员与业务员权限修改,一次通过率静态页面

package.json
@@ -89,6 +89,7 @@ @@ -89,6 +89,7 @@
89 "mockjs": "^1.1.0", 89 "mockjs": "^1.1.0",
90 "nprogress": "^0.2.0", 90 "nprogress": "^0.2.0",
91 "path-to-regexp": "^6.2.1", 91 "path-to-regexp": "^6.2.1",
  92 + "pdfjs-dist": "^4.5.136",
92 "pinia": "2.1.4", 93 "pinia": "2.1.4",
93 "print-js": "^1.6.0", 94 "print-js": "^1.6.0",
94 "qrcode": "^1.5.3", 95 "qrcode": "^1.5.3",
pnpm-lock.yaml
@@ -19,7 +19,7 @@ importers: @@ -19,7 +19,7 @@ importers:
19 version: 1.2.9 19 version: 1.2.9
20 '@logicflow/extension': 20 '@logicflow/extension':
21 specifier: ^1.2.9 21 specifier: ^1.2.9
22 - version: 1.2.9(ts-node@10.9.1(@types/node@20.4.0)(typescript@5.1.6)) 22 + version: 1.2.9(canvas@2.11.2)(ts-node@10.9.1(@types/node@20.4.0)(typescript@5.1.6))
23 '@vben/hooks': 23 '@vben/hooks':
24 specifier: workspace:* 24 specifier: workspace:*
25 version: link:packages/hooks 25 version: link:packages/hooks
@@ -74,6 +74,9 @@ importers: @@ -74,6 +74,9 @@ importers:
74 path-to-regexp: 74 path-to-regexp:
75 specifier: ^6.2.1 75 specifier: ^6.2.1
76 version: 6.2.1 76 version: 6.2.1
  77 + pdfjs-dist:
  78 + specifier: ^4.5.136
  79 + version: 4.5.136
77 pinia: 80 pinia:
78 specifier: 2.1.4 81 specifier: 2.1.4
79 version: 2.1.4(typescript@5.1.6)(vue@3.3.4) 82 version: 2.1.4(typescript@5.1.6)(vue@3.3.4)
@@ -1096,6 +1099,7 @@ packages: @@ -1096,6 +1099,7 @@ packages:
1096 '@humanwhocodes/config-array@0.11.10': 1099 '@humanwhocodes/config-array@0.11.10':
1097 resolution: {integrity: sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==} 1100 resolution: {integrity: sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==}
1098 engines: {node: '>=10.10.0'} 1101 engines: {node: '>=10.10.0'}
  1102 + deprecated: Use @eslint/config-array instead
1099 1103
1100 '@humanwhocodes/module-importer@1.0.1': 1104 '@humanwhocodes/module-importer@1.0.1':
1101 resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 1105 resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
@@ -1103,12 +1107,15 @@ packages: @@ -1103,12 +1107,15 @@ packages:
1103 1107
1104 '@humanwhocodes/object-schema@1.2.1': 1108 '@humanwhocodes/object-schema@1.2.1':
1105 resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} 1109 resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==}
  1110 + deprecated: Use @eslint/object-schema instead
1106 1111
1107 '@iconify/iconify@2.1.2': 1112 '@iconify/iconify@2.1.2':
1108 resolution: {integrity: sha512-QcUzFeEWkE/mW+BVtEGmcWATClcCOIJFiYUD/PiCWuTcdEA297o8D4oN6Ra44WrNOHu1wqNW4J0ioaDIiqaFOQ==} 1113 resolution: {integrity: sha512-QcUzFeEWkE/mW+BVtEGmcWATClcCOIJFiYUD/PiCWuTcdEA297o8D4oN6Ra44WrNOHu1wqNW4J0ioaDIiqaFOQ==}
  1114 + deprecated: no longer maintained, switch to modern iconify-icon web component
1109 1115
1110 '@iconify/iconify@3.1.1': 1116 '@iconify/iconify@3.1.1':
1111 resolution: {integrity: sha512-1nemfyD/OJzh9ALepH7YfuuP8BdEB24Skhd8DXWh0hzcOxImbb1ZizSZkpCzAwSZSGcJFmscIBaBQu+yLyWaxQ==} 1117 resolution: {integrity: sha512-1nemfyD/OJzh9ALepH7YfuuP8BdEB24Skhd8DXWh0hzcOxImbb1ZizSZkpCzAwSZSGcJFmscIBaBQu+yLyWaxQ==}
  1118 + deprecated: no longer maintained, switch to modern iconify-icon web component
1112 1119
1113 '@iconify/json@2.2.87': 1120 '@iconify/json@2.2.87':
1114 resolution: {integrity: sha512-sIFqYdTa5St7yjCHQ8wxgugNFVSjcboEOErf2ouxMGg8OACj/r+X6RXqIm+Y2OzEtjVnz6pR2WwlSbFPrijhGQ==} 1121 resolution: {integrity: sha512-sIFqYdTa5St7yjCHQ8wxgugNFVSjcboEOErf2ouxMGg8OACj/r+X6RXqIm+Y2OzEtjVnz6pR2WwlSbFPrijhGQ==}
@@ -1242,6 +1249,10 @@ packages: @@ -1242,6 +1249,10 @@ packages:
1242 '@logicflow/extension@1.2.9': 1249 '@logicflow/extension@1.2.9':
1243 resolution: {integrity: sha512-QF/x48Zc53lVl+fBxbCZUY9sg2ZQn63nYCqJhnosa53vBNWj4cp4iCkALKZMpLX/36ws6o3jSd9C1+POdN+3Xw==} 1250 resolution: {integrity: sha512-QF/x48Zc53lVl+fBxbCZUY9sg2ZQn63nYCqJhnosa53vBNWj4cp4iCkALKZMpLX/36ws6o3jSd9C1+POdN+3Xw==}
1244 1251
  1252 + '@mapbox/node-pre-gyp@1.0.11':
  1253 + resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==}
  1254 + hasBin: true
  1255 +
1245 '@microsoft/api-extractor-model@7.27.4': 1256 '@microsoft/api-extractor-model@7.27.4':
1246 resolution: {integrity: sha512-HjqQFmuGPOS20rtnu+9Jj0QrqZyR59E+piUWXPMZTTn4jaZI+4UmsHSf3Id8vyueAhOBH2cgwBuRTE5R+MfSMw==} 1257 resolution: {integrity: sha512-HjqQFmuGPOS20rtnu+9Jj0QrqZyR59E+piUWXPMZTTn4jaZI+4UmsHSf3Id8vyueAhOBH2cgwBuRTE5R+MfSMw==}
1247 1258
@@ -1855,6 +1866,7 @@ packages: @@ -1855,6 +1866,7 @@ packages:
1855 1866
1856 abab@2.0.6: 1867 abab@2.0.6:
1857 resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} 1868 resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==}
  1869 + deprecated: Use your platform's native atob() and btoa() methods instead
1858 1870
1859 abbrev@1.1.1: 1871 abbrev@1.1.1:
1860 resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} 1872 resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
@@ -1966,6 +1978,9 @@ packages: @@ -1966,6 +1978,9 @@ packages:
1966 resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 1978 resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
1967 engines: {node: '>= 8'} 1979 engines: {node: '>= 8'}
1968 1980
  1981 + aproba@2.0.0:
  1982 + resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==}
  1983 +
1969 archiver-utils@2.1.0: 1984 archiver-utils@2.1.0:
1970 resolution: {integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==} 1985 resolution: {integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==}
1971 engines: {node: '>= 6'} 1986 engines: {node: '>= 6'}
@@ -1974,6 +1989,11 @@ packages: @@ -1974,6 +1989,11 @@ packages:
1974 resolution: {integrity: sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==} 1989 resolution: {integrity: sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==}
1975 engines: {node: '>= 10'} 1990 engines: {node: '>= 10'}
1976 1991
  1992 + are-we-there-yet@2.0.0:
  1993 + resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==}
  1994 + engines: {node: '>=10'}
  1995 + deprecated: This package is no longer supported.
  1996 +
1977 arg@4.1.3: 1997 arg@4.1.3:
1978 resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} 1998 resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
1979 1999
@@ -2254,6 +2274,10 @@ packages: @@ -2254,6 +2274,10 @@ packages:
2254 caniuse-lite@1.0.30001512: 2274 caniuse-lite@1.0.30001512:
2255 resolution: {integrity: sha512-2S9nK0G/mE+jasCUsMPlARhRCts1ebcp2Ji8Y8PWi4NDE1iRdLCnEPHkEfeBrGC45L4isBx5ur3IQ6yTE2mRZw==} 2275 resolution: {integrity: sha512-2S9nK0G/mE+jasCUsMPlARhRCts1ebcp2Ji8Y8PWi4NDE1iRdLCnEPHkEfeBrGC45L4isBx5ur3IQ6yTE2mRZw==}
2256 2276
  2277 + canvas@2.11.2:
  2278 + resolution: {integrity: sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw==}
  2279 + engines: {node: '>=6'}
  2280 +
2257 cfb@1.2.2: 2281 cfb@1.2.2:
2258 resolution: {integrity: sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==} 2282 resolution: {integrity: sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==}
2259 engines: {node: '>=0.8'} 2283 engines: {node: '>=0.8'}
@@ -2296,6 +2320,10 @@ packages: @@ -2296,6 +2320,10 @@ packages:
2296 resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} 2320 resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
2297 engines: {node: '>= 8.10.0'} 2321 engines: {node: '>= 8.10.0'}
2298 2322
  2323 + chownr@2.0.0:
  2324 + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
  2325 + engines: {node: '>=10'}
  2326 +
2299 ci-info@3.8.0: 2327 ci-info@3.8.0:
2300 resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} 2328 resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==}
2301 engines: {node: '>=8'} 2329 engines: {node: '>=8'}
@@ -2379,6 +2407,10 @@ packages: @@ -2379,6 +2407,10 @@ packages:
2379 color-name@1.1.4: 2407 color-name@1.1.4:
2380 resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 2408 resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
2381 2409
  2410 + color-support@1.1.3:
  2411 + resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==}
  2412 + hasBin: true
  2413 +
2382 colord@2.9.3: 2414 colord@2.9.3:
2383 resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} 2415 resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==}
2384 2416
@@ -2460,6 +2492,9 @@ packages: @@ -2460,6 +2492,9 @@ packages:
2460 resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} 2492 resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==}
2461 engines: {node: ^14.18.0 || >=16.10.0} 2493 engines: {node: ^14.18.0 || >=16.10.0}
2462 2494
  2495 + console-control-strings@1.1.0:
  2496 + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==}
  2497 +
2463 content-disposition@0.5.4: 2498 content-disposition@0.5.4:
2464 resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} 2499 resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==}
2465 engines: {node: '>= 0.6'} 2500 engines: {node: '>= 0.6'}
@@ -2676,6 +2711,10 @@ packages: @@ -2676,6 +2711,10 @@ packages:
2676 resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} 2711 resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==}
2677 engines: {node: '>=0.10'} 2712 engines: {node: '>=0.10'}
2678 2713
  2714 + decompress-response@4.2.1:
  2715 + resolution: {integrity: sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==}
  2716 + engines: {node: '>=8'}
  2717 +
2679 dedent@0.7.0: 2718 dedent@0.7.0:
2680 resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} 2719 resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==}
2681 2720
@@ -2754,6 +2793,10 @@ packages: @@ -2754,6 +2793,10 @@ packages:
2754 resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==} 2793 resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==}
2755 engines: {node: '>=12.20'} 2794 engines: {node: '>=12.20'}
2756 2795
  2796 + detect-libc@2.0.3:
  2797 + resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==}
  2798 + engines: {node: '>=8'}
  2799 +
2757 detect-newline@3.1.0: 2800 detect-newline@3.1.0:
2758 resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} 2801 resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==}
2759 engines: {node: '>=8'} 2802 engines: {node: '>=8'}
@@ -2815,6 +2858,7 @@ packages: @@ -2815,6 +2858,7 @@ packages:
2815 domexception@2.0.1: 2858 domexception@2.0.1:
2816 resolution: {integrity: sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==} 2859 resolution: {integrity: sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==}
2817 engines: {node: '>=8'} 2860 engines: {node: '>=8'}
  2861 + deprecated: Use your platform's native DOMException instead
2818 2862
2819 domhandler@2.4.2: 2863 domhandler@2.4.2:
2820 resolution: {integrity: sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==} 2864 resolution: {integrity: sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==}
@@ -3283,6 +3327,10 @@ packages: @@ -3283,6 +3327,10 @@ packages:
3283 resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} 3327 resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==}
3284 engines: {node: '>=6 <7 || >=8'} 3328 engines: {node: '>=6 <7 || >=8'}
3285 3329
  3330 + fs-minipass@2.1.0:
  3331 + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
  3332 + engines: {node: '>= 8'}
  3333 +
3286 fs.realpath@1.0.0: 3334 fs.realpath@1.0.0:
3287 resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 3335 resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
3288 3336
@@ -3294,6 +3342,7 @@ packages: @@ -3294,6 +3342,7 @@ packages:
3294 fstream@1.0.12: 3342 fstream@1.0.12:
3295 resolution: {integrity: sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==} 3343 resolution: {integrity: sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==}
3296 engines: {node: '>=0.6'} 3344 engines: {node: '>=0.6'}
  3345 + deprecated: This package is no longer supported.
3297 3346
3298 ftp@0.3.10: 3347 ftp@0.3.10:
3299 resolution: {integrity: sha512-faFVML1aBx2UoDStmLwv2Wptt4vw5x03xxX172nhA5Y5HBshW5JweqQ2W4xL4dezQTG8inJsuYcpPHHU3X5OTQ==} 3348 resolution: {integrity: sha512-faFVML1aBx2UoDStmLwv2Wptt4vw5x03xxX172nhA5Y5HBshW5JweqQ2W4xL4dezQTG8inJsuYcpPHHU3X5OTQ==}
@@ -3309,6 +3358,11 @@ packages: @@ -3309,6 +3358,11 @@ packages:
3309 functions-have-names@1.2.3: 3358 functions-have-names@1.2.3:
3310 resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} 3359 resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
3311 3360
  3361 + gauge@3.0.2:
  3362 + resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==}
  3363 + engines: {node: '>=10'}
  3364 + deprecated: This package is no longer supported.
  3365 +
3312 gensync@1.0.0-beta.2: 3366 gensync@1.0.0-beta.2:
3313 resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} 3367 resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
3314 engines: {node: '>=6.9.0'} 3368 engines: {node: '>=6.9.0'}
@@ -3378,13 +3432,16 @@ packages: @@ -3378,13 +3432,16 @@ packages:
3378 3432
3379 glob@7.1.6: 3433 glob@7.1.6:
3380 resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} 3434 resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==}
  3435 + deprecated: Glob versions prior to v9 are no longer supported
3381 3436
3382 glob@7.2.3: 3437 glob@7.2.3:
3383 resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 3438 resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
  3439 + deprecated: Glob versions prior to v9 are no longer supported
3384 3440
3385 glob@8.1.0: 3441 glob@8.1.0:
3386 resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} 3442 resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==}
3387 engines: {node: '>=12'} 3443 engines: {node: '>=12'}
  3444 + deprecated: Glob versions prior to v9 are no longer supported
3388 3445
3389 global-dirs@0.1.1: 3446 global-dirs@0.1.1:
3390 resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==} 3447 resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==}
@@ -3472,6 +3529,9 @@ packages: @@ -3472,6 +3529,9 @@ packages:
3472 resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} 3529 resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==}
3473 engines: {node: '>= 0.4'} 3530 engines: {node: '>= 0.4'}
3474 3531
  3532 + has-unicode@2.0.1:
  3533 + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==}
  3534 +
3475 has-value@0.3.1: 3535 has-value@0.3.1:
3476 resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} 3536 resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==}
3477 engines: {node: '>=0.10.0'} 3537 engines: {node: '>=0.10.0'}
@@ -3632,6 +3692,7 @@ packages: @@ -3632,6 +3692,7 @@ packages:
3632 3692
3633 inflight@1.0.6: 3693 inflight@1.0.6:
3634 resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 3694 resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
  3695 + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
3635 3696
3636 inherits@2.0.3: 3697 inherits@2.0.3:
3637 resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} 3698 resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==}
@@ -3658,10 +3719,12 @@ packages: @@ -3658,10 +3719,12 @@ packages:
3658 is-accessor-descriptor@0.1.6: 3719 is-accessor-descriptor@0.1.6:
3659 resolution: {integrity: sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==} 3720 resolution: {integrity: sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==}
3660 engines: {node: '>=0.10.0'} 3721 engines: {node: '>=0.10.0'}
  3722 + deprecated: Please upgrade to v0.1.7
3661 3723
3662 is-accessor-descriptor@1.0.0: 3724 is-accessor-descriptor@1.0.0:
3663 resolution: {integrity: sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==} 3725 resolution: {integrity: sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==}
3664 engines: {node: '>=0.10.0'} 3726 engines: {node: '>=0.10.0'}
  3727 + deprecated: Please upgrade to v1.0.1
3665 3728
3666 is-array-buffer@3.0.2: 3729 is-array-buffer@3.0.2:
3667 resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} 3730 resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==}
@@ -3697,10 +3760,12 @@ packages: @@ -3697,10 +3760,12 @@ packages:
3697 is-data-descriptor@0.1.4: 3760 is-data-descriptor@0.1.4:
3698 resolution: {integrity: sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==} 3761 resolution: {integrity: sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==}
3699 engines: {node: '>=0.10.0'} 3762 engines: {node: '>=0.10.0'}
  3763 + deprecated: Please upgrade to v0.1.5
3700 3764
3701 is-data-descriptor@1.0.0: 3765 is-data-descriptor@1.0.0:
3702 resolution: {integrity: sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==} 3766 resolution: {integrity: sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==}
3703 engines: {node: '>=0.10.0'} 3767 engines: {node: '>=0.10.0'}
  3768 + deprecated: Please upgrade to v1.0.1
3704 3769
3705 is-date-object@1.0.5: 3770 is-date-object@1.0.5:
3706 resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} 3771 resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
@@ -4183,6 +4248,7 @@ packages: @@ -4183,6 +4248,7 @@ packages:
4183 koa-router@12.0.0: 4248 koa-router@12.0.0:
4184 resolution: {integrity: sha512-zGrdiXygGYW8WvrzeGsHZvKnHs4DzyGoqJ9a8iHlRkiwuEAOAPyI27//OlhoWdgFAEIM3qbUgr0KCuRaP/TCag==} 4249 resolution: {integrity: sha512-zGrdiXygGYW8WvrzeGsHZvKnHs4DzyGoqJ9a8iHlRkiwuEAOAPyI27//OlhoWdgFAEIM3qbUgr0KCuRaP/TCag==}
4185 engines: {node: '>= 12'} 4250 engines: {node: '>= 12'}
  4251 + deprecated: '**IMPORTANT 10x+ PERFORMANCE UPGRADE**: Please upgrade to v12.0.1+ as we have fixed an issue with debuglog causing 10x slower router benchmark performance, see https://github.com/koajs/router/pull/173'
4186 4252
4187 koa-send@5.0.1: 4253 koa-send@5.0.1:
4188 resolution: {integrity: sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==} 4254 resolution: {integrity: sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==}
@@ -4485,6 +4551,10 @@ packages: @@ -4485,6 +4551,10 @@ packages:
4485 resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} 4551 resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
4486 engines: {node: '>=12'} 4552 engines: {node: '>=12'}
4487 4553
  4554 + mimic-response@2.1.0:
  4555 + resolution: {integrity: sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==}
  4556 + engines: {node: '>=8'}
  4557 +
4488 min-indent@1.0.1: 4558 min-indent@1.0.1:
4489 resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} 4559 resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
4490 engines: {node: '>=4'} 4560 engines: {node: '>=4'}
@@ -4507,10 +4577,22 @@ packages: @@ -4507,10 +4577,22 @@ packages:
4507 minimist@1.2.8: 4577 minimist@1.2.8:
4508 resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 4578 resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
4509 4579
  4580 + minipass@3.3.6:
  4581 + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==}
  4582 + engines: {node: '>=8'}
  4583 +
  4584 + minipass@5.0.0:
  4585 + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==}
  4586 + engines: {node: '>=8'}
  4587 +
4510 minipass@6.0.2: 4588 minipass@6.0.2:
4511 resolution: {integrity: sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==} 4589 resolution: {integrity: sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==}
4512 engines: {node: '>=16 || 14 >=14.17'} 4590 engines: {node: '>=16 || 14 >=14.17'}
4513 4591
  4592 + minizlib@2.1.2:
  4593 + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
  4594 + engines: {node: '>= 8'}
  4595 +
4514 mixin-deep@1.3.2: 4596 mixin-deep@1.3.2:
4515 resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} 4597 resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==}
4516 engines: {node: '>=0.10.0'} 4598 engines: {node: '>=0.10.0'}
@@ -4575,6 +4657,9 @@ packages: @@ -4575,6 +4657,9 @@ packages:
4575 mz@2.7.0: 4657 mz@2.7.0:
4576 resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 4658 resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
4577 4659
  4660 + nan@2.20.0:
  4661 + resolution: {integrity: sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==}
  4662 +
4578 nanoid@3.3.6: 4663 nanoid@3.3.6:
4579 resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} 4664 resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==}
4580 engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 4665 engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
@@ -4644,6 +4729,11 @@ packages: @@ -4644,6 +4729,11 @@ packages:
4644 resolution: {integrity: sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==} 4729 resolution: {integrity: sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==}
4645 hasBin: true 4730 hasBin: true
4646 4731
  4732 + nopt@5.0.0:
  4733 + resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==}
  4734 + engines: {node: '>=6'}
  4735 + hasBin: true
  4736 +
4647 nopt@6.0.0: 4737 nopt@6.0.0:
4648 resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==} 4738 resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==}
4649 engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} 4739 engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
@@ -4668,6 +4758,10 @@ packages: @@ -4668,6 +4758,10 @@ packages:
4668 resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} 4758 resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==}
4669 engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 4759 engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
4670 4760
  4761 + npmlog@5.0.1:
  4762 + resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==}
  4763 + deprecated: This package is no longer supported.
  4764 +
4671 nprogress@0.2.0: 4765 nprogress@0.2.0:
4672 resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==} 4766 resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==}
4673 4767
@@ -4853,12 +4947,20 @@ packages: @@ -4853,12 +4947,20 @@ packages:
4853 resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 4947 resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
4854 engines: {node: '>=8'} 4948 engines: {node: '>=8'}
4855 4949
  4950 + path2d@0.2.1:
  4951 + resolution: {integrity: sha512-Fl2z/BHvkTNvkuBzYTpTuirHZg6wW9z8+4SND/3mDTEcYbbNKWAy21dz9D3ePNNwrrK8pqZO5vLPZ1hLF6T7XA==}
  4952 + engines: {node: '>=6'}
  4953 +
4856 pathe@0.2.0: 4954 pathe@0.2.0:
4857 resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==} 4955 resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==}
4858 4956
4859 pathe@1.1.1: 4957 pathe@1.1.1:
4860 resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} 4958 resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==}
4861 4959
  4960 + pdfjs-dist@4.5.136:
  4961 + resolution: {integrity: sha512-V1BALcAN/FmxBEShLxoP73PlQZAZtzlaNfRbRhJrKvXzjLC5VaIlBAQUJuWP8iaYUmIdmdLHmt3E2TBglxOm3w==}
  4962 + engines: {node: '>=18'}
  4963 +
4862 perfect-debounce@1.0.0: 4964 perfect-debounce@1.0.0:
4863 resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} 4965 resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==}
4864 4966
@@ -5100,6 +5202,10 @@ packages: @@ -5100,6 +5202,10 @@ packages:
5100 q@1.5.1: 5202 q@1.5.1:
5101 resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==} 5203 resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==}
5102 engines: {node: '>=0.6.0', teleport: '>=0.2.0'} 5204 engines: {node: '>=0.6.0', teleport: '>=0.2.0'}
  5205 + deprecated: |-
  5206 + You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.
  5207 +
  5208 + (For a CapTP with native promises, see @endo/eventual-send and @endo/captp)
5103 5209
5104 qrcode@1.5.3: 5210 qrcode@1.5.3:
5105 resolution: {integrity: sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==} 5211 resolution: {integrity: sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==}
@@ -5276,10 +5382,12 @@ packages: @@ -5276,10 +5382,12 @@ packages:
5276 5382
5277 rimraf@2.7.1: 5383 rimraf@2.7.1:
5278 resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} 5384 resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==}
  5385 + deprecated: Rimraf versions prior to v4 are no longer supported
5279 hasBin: true 5386 hasBin: true
5280 5387
5281 rimraf@3.0.2: 5388 rimraf@3.0.2:
5282 resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 5389 resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
  5390 + deprecated: Rimraf versions prior to v4 are no longer supported
5283 hasBin: true 5391 hasBin: true
5284 5392
5285 rimraf@5.0.1: 5393 rimraf@5.0.1:
@@ -5438,6 +5546,12 @@ packages: @@ -5438,6 +5546,12 @@ packages:
5438 resolution: {integrity: sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==} 5546 resolution: {integrity: sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==}
5439 engines: {node: '>=14'} 5547 engines: {node: '>=14'}
5440 5548
  5549 + simple-concat@1.0.1:
  5550 + resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==}
  5551 +
  5552 + simple-get@3.1.1:
  5553 + resolution: {integrity: sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==}
  5554 +
5441 simple-update-notifier@1.1.0: 5555 simple-update-notifier@1.1.0:
5442 resolution: {integrity: sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==} 5556 resolution: {integrity: sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==}
5443 engines: {node: '>=8.10.0'} 5557 engines: {node: '>=8.10.0'}
@@ -5818,6 +5932,10 @@ packages: @@ -5818,6 +5932,10 @@ packages:
5818 resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} 5932 resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==}
5819 engines: {node: '>=6'} 5933 engines: {node: '>=6'}
5820 5934
  5935 + tar@6.2.1:
  5936 + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==}
  5937 + engines: {node: '>=10'}
  5938 +
5821 terminal-link@2.1.1: 5939 terminal-link@2.1.1:
5822 resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==} 5940 resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==}
5823 engines: {node: '>=8'} 5941 engines: {node: '>=8'}
@@ -6277,6 +6395,7 @@ packages: @@ -6277,6 +6395,7 @@ packages:
6277 vm2@3.9.19: 6395 vm2@3.9.19:
6278 resolution: {integrity: sha512-J637XF0DHDMV57R6JyVsTak7nIL8gy5KH4r1HiwWLf/4GBbb5MKL5y7LpmF4A8E2nR6XmzpmMFQ7V7ppPTmUQg==} 6396 resolution: {integrity: sha512-J637XF0DHDMV57R6JyVsTak7nIL8gy5KH4r1HiwWLf/4GBbb5MKL5y7LpmF4A8E2nR6XmzpmMFQ7V7ppPTmUQg==}
6279 engines: {node: '>=6.0'} 6397 engines: {node: '>=6.0'}
  6398 + deprecated: The library contains critical security issues and should not be used for production! The maintenance of the project has been discontinued. Consider migrating your code to isolated-vm.
6280 hasBin: true 6399 hasBin: true
6281 6400
6282 vue-component-type-helpers@1.6.5: 6401 vue-component-type-helpers@1.6.5:
@@ -6422,6 +6541,9 @@ packages: @@ -6422,6 +6541,9 @@ packages:
6422 engines: {node: '>= 8'} 6541 engines: {node: '>= 8'}
6423 hasBin: true 6542 hasBin: true
6424 6543
  6544 + wide-align@1.1.5:
  6545 + resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==}
  6546 +
6425 wmf@1.0.2: 6547 wmf@1.0.2:
6426 resolution: {integrity: sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==} 6548 resolution: {integrity: sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==}
6427 engines: {node: '>=0.8'} 6549 engines: {node: '>=0.8'}
@@ -7283,7 +7405,7 @@ snapshots: @@ -7283,7 +7405,7 @@ snapshots:
7283 jest-util: 27.5.1 7405 jest-util: 27.5.1
7284 slash: 3.0.0 7406 slash: 3.0.0
7285 7407
7286 - '@jest/core@27.5.1(ts-node@10.9.1(@types/node@20.4.0)(typescript@5.1.6))': 7408 + '@jest/core@27.5.1(canvas@2.11.2)(ts-node@10.9.1(@types/node@20.4.0)(typescript@5.1.6))':
7287 dependencies: 7409 dependencies:
7288 '@jest/console': 27.5.1 7410 '@jest/console': 27.5.1
7289 '@jest/reporters': 27.5.1 7411 '@jest/reporters': 27.5.1
@@ -7297,13 +7419,13 @@ snapshots: @@ -7297,13 +7419,13 @@ snapshots:
7297 exit: 0.1.2 7419 exit: 0.1.2
7298 graceful-fs: 4.2.11 7420 graceful-fs: 4.2.11
7299 jest-changed-files: 27.5.1 7421 jest-changed-files: 27.5.1
7300 - jest-config: 27.5.1(ts-node@10.9.1(@types/node@20.4.0)(typescript@5.1.6)) 7422 + jest-config: 27.5.1(canvas@2.11.2)(ts-node@10.9.1(@types/node@20.4.0)(typescript@5.1.6))
7301 jest-haste-map: 27.5.1 7423 jest-haste-map: 27.5.1
7302 jest-message-util: 27.5.1 7424 jest-message-util: 27.5.1
7303 jest-regex-util: 27.5.1 7425 jest-regex-util: 27.5.1
7304 jest-resolve: 27.5.1 7426 jest-resolve: 27.5.1
7305 jest-resolve-dependencies: 27.5.1 7427 jest-resolve-dependencies: 27.5.1
7306 - jest-runner: 27.5.1 7428 + jest-runner: 27.5.1(canvas@2.11.2)
7307 jest-runtime: 27.5.1 7429 jest-runtime: 27.5.1
7308 jest-snapshot: 27.5.1 7430 jest-snapshot: 27.5.1
7309 jest-util: 27.5.1 7431 jest-util: 27.5.1
@@ -7459,11 +7581,11 @@ snapshots: @@ -7459,11 +7581,11 @@ snapshots:
7459 mousetrap: 1.6.5 7581 mousetrap: 1.6.5
7460 preact: 10.15.1 7582 preact: 10.15.1
7461 7583
7462 - '@logicflow/extension@1.2.9(ts-node@10.9.1(@types/node@20.4.0)(typescript@5.1.6))': 7584 + '@logicflow/extension@1.2.9(canvas@2.11.2)(ts-node@10.9.1(@types/node@20.4.0)(typescript@5.1.6))':
7463 dependencies: 7585 dependencies:
7464 '@logicflow/core': 1.2.9 7586 '@logicflow/core': 1.2.9
7465 ids: 1.0.0 7587 ids: 1.0.0
7466 - jest: 27.5.1(ts-node@10.9.1(@types/node@20.4.0)(typescript@5.1.6)) 7588 + jest: 27.5.1(canvas@2.11.2)(ts-node@10.9.1(@types/node@20.4.0)(typescript@5.1.6))
7467 lodash-es: 4.17.21 7589 lodash-es: 4.17.21
7468 preact: 10.15.1 7590 preact: 10.15.1
7469 transitivePeerDependencies: 7591 transitivePeerDependencies:
@@ -7474,6 +7596,22 @@ snapshots: @@ -7474,6 +7596,22 @@ snapshots:
7474 - ts-node 7596 - ts-node
7475 - utf-8-validate 7597 - utf-8-validate
7476 7598
  7599 + '@mapbox/node-pre-gyp@1.0.11':
  7600 + dependencies:
  7601 + detect-libc: 2.0.3
  7602 + https-proxy-agent: 5.0.1
  7603 + make-dir: 3.1.0
  7604 + node-fetch: 2.6.12
  7605 + nopt: 5.0.0
  7606 + npmlog: 5.0.1
  7607 + rimraf: 3.0.2
  7608 + semver: 7.5.3
  7609 + tar: 6.2.1
  7610 + transitivePeerDependencies:
  7611 + - encoding
  7612 + - supports-color
  7613 + optional: true
  7614 +
7477 '@microsoft/api-extractor-model@7.27.4(@types/node@20.4.0)': 7615 '@microsoft/api-extractor-model@7.27.4(@types/node@20.4.0)':
7478 dependencies: 7616 dependencies:
7479 '@microsoft/tsdoc': 0.14.2 7617 '@microsoft/tsdoc': 0.14.2
@@ -8452,6 +8590,9 @@ snapshots: @@ -8452,6 +8590,9 @@ snapshots:
8452 normalize-path: 3.0.0 8590 normalize-path: 3.0.0
8453 picomatch: 2.3.1 8591 picomatch: 2.3.1
8454 8592
  8593 + aproba@2.0.0:
  8594 + optional: true
  8595 +
8455 archiver-utils@2.1.0: 8596 archiver-utils@2.1.0:
8456 dependencies: 8597 dependencies:
8457 glob: 7.2.3 8598 glob: 7.2.3
@@ -8475,6 +8616,12 @@ snapshots: @@ -8475,6 +8616,12 @@ snapshots:
8475 tar-stream: 2.2.0 8616 tar-stream: 2.2.0
8476 zip-stream: 4.1.0 8617 zip-stream: 4.1.0
8477 8618
  8619 + are-we-there-yet@2.0.0:
  8620 + dependencies:
  8621 + delegates: 1.0.0
  8622 + readable-stream: 3.6.2
  8623 + optional: true
  8624 +
8478 arg@4.1.3: {} 8625 arg@4.1.3: {}
8479 8626
8480 argparse@1.0.10: 8627 argparse@1.0.10:
@@ -8792,6 +8939,16 @@ snapshots: @@ -8792,6 +8939,16 @@ snapshots:
8792 8939
8793 caniuse-lite@1.0.30001512: {} 8940 caniuse-lite@1.0.30001512: {}
8794 8941
  8942 + canvas@2.11.2:
  8943 + dependencies:
  8944 + '@mapbox/node-pre-gyp': 1.0.11
  8945 + nan: 2.20.0
  8946 + simple-get: 3.1.1
  8947 + transitivePeerDependencies:
  8948 + - encoding
  8949 + - supports-color
  8950 + optional: true
  8951 +
8795 cfb@1.2.2: 8952 cfb@1.2.2:
8796 dependencies: 8953 dependencies:
8797 adler-32: 1.3.1 8954 adler-32: 1.3.1
@@ -8845,6 +9002,9 @@ snapshots: @@ -8845,6 +9002,9 @@ snapshots:
8845 optionalDependencies: 9002 optionalDependencies:
8846 fsevents: 2.3.2 9003 fsevents: 2.3.2
8847 9004
  9005 + chownr@2.0.0:
  9006 + optional: true
  9007 +
8848 ci-info@3.8.0: {} 9008 ci-info@3.8.0: {}
8849 9009
8850 cjs-module-lexer@1.2.3: {} 9010 cjs-module-lexer@1.2.3: {}
@@ -8932,6 +9092,9 @@ snapshots: @@ -8932,6 +9092,9 @@ snapshots:
8932 9092
8933 color-name@1.1.4: {} 9093 color-name@1.1.4: {}
8934 9094
  9095 + color-support@1.1.3:
  9096 + optional: true
  9097 +
8935 colord@2.9.3: {} 9098 colord@2.9.3: {}
8936 9099
8937 colorette@2.0.20: {} 9100 colorette@2.0.20: {}
@@ -8998,6 +9161,9 @@ snapshots: @@ -8998,6 +9161,9 @@ snapshots:
8998 9161
8999 consola@3.2.3: {} 9162 consola@3.2.3: {}
9000 9163
  9164 + console-control-strings@1.1.0:
  9165 + optional: true
  9166 +
9001 content-disposition@0.5.4: 9167 content-disposition@0.5.4:
9002 dependencies: 9168 dependencies:
9003 safe-buffer: 5.2.1 9169 safe-buffer: 5.2.1
@@ -9187,6 +9353,11 @@ snapshots: @@ -9187,6 +9353,11 @@ snapshots:
9187 9353
9188 decode-uri-component@0.2.2: {} 9354 decode-uri-component@0.2.2: {}
9189 9355
  9356 + decompress-response@4.2.1:
  9357 + dependencies:
  9358 + mimic-response: 2.1.0
  9359 + optional: true
  9360 +
9190 dedent@0.7.0: {} 9361 dedent@0.7.0: {}
9191 9362
9192 deep-equal@1.0.1: {} 9363 deep-equal@1.0.1: {}
@@ -9252,6 +9423,9 @@ snapshots: @@ -9252,6 +9423,9 @@ snapshots:
9252 9423
9253 detect-indent@7.0.1: {} 9424 detect-indent@7.0.1: {}
9254 9425
  9426 + detect-libc@2.0.3:
  9427 + optional: true
  9428 +
9255 detect-newline@3.1.0: {} 9429 detect-newline@3.1.0: {}
9256 9430
9257 detect-newline@4.0.0: {} 9431 detect-newline@4.0.0: {}
@@ -9945,6 +10119,11 @@ snapshots: @@ -9945,6 +10119,11 @@ snapshots:
9945 jsonfile: 4.0.0 10119 jsonfile: 4.0.0
9946 universalify: 0.1.2 10120 universalify: 0.1.2
9947 10121
  10122 + fs-minipass@2.1.0:
  10123 + dependencies:
  10124 + minipass: 3.3.6
  10125 + optional: true
  10126 +
9948 fs.realpath@1.0.0: {} 10127 fs.realpath@1.0.0: {}
9949 10128
9950 fsevents@2.3.2: 10129 fsevents@2.3.2:
@@ -9973,6 +10152,19 @@ snapshots: @@ -9973,6 +10152,19 @@ snapshots:
9973 10152
9974 functions-have-names@1.2.3: {} 10153 functions-have-names@1.2.3: {}
9975 10154
  10155 + gauge@3.0.2:
  10156 + dependencies:
  10157 + aproba: 2.0.0
  10158 + color-support: 1.1.3
  10159 + console-control-strings: 1.1.0
  10160 + has-unicode: 2.0.1
  10161 + object-assign: 4.1.1
  10162 + signal-exit: 3.0.7
  10163 + string-width: 4.2.3
  10164 + strip-ansi: 6.0.1
  10165 + wide-align: 1.1.5
  10166 + optional: true
  10167 +
9976 gensync@1.0.0-beta.2: {} 10168 gensync@1.0.0-beta.2: {}
9977 10169
9978 get-caller-file@2.0.5: {} 10170 get-caller-file@2.0.5: {}
@@ -10147,6 +10339,9 @@ snapshots: @@ -10147,6 +10339,9 @@ snapshots:
10147 dependencies: 10339 dependencies:
10148 has-symbols: 1.0.3 10340 has-symbols: 1.0.3
10149 10341
  10342 + has-unicode@2.0.1:
  10343 + optional: true
  10344 +
10150 has-value@0.3.1: 10345 has-value@0.3.1:
10151 dependencies: 10346 dependencies:
10152 get-value: 2.0.6 10347 get-value: 2.0.6
@@ -10595,16 +10790,16 @@ snapshots: @@ -10595,16 +10790,16 @@ snapshots:
10595 transitivePeerDependencies: 10790 transitivePeerDependencies:
10596 - supports-color 10791 - supports-color
10597 10792
10598 - jest-cli@27.5.1(ts-node@10.9.1(@types/node@20.4.0)(typescript@5.1.6)): 10793 + jest-cli@27.5.1(canvas@2.11.2)(ts-node@10.9.1(@types/node@20.4.0)(typescript@5.1.6)):
10599 dependencies: 10794 dependencies:
10600 - '@jest/core': 27.5.1(ts-node@10.9.1(@types/node@20.4.0)(typescript@5.1.6)) 10795 + '@jest/core': 27.5.1(canvas@2.11.2)(ts-node@10.9.1(@types/node@20.4.0)(typescript@5.1.6))
10601 '@jest/test-result': 27.5.1 10796 '@jest/test-result': 27.5.1
10602 '@jest/types': 27.5.1 10797 '@jest/types': 27.5.1
10603 chalk: 4.1.2 10798 chalk: 4.1.2
10604 exit: 0.1.2 10799 exit: 0.1.2
10605 graceful-fs: 4.2.11 10800 graceful-fs: 4.2.11
10606 import-local: 3.1.0 10801 import-local: 3.1.0
10607 - jest-config: 27.5.1(ts-node@10.9.1(@types/node@20.4.0)(typescript@5.1.6)) 10802 + jest-config: 27.5.1(canvas@2.11.2)(ts-node@10.9.1(@types/node@20.4.0)(typescript@5.1.6))
10608 jest-util: 27.5.1 10803 jest-util: 27.5.1
10609 jest-validate: 27.5.1 10804 jest-validate: 27.5.1
10610 prompts: 2.4.2 10805 prompts: 2.4.2
@@ -10616,7 +10811,7 @@ snapshots: @@ -10616,7 +10811,7 @@ snapshots:
10616 - ts-node 10811 - ts-node
10617 - utf-8-validate 10812 - utf-8-validate
10618 10813
10619 - jest-config@27.5.1(ts-node@10.9.1(@types/node@20.4.0)(typescript@5.1.6)): 10814 + jest-config@27.5.1(canvas@2.11.2)(ts-node@10.9.1(@types/node@20.4.0)(typescript@5.1.6)):
10620 dependencies: 10815 dependencies:
10621 '@babel/core': 7.22.6 10816 '@babel/core': 7.22.6
10622 '@jest/test-sequencer': 27.5.1 10817 '@jest/test-sequencer': 27.5.1
@@ -10628,13 +10823,13 @@ snapshots: @@ -10628,13 +10823,13 @@ snapshots:
10628 glob: 7.2.3 10823 glob: 7.2.3
10629 graceful-fs: 4.2.11 10824 graceful-fs: 4.2.11
10630 jest-circus: 27.5.1 10825 jest-circus: 27.5.1
10631 - jest-environment-jsdom: 27.5.1 10826 + jest-environment-jsdom: 27.5.1(canvas@2.11.2)
10632 jest-environment-node: 27.5.1 10827 jest-environment-node: 27.5.1
10633 jest-get-type: 27.5.1 10828 jest-get-type: 27.5.1
10634 jest-jasmine2: 27.5.1 10829 jest-jasmine2: 27.5.1
10635 jest-regex-util: 27.5.1 10830 jest-regex-util: 27.5.1
10636 jest-resolve: 27.5.1 10831 jest-resolve: 27.5.1
10637 - jest-runner: 27.5.1 10832 + jest-runner: 27.5.1(canvas@2.11.2)
10638 jest-util: 27.5.1 10833 jest-util: 27.5.1
10639 jest-validate: 27.5.1 10834 jest-validate: 27.5.1
10640 micromatch: 4.0.5 10835 micromatch: 4.0.5
@@ -10669,7 +10864,7 @@ snapshots: @@ -10669,7 +10864,7 @@ snapshots:
10669 jest-util: 27.5.1 10864 jest-util: 27.5.1
10670 pretty-format: 27.5.1 10865 pretty-format: 27.5.1
10671 10866
10672 - jest-environment-jsdom@27.5.1: 10867 + jest-environment-jsdom@27.5.1(canvas@2.11.2):
10673 dependencies: 10868 dependencies:
10674 '@jest/environment': 27.5.1 10869 '@jest/environment': 27.5.1
10675 '@jest/fake-timers': 27.5.1 10870 '@jest/fake-timers': 27.5.1
@@ -10677,7 +10872,7 @@ snapshots: @@ -10677,7 +10872,7 @@ snapshots:
10677 '@types/node': 20.4.0 10872 '@types/node': 20.4.0
10678 jest-mock: 27.5.1 10873 jest-mock: 27.5.1
10679 jest-util: 27.5.1 10874 jest-util: 27.5.1
10680 - jsdom: 16.7.0 10875 + jsdom: 16.7.0(canvas@2.11.2)
10681 transitivePeerDependencies: 10876 transitivePeerDependencies:
10682 - bufferutil 10877 - bufferutil
10683 - canvas 10878 - canvas
@@ -10790,7 +10985,7 @@ snapshots: @@ -10790,7 +10985,7 @@ snapshots:
10790 resolve.exports: 1.1.1 10985 resolve.exports: 1.1.1
10791 slash: 3.0.0 10986 slash: 3.0.0
10792 10987
10793 - jest-runner@27.5.1: 10988 + jest-runner@27.5.1(canvas@2.11.2):
10794 dependencies: 10989 dependencies:
10795 '@jest/console': 27.5.1 10990 '@jest/console': 27.5.1
10796 '@jest/environment': 27.5.1 10991 '@jest/environment': 27.5.1
@@ -10802,7 +10997,7 @@ snapshots: @@ -10802,7 +10997,7 @@ snapshots:
10802 emittery: 0.8.1 10997 emittery: 0.8.1
10803 graceful-fs: 4.2.11 10998 graceful-fs: 4.2.11
10804 jest-docblock: 27.5.1 10999 jest-docblock: 27.5.1
10805 - jest-environment-jsdom: 27.5.1 11000 + jest-environment-jsdom: 27.5.1(canvas@2.11.2)
10806 jest-environment-node: 27.5.1 11001 jest-environment-node: 27.5.1
10807 jest-haste-map: 27.5.1 11002 jest-haste-map: 27.5.1
10808 jest-leak-detector: 27.5.1 11003 jest-leak-detector: 27.5.1
@@ -10912,11 +11107,11 @@ snapshots: @@ -10912,11 +11107,11 @@ snapshots:
10912 merge-stream: 2.0.0 11107 merge-stream: 2.0.0
10913 supports-color: 8.1.1 11108 supports-color: 8.1.1
10914 11109
10915 - jest@27.5.1(ts-node@10.9.1(@types/node@20.4.0)(typescript@5.1.6)): 11110 + jest@27.5.1(canvas@2.11.2)(ts-node@10.9.1(@types/node@20.4.0)(typescript@5.1.6)):
10916 dependencies: 11111 dependencies:
10917 - '@jest/core': 27.5.1(ts-node@10.9.1(@types/node@20.4.0)(typescript@5.1.6)) 11112 + '@jest/core': 27.5.1(canvas@2.11.2)(ts-node@10.9.1(@types/node@20.4.0)(typescript@5.1.6))
10918 import-local: 3.1.0 11113 import-local: 3.1.0
10919 - jest-cli: 27.5.1(ts-node@10.9.1(@types/node@20.4.0)(typescript@5.1.6)) 11114 + jest-cli: 27.5.1(canvas@2.11.2)(ts-node@10.9.1(@types/node@20.4.0)(typescript@5.1.6))
10920 transitivePeerDependencies: 11115 transitivePeerDependencies:
10921 - bufferutil 11116 - bufferutil
10922 - canvas 11117 - canvas
@@ -10959,7 +11154,7 @@ snapshots: @@ -10959,7 +11154,7 @@ snapshots:
10959 dependencies: 11154 dependencies:
10960 argparse: 2.0.1 11155 argparse: 2.0.1
10961 11156
10962 - jsdom@16.7.0: 11157 + jsdom@16.7.0(canvas@2.11.2):
10963 dependencies: 11158 dependencies:
10964 abab: 2.0.6 11159 abab: 2.0.6
10965 acorn: 8.10.0 11160 acorn: 8.10.0
@@ -10988,6 +11183,8 @@ snapshots: @@ -10988,6 +11183,8 @@ snapshots:
10988 whatwg-url: 8.7.0 11183 whatwg-url: 8.7.0
10989 ws: 7.5.9 11184 ws: 7.5.9
10990 xml-name-validator: 3.0.0 11185 xml-name-validator: 3.0.0
  11186 + optionalDependencies:
  11187 + canvas: 2.11.2
10991 transitivePeerDependencies: 11188 transitivePeerDependencies:
10992 - bufferutil 11189 - bufferutil
10993 - supports-color 11190 - supports-color
@@ -11441,6 +11638,9 @@ snapshots: @@ -11441,6 +11638,9 @@ snapshots:
11441 11638
11442 mimic-fn@4.0.0: {} 11639 mimic-fn@4.0.0: {}
11443 11640
  11641 + mimic-response@2.1.0:
  11642 + optional: true
  11643 +
11444 min-indent@1.0.1: {} 11644 min-indent@1.0.1: {}
11445 11645
11446 minimatch@3.1.2: 11646 minimatch@3.1.2:
@@ -11463,8 +11663,22 @@ snapshots: @@ -11463,8 +11663,22 @@ snapshots:
11463 11663
11464 minimist@1.2.8: {} 11664 minimist@1.2.8: {}
11465 11665
  11666 + minipass@3.3.6:
  11667 + dependencies:
  11668 + yallist: 4.0.0
  11669 + optional: true
  11670 +
  11671 + minipass@5.0.0:
  11672 + optional: true
  11673 +
11466 minipass@6.0.2: {} 11674 minipass@6.0.2: {}
11467 11675
  11676 + minizlib@2.1.2:
  11677 + dependencies:
  11678 + minipass: 3.3.6
  11679 + yallist: 4.0.0
  11680 + optional: true
  11681 +
11468 mixin-deep@1.3.2: 11682 mixin-deep@1.3.2:
11469 dependencies: 11683 dependencies:
11470 for-in: 1.0.2 11684 for-in: 1.0.2
@@ -11525,6 +11739,9 @@ snapshots: @@ -11525,6 +11739,9 @@ snapshots:
11525 object-assign: 4.1.1 11739 object-assign: 4.1.1
11526 thenify-all: 1.6.0 11740 thenify-all: 1.6.0
11527 11741
  11742 + nan@2.20.0:
  11743 + optional: true
  11744 +
11528 nanoid@3.3.6: {} 11745 nanoid@3.3.6: {}
11529 11746
11530 nanomatch@1.2.13: 11747 nanomatch@1.2.13:
@@ -11607,6 +11824,11 @@ snapshots: @@ -11607,6 +11824,11 @@ snapshots:
11607 dependencies: 11824 dependencies:
11608 abbrev: 1.1.1 11825 abbrev: 1.1.1
11609 11826
  11827 + nopt@5.0.0:
  11828 + dependencies:
  11829 + abbrev: 1.1.1
  11830 + optional: true
  11831 +
11610 nopt@6.0.0: 11832 nopt@6.0.0:
11611 dependencies: 11833 dependencies:
11612 abbrev: 1.1.1 11834 abbrev: 1.1.1
@@ -11635,6 +11857,14 @@ snapshots: @@ -11635,6 +11857,14 @@ snapshots:
11635 dependencies: 11857 dependencies:
11636 path-key: 4.0.0 11858 path-key: 4.0.0
11637 11859
  11860 + npmlog@5.0.1:
  11861 + dependencies:
  11862 + are-we-there-yet: 2.0.0
  11863 + console-control-strings: 1.1.0
  11864 + gauge: 3.0.2
  11865 + set-blocking: 2.0.0
  11866 + optional: true
  11867 +
11638 nprogress@0.2.0: {} 11868 nprogress@0.2.0: {}
11639 11869
11640 nssocket@0.6.0: 11870 nssocket@0.6.0:
@@ -11838,10 +12068,21 @@ snapshots: @@ -11838,10 +12068,21 @@ snapshots:
11838 12068
11839 path-type@4.0.0: {} 12069 path-type@4.0.0: {}
11840 12070
  12071 + path2d@0.2.1:
  12072 + optional: true
  12073 +
11841 pathe@0.2.0: {} 12074 pathe@0.2.0: {}
11842 12075
11843 pathe@1.1.1: {} 12076 pathe@1.1.1: {}
11844 12077
  12078 + pdfjs-dist@4.5.136:
  12079 + optionalDependencies:
  12080 + canvas: 2.11.2
  12081 + path2d: 0.2.1
  12082 + transitivePeerDependencies:
  12083 + - encoding
  12084 + - supports-color
  12085 +
11845 perfect-debounce@1.0.0: {} 12086 perfect-debounce@1.0.0: {}
11846 12087
11847 picocolors@1.0.0: {} 12088 picocolors@1.0.0: {}
@@ -12445,6 +12686,16 @@ snapshots: @@ -12445,6 +12686,16 @@ snapshots:
12445 12686
12446 signal-exit@4.0.2: {} 12687 signal-exit@4.0.2: {}
12447 12688
  12689 + simple-concat@1.0.1:
  12690 + optional: true
  12691 +
  12692 + simple-get@3.1.1:
  12693 + dependencies:
  12694 + decompress-response: 4.2.1
  12695 + once: 1.4.0
  12696 + simple-concat: 1.0.1
  12697 + optional: true
  12698 +
12448 simple-update-notifier@1.1.0: 12699 simple-update-notifier@1.1.0:
12449 dependencies: 12700 dependencies:
12450 semver: 7.0.0 12701 semver: 7.0.0
@@ -12900,6 +13151,16 @@ snapshots: @@ -12900,6 +13151,16 @@ snapshots:
12900 inherits: 2.0.4 13151 inherits: 2.0.4
12901 readable-stream: 3.6.2 13152 readable-stream: 3.6.2
12902 13153
  13154 + tar@6.2.1:
  13155 + dependencies:
  13156 + chownr: 2.0.0
  13157 + fs-minipass: 2.1.0
  13158 + minipass: 5.0.0
  13159 + minizlib: 2.1.2
  13160 + mkdirp: 1.0.4
  13161 + yallist: 4.0.0
  13162 + optional: true
  13163 +
12903 terminal-link@2.1.1: 13164 terminal-link@2.1.1:
12904 dependencies: 13165 dependencies:
12905 ansi-escapes: 4.3.2 13166 ansi-escapes: 4.3.2
@@ -13590,6 +13851,11 @@ snapshots: @@ -13590,6 +13851,11 @@ snapshots:
13590 dependencies: 13851 dependencies:
13591 isexe: 2.0.0 13852 isexe: 2.0.0
13592 13853
  13854 + wide-align@1.1.5:
  13855 + dependencies:
  13856 + string-width: 4.2.3
  13857 + optional: true
  13858 +
13593 wmf@1.0.2: {} 13859 wmf@1.0.2: {}
13594 13860
13595 word-wrap@1.2.3: {} 13861 word-wrap@1.2.3: {}
public/pdf.pdf 0 → 100644
No preview for this file type
public/pdfs.pdf 0 → 100644
No preview for this file type
src/design/ant/index.less
@@ -8,7 +8,21 @@ @@ -8,7 +8,21 @@
8 } 8 }
9 } 9 }
10 10
11 -span.anticon:not(.app-iconify, .anticon-vertical-align-top, .anticon-bell) { 11 +// span.anticon:not(.app-iconify, .anticon-vertical-align-top, .anticon-bell) {
  12 +// vertical-align: 0.125em !important;
  13 +// }
  14 +span.anticon:not(
  15 + .app-iconify,
  16 + .anticon-vertical-align-top,
  17 + .anticon-bell,
  18 + .anticon-left,
  19 + .anticon-right,
  20 + .anticon-check-circle,
  21 + .anticon-info-circle,
  22 + .anticon-close-circle,
  23 + .anticon-exclamation-circle,
  24 + .anticon-loading
  25 + ) {
12 vertical-align: 0.125em !important; 26 vertical-align: 0.125em !important;
13 } 27 }
14 28
src/main.ts
@@ -4,9 +4,10 @@ import &#39;@/components/VxeTable/src/css/index.scss&#39;; @@ -4,9 +4,10 @@ import &#39;@/components/VxeTable/src/css/index.scss&#39;;
4 import 'ant-design-vue/dist/antd.less'; 4 import 'ant-design-vue/dist/antd.less';
5 // Register icon sprite 5 // Register icon sprite
6 import 'virtual:svg-icons-register'; 6 import 'virtual:svg-icons-register';
  7 +import 'ant-design-vue/dist/antd.css';
7 8
  9 +import Antd from 'ant-design-vue';
8 import { createApp } from 'vue'; 10 import { createApp } from 'vue';
9 -  
10 import { registerGlobComp } from '@/components/registerGlobComp'; 11 import { registerGlobComp } from '@/components/registerGlobComp';
11 import { setupGlobDirectives } from '@/directives'; 12 import { setupGlobDirectives } from '@/directives';
12 import { setupI18n } from '@/locales/setupI18n'; 13 import { setupI18n } from '@/locales/setupI18n';
@@ -59,6 +60,7 @@ async function bootstrap() { @@ -59,6 +60,7 @@ async function bootstrap() {
59 // await router.isReady(); 60 // await router.isReady();
60 61
61 app.mount('#app'); 62 app.mount('#app');
  63 + app.use(Antd);
62 } 64 }
63 65
64 bootstrap(); 66 bootstrap();
src/views/project/order/ExportModal.vue
@@ -162,6 +162,7 @@ @@ -162,6 +162,7 @@
162 //导出选中的订单 162 //导出选中的订单
163 fieldVO.orderIds = props.ids; 163 fieldVO.orderIds = props.ids;
164 exportLoading.value = true; 164 exportLoading.value = true;
  165 + console.log(fieldVO, 5656);
165 await orderExport({ ...searchData.value, fieldVO }); 166 await orderExport({ ...searchData.value, fieldVO });
166 exportLoading.value = false; 167 exportLoading.value = false;
167 168
src/views/project/order/FormDetail/BaseFormPanel.vue
@@ -14,6 +14,8 @@ @@ -14,6 +14,8 @@
14 import { FIELDS_BASE_INFO } from '../tableData'; 14 import { FIELDS_BASE_INFO } from '../tableData';
15 import { getBaseDisable } from '/@/utils/project'; 15 import { getBaseDisable } from '/@/utils/project';
16 import { useOrderStoreWithOut } from '/@/store/modules/order'; 16 import { useOrderStoreWithOut } from '/@/store/modules/order';
  17 + import { ROLE } from '../type.d';
  18 + import { useUserStoreWithOut } from '/@/store/modules/user';
17 19
18 import { useOrderInfo } from '/@/hooks/component/order'; 20 import { useOrderInfo } from '/@/hooks/component/order';
19 import { get } from 'lodash-es'; 21 import { get } from 'lodash-es';
@@ -55,7 +57,10 @@ @@ -55,7 +57,10 @@
55 let fields = ref({}); 57 let fields = ref({});
56 const picUrl = ref(''); 58 const picUrl = ref('');
57 const smallPicUrl = ref(''); 59 const smallPicUrl = ref('');
58 - 60 + const userStore = useUserStoreWithOut();
  61 + const role = computed(() => {
  62 + return userStore.getUserInfo?.roleSmallVO?.code;
  63 + });
59 const orderStore = useOrderStoreWithOut(); 64 const orderStore = useOrderStoreWithOut();
60 const { 65 const {
61 customerCode, 66 customerCode,
@@ -86,6 +91,68 @@ @@ -86,6 +91,68 @@
86 businessPerson: props.businessUsers, 91 businessPerson: props.businessUsers,
87 }; 92 };
88 93
  94 + // const res = FIELDS_BASE_INFO.map((item) => {
  95 + // if (item.field === 'picUrl') {
  96 + // return {
  97 + // field: 'picUrl',
  98 + // component: 'FieldUpload',
  99 + // label: '图片',
  100 + // rules: [{ required: true }],
  101 + // colProps: {
  102 + // span: 24,
  103 + // },
  104 + // componentProps: {
  105 + // imgUrl: picUrl.value,
  106 + // // disabled: getDisable(get(fields.value, 'picUrl'), props.id),
  107 + // onChange: (res) => {
  108 + // if (res.file?.response?.data) {
  109 + // picUrl.value = res.file?.response?.data?.picUrl;
  110 + // smallPicUrl.value = res.file?.response?.data?.smallPicUrl;
  111 +
  112 + // setFieldsValue({ picUrl: picUrl.value });
  113 + // clearValidate('picUrl');
  114 + // }
  115 + // },
  116 + // },
  117 + // };
  118 + // }
  119 +
  120 + // return {
  121 + // ...item,
  122 + // field: `${item.field}`,
  123 + // componentProps: {
  124 + // ...(item.component === 'Select' && { showSearch: true }),
  125 + // ...(item.component === 'Select' && { options: options[item.field] }),
  126 + // disabled: getBaseDisable(item.field, get(fields.value, `${item.field}`), props.id),
  127 + // onChange: async (val) => {
  128 + // if (item.field === 'customerCode' && !isCopy.value) {
  129 + // if (!props.id) {
  130 + // setFieldsValue({ projectNo: val + '-', innerNo: val + '/' });
  131 + // }
  132 + // }
  133 + // isCopy.value = false;
  134 +
  135 + // if (item.field === 'innerNo') {
  136 + // val = typeof val === 'string' ? val : val.target.value;
  137 + // const res = await orderFieldCheck({
  138 + // innerNo: [val],
  139 + // });
  140 + // if (res) {
  141 + // isInnerNoRepeat.value = `内部编码 ${val} 已存在,保存前请确认是否需要修改`;
  142 + // } else {
  143 + // isInnerNoRepeat.value = '';
  144 + // }
  145 + // }
  146 + // },
  147 + // },
  148 + // colProps: {
  149 + // span: 24,
  150 + // },
  151 + // };
  152 + // });
  153 + // return res;
  154 + // });
  155 + //biaoji
89 const res = FIELDS_BASE_INFO.map((item) => { 156 const res = FIELDS_BASE_INFO.map((item) => {
90 if (item.field === 'picUrl') { 157 if (item.field === 'picUrl') {
91 return { 158 return {
@@ -111,14 +178,38 @@ @@ -111,14 +178,38 @@
111 }, 178 },
112 }; 179 };
113 } 180 }
114 - 181 + const businessNotDisabledFields = ['customerCode', 'projectNo', 'innerNo'];
  182 + const trackerNotDisabledFields = [
  183 + 'customerPo',
  184 + 'customerStyle',
  185 + 'modeleLo',
  186 + 'collection',
  187 + 'poColor',
  188 + 'cnColor',
  189 + 'picUrl',
  190 + 'productStyle',
  191 + 'orderComposition',
  192 + 'productionDepartmentConsignTime',
  193 + 'orderHodTime',
  194 + 'outboundType',
  195 + 'packetType',
  196 + 'productionComment',
  197 + ];
  198 + const isFieldNotDisabledForBusiness = businessNotDisabledFields.includes(item.field);
  199 + const isFieldNotDisabledForTracker = trackerNotDisabledFields.includes(item.field);
115 return { 200 return {
116 ...item, 201 ...item,
117 field: `${item.field}`, 202 field: `${item.field}`,
118 componentProps: { 203 componentProps: {
119 ...(item.component === 'Select' && { showSearch: true }), 204 ...(item.component === 'Select' && { showSearch: true }),
120 ...(item.component === 'Select' && { options: options[item.field] }), 205 ...(item.component === 'Select' && { options: options[item.field] }),
121 - disabled: getBaseDisable(item.field, get(fields.value, `${item.field}`), props.id), 206 + disabled:
  207 + role.value === ROLE.BUSINESS
  208 + ? !isFieldNotDisabledForBusiness
  209 + : role.value === ROLE.TRACKER
  210 + ? !isFieldNotDisabledForTracker
  211 + : getBaseDisable(item.field, get(fields.value, `${item.field}`), props.id),
  212 + // disabled: getBaseDisable(item.field, get(fields.value, `${item.field}`), props.id),
122 onChange: async (val) => { 213 onChange: async (val) => {
123 if (item.field === 'customerCode' && !isCopy.value) { 214 if (item.field === 'customerCode' && !isCopy.value) {
124 if (!props.id) { 215 if (!props.id) {
@@ -148,6 +239,7 @@ @@ -148,6 +239,7 @@
148 return res; 239 return res;
149 }); 240 });
150 241
  242 + //biaoji
151 var [registerForm, { setFieldsValue, getFieldsValue, resetFields, validate, clearValidate }] = 243 var [registerForm, { setFieldsValue, getFieldsValue, resetFields, validate, clearValidate }] =
152 useForm({ 244 useForm({
153 labelWidth: 120, 245 labelWidth: 120,
@@ -169,6 +261,7 @@ @@ -169,6 +261,7 @@
169 picUrl, 261 picUrl,
170 smallPicUrl, 262 smallPicUrl,
171 isInnerNoRepeat, 263 isInnerNoRepeat,
  264 + role,
172 }; 265 };
173 }, 266 },
174 }); 267 });
src/views/project/order/FormDetail/TrackFormPanel.vue
@@ -24,36 +24,28 @@ @@ -24,36 +24,28 @@
24 emits: ['success'], 24 emits: ['success'],
25 setup(props, { emit }) { 25 setup(props, { emit }) {
26 let fields = ref({}); 26 let fields = ref({});
  27 + //不被禁用的字段
  28 + const nonDisabledFields = [
  29 + 'ppConfirmResult',
  30 + 'sgsTestFinishResult',
  31 + 'aitexTestFinishResult',
  32 + 'shippmentSampleConfirmResult',
  33 + ];
27 34
28 const schemas = computed(() => { 35 const schemas = computed(() => {
29 - // return FIELDS_TRACK_STAGE_INFO.map((item) => ({  
30 - // ...item,  
31 - // componentProps: {  
32 - // ...item.componentProps,  
33 - // ...(item.component === 'Select' && { showSearch: true }),  
34 - // disabled: getDisable(  
35 - // get(fields.value, `${item.field}`),  
36 - // props.id,  
37 - // get(props.trackFormData, `${item.field}`),  
38 - // ),  
39 - // },  
40 - // colProps: {  
41 - // span: 24,  
42 - // },  
43 - // }));  
44 return FIELDS_TRACK_STAGE_INFO.map((item) => ({ 36 return FIELDS_TRACK_STAGE_INFO.map((item) => ({
45 ...item, 37 ...item,
46 componentProps: { 38 componentProps: {
47 ...item.componentProps, 39 ...item.componentProps,
48 ...(item.component === 'Select' && { showSearch: true }), 40 ...(item.component === 'Select' && { showSearch: true }),
49 - disabled:  
50 - item.field === 'ppConfirmResult'  
51 - ? false  
52 - : getDisable(  
53 - get(fields.value, `${item.field}`),  
54 - props.id,  
55 - get(props.trackFormData, `${item.field}`),  
56 - ), 41 + // 使用 includes 方法检查字段是否在非禁用列表中
  42 + disabled: nonDisabledFields.includes(item.field)
  43 + ? false
  44 + : getDisable(
  45 + get(fields.value, `${item.field}`),
  46 + props.id,
  47 + get(props.trackFormData, `${item.field}`),
  48 + ),
57 }, 49 },
58 colProps: { 50 colProps: {
59 span: 24, 51 span: 24,
src/views/project/order/FormDetail/index.vue
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 key="1" 20 key="1"
21 tab="基本信息" 21 tab="基本信息"
22 :forceRender="true" 22 :forceRender="true"
23 - v-if="role === ROLE.ADMIN || role === ROLE.TRACKER" 23 + v-if="role === ROLE.ADMIN || role === ROLE.TRACKER || role === ROLE.BUSINESS"
24 > 24 >
25 <span className="text-red-600">{{ checkingMsg }}</span> 25 <span className="text-red-600">{{ checkingMsg }}</span>
26 <BaseFormPanel 26 <BaseFormPanel
@@ -156,6 +156,8 @@ @@ -156,6 +156,8 @@
156 const configList = ref([]); 156 const configList = ref([]);
157 const businessUsers = ref([]); 157 const businessUsers = ref([]);
158 const checkingMsg = ref(''); 158 const checkingMsg = ref('');
  159 + //ppconfirm
  160 + const ppUpdate = ref('');
159 161
160 //修改之前的包装费用 162 //修改之前的包装费用
161 const originPackagePrice = ref(-1.0); 163 const originPackagePrice = ref(-1.0);
@@ -187,7 +189,8 @@ @@ -187,7 +189,8 @@
187 const [register, { closeDrawer }] = useDrawerInner((data) => { 189 const [register, { closeDrawer }] = useDrawerInner((data) => {
188 // baseFormPanelRef.value.setFieldValue('isEditPacketPrice', false); 190 // baseFormPanelRef.value.setFieldValue('isEditPacketPrice', false);
189 activeKey.value = 191 activeKey.value =
190 - role.value === ROLE.INSPECT ? '5' : role.value === ROLE.BUSINESS ? '2' : '1'; 192 + // role.value === ROLE.INSPECT ? '5' : role.value === ROLE.BUSINESS ? '2' : '1';
  193 + activeKey.value = role.value === ROLE.INSPECT ? '5' : '1';
191 194
192 checkingMsg.value = ''; 195 checkingMsg.value = '';
193 if (!data.id) { 196 if (!data.id) {
@@ -211,7 +214,6 @@ @@ -211,7 +214,6 @@
211 inspectFormData.value = data.inspectionStageInfo; 214 inspectFormData.value = data.inspectionStageInfo;
212 reportFormData.value = data?.orderUpdateInfoVO?.reportFields || data.reportInfo; 215 reportFormData.value = data?.orderUpdateInfoVO?.reportFields || data.reportInfo;
213 trackFormData.value = data.trackStageInfo; 216 trackFormData.value = data.trackStageInfo;
214 -  
215 // 方式1 217 // 方式1
216 picUrl.value = data.picUrl; 218 picUrl.value = data.picUrl;
217 data.orderHodTime = data.orderHodTime ? dateUtil(data.orderHodTime) : null; 219 data.orderHodTime = data.orderHodTime ? dateUtil(data.orderHodTime) : null;
@@ -319,6 +321,7 @@ @@ -319,6 +321,7 @@
319 trackFormPanelRef?.value?.setFieldsValue({ 321 trackFormPanelRef?.value?.setFieldsValue({
320 ...toRaw(data.trackStageInfo), 322 ...toRaw(data.trackStageInfo),
321 }); 323 });
  324 + ppUpdate.value = data.trackStageInfo.ppConfirmResult;
322 } 325 }
323 326
324 if (inspectionFormPanelRef.value) { 327 if (inspectionFormPanelRef.value) {
@@ -334,7 +337,6 @@ @@ -334,7 +337,6 @@
334 baseFormPanelRef.value.resetFields(); 337 baseFormPanelRef.value.resetFields();
335 } 338 }
336 }); 339 });
337 -  
338 const handleSubmit = async () => { 340 const handleSubmit = async () => {
339 try { 341 try {
340 if (id.value) { 342 if (id.value) {
@@ -399,7 +401,11 @@ @@ -399,7 +401,11 @@
399 } else if (activeKey.value === '5') { 401 } else if (activeKey.value === '5') {
400 forms.inspectionStageInfo = inspectionFormPanelRef?.value?.getFieldsValue() || {}; 402 forms.inspectionStageInfo = inspectionFormPanelRef?.value?.getFieldsValue() || {};
401 } 403 }
402 - 404 + //跟单信息标记
  405 + if (forms.trackStageInfo.ppConfirmResult !== ppUpdate.value) {
  406 + const today = new Date();
  407 + forms.trackStageInfo.ppUpdateTime = getFormattedDate(today);
  408 + }
403 await orderUpdate(forms); 409 await orderUpdate(forms);
404 closeDrawer(); 410 closeDrawer();
405 emit('success', {}); 411 emit('success', {});
@@ -425,6 +431,12 @@ @@ -425,6 +431,12 @@
425 console.log(error); 431 console.log(error);
426 } 432 }
427 }; 433 };
  434 + const getFormattedDate = (date: Date): string => {
  435 + const year = date.getFullYear();
  436 + const month = String(date.getMonth() + 1).padStart(2, '0'); // 月份从0开始,所以加1
  437 + const day = String(date.getDate()).padStart(2, '0');
  438 + return `${year}/${month}/${day}`;
  439 + };
428 return { 440 return {
429 id, 441 id,
430 isCopy, 442 isCopy,
@@ -446,6 +458,8 @@ @@ -446,6 +458,8 @@
446 businessUsers, 458 businessUsers,
447 checkingMsg, 459 checkingMsg,
448 orderCount, 460 orderCount,
  461 + ppUpdate,
  462 + getFormattedDate,
449 }; 463 };
450 }, 464 },
451 }); 465 });
src/views/project/order/PassCalculate.vue 0 → 100644
  1 +<template>
  2 + <BasicModal
  3 + v-bind="$attrs"
  4 + :title="title"
  5 + @register="register"
  6 + width="500px"
  7 + :bodyStyle="{ height: '100px' }"
  8 + @ok="handleOk"
  9 + >
  10 + <div style="margin-left: 10px; font-size: 16px">一次通过率:{{ result }}</div>
  11 + </BasicModal>
  12 +</template>
  13 +<script lang="ts" setup>
  14 + import { BasicModal, useModalInner } from '@/components/Modal';
  15 + import { computed, ref } from 'vue';
  16 +
  17 + const [register, { closeModal }] = useModalInner(async (data) => {
  18 + console.log(data, 56562);
  19 + title.value = data.title;
  20 + });
  21 + const title = ref('');
  22 + const result = computed(() => {
  23 + const res = 1234;
  24 + return res;
  25 + });
  26 +
  27 + async function handleOk() {
  28 + closeModal();
  29 + }
  30 +</script>
src/views/project/order/ProductText.vue
1 <template> 1 <template>
2 - <BasicModal 2 + <!-- <BasicModal
3 v-bind="$attrs" 3 v-bind="$attrs"
4 destroyOnClose 4 destroyOnClose
5 @register="register" 5 @register="register"
@@ -9,6 +9,16 @@ @@ -9,6 +9,16 @@
9 wrapClassName="h-[340px]" 9 wrapClassName="h-[340px]"
10 @visible-change="handleShow" 10 @visible-change="handleShow"
11 :footer="null" 11 :footer="null"
  12 + > -->
  13 + <BasicModal
  14 + v-bind="$attrs"
  15 + destroyOnClose
  16 + @register="register"
  17 + title="生产指标书"
  18 + width="500px"
  19 + @visible-change="handleShow"
  20 + :footer="null"
  21 + :bodyStyle="{ height: '180px' }"
12 > 22 >
13 <div class="container"> 23 <div class="container">
14 <div v-if="isShow1 == true" style="margin-top: 50px; text-align: center"> 24 <div v-if="isShow1 == true" style="margin-top: 50px; text-align: center">
@@ -44,9 +54,17 @@ @@ -44,9 +54,17 @@
44 import { BasicModal, useModalInner } from '/@/components/Modal'; 54 import { BasicModal, useModalInner } from '/@/components/Modal';
45 import { RadioGroup } from 'ant-design-vue'; 55 import { RadioGroup } from 'ant-design-vue';
46 import { EyeOutlined, FilePptOutlined } from '@ant-design/icons-vue'; 56 import { EyeOutlined, FilePptOutlined } from '@ant-design/icons-vue';
47 - import { createImgPreview } from '@/components/Preview'; 57 + import { useMessage } from '@/hooks/web/useMessage';
48 58
49 export default defineComponent({ 59 export default defineComponent({
  60 + props: {
  61 + role: {
  62 + type: String,
  63 + },
  64 + customerCodes: {
  65 + type: Array<string | number>,
  66 + },
  67 + },
50 components: { BasicModal, RadioGroup, EyeOutlined, FilePptOutlined }, 68 components: { BasicModal, RadioGroup, EyeOutlined, FilePptOutlined },
51 setup(props) { 69 setup(props) {
52 const loading = ref(true); 70 const loading = ref(true);
@@ -56,7 +74,7 @@ @@ -56,7 +74,7 @@
56 const isShow1 = ref(true); //选择公司页面 74 const isShow1 = ref(true); //选择公司页面
57 const isShow2 = ref(false); //生成PDF页面 75 const isShow2 = ref(false); //生成PDF页面
58 const pdf = ref(['/pdf.png']); 76 const pdf = ref(['/pdf.png']);
59 - const [register, { setModalProps, closeModal }] = useModalInner(); 77 + const [register, { setModalProps, closeModal }] = useModalInner(async (data) => {});
60 const options = computed(() => { 78 const options = computed(() => {
61 // 运营总监-基本信息,跟单,质检 79 // 运营总监-基本信息,跟单,质检
62 return [ 80 return [
@@ -64,6 +82,21 @@ @@ -64,6 +82,21 @@
64 { label: ' 青岛吉庆天成饰品有限公司', value: '2' }, 82 { label: ' 青岛吉庆天成饰品有限公司', value: '2' },
65 ]; 83 ];
66 }); 84 });
  85 + const { createMessage } = useMessage();
  86 + const { error } = createMessage;
  87 + const customerCodeToCompanyMap: Record<string, string> = {
  88 + A01: '1',
  89 + A04: '2',
  90 + A05: '2',
  91 + A06: '1',
  92 + A07: '2',
  93 + A08: '1',
  94 + A09: '1',
  95 + A10: '1',
  96 + A11: '1',
  97 + M03: '2',
  98 + M05: '2',
  99 + };
67 function handleCancel() { 100 function handleCancel() {
68 loading.value = true; 101 loading.value = true;
69 choose.value = ''; 102 choose.value = '';
@@ -81,23 +114,44 @@ @@ -81,23 +114,44 @@
81 isShow2.value = false; 114 isShow2.value = false;
82 } 115 }
83 } 116 }
  117 + //判断选择公司与客户编码是否对应
  118 + function validateCustomerCodes(customerCodes: string[], chooseCompany: string): boolean {
  119 + for (const code of customerCodes) {
  120 + const expectedCompanyValue = customerCodeToCompanyMap[code];
  121 + if (expectedCompanyValue === undefined) {
  122 + // 如果代码不在映射中,不需要对应公司
  123 + continue;
  124 + }
  125 + if (customerCodeToCompanyMap[code] !== chooseCompany) {
  126 + // 如果属于 customerCodes 的值与其公司不匹配,返回 false
  127 + return false;
  128 + }
  129 + }
  130 + return true; // 如果所有 customerCodes 内的代码正确匹配,返回 true
  131 + }
  132 + //生成pdf
  133 + // const customerCodeList: string[] = props.customerCodes;
84 function handleProduct() { 134 function handleProduct() {
85 - if (choose.value == '1' || choose.value == '2') {  
86 - isShow1.value = false;  
87 - isShow2.value = true; 135 + const customerCodeList: string[] = props.customerCodes;
  136 + const areValid = validateCustomerCodes(customerCodeList, choose.value);
  137 + console.log(customerCodeList, 5656, props.customerCodes);
  138 + //如果选错了,弹出提示
  139 + if (!areValid) {
  140 + error('勾选订单与选择的公司不匹配');
  141 + } else {
  142 + if (choose.value == '1' || choose.value == '2') {
  143 + //此处设置接口,传递选择的公司值
  144 + isShow1.value = false;
  145 + isShow2.value = true;
  146 + }
88 } 147 }
89 - //此处设置接口传递选择的公司值  
90 } 148 }
  149 + //查看pdf
91 function handlePdf() { 150 function handlePdf() {
92 - // 可以使用createImgPreview返回的 PreviewActions 来控制预览逻辑,实现类似幻灯片、自动旋转之类的骚操作  
93 - // createImgPreview({  
94 - // imageList: pdf.value,  
95 - // defaultWidth: 500,  
96 - // rememberState: true,  
97 - // maskClosable: true,  
98 - // });  
99 - console.log(123); 151 + // const pdfUrl = './pdfs.pdf';
  152 + // window.open(pdfUrl, '_blank');
100 } 153 }
  154 + //发送按钮
101 async function handleExport() { 155 async function handleExport() {
102 closeModal(); 156 closeModal();
103 } 157 }
src/views/project/order/TrackHistory.vue 0 → 100644
  1 +<template>
  2 + <BasicDrawer v-bind="$attrs" title="Drawer Title" width="35%"> Drawer Info. </BasicDrawer>
  3 +</template>
  4 +<script lang="ts" setup>
  5 + import { BasicDrawer } from '@/components/Drawer';
  6 +</script>
src/views/project/order/index.vue
@@ -64,7 +64,7 @@ @@ -64,7 +64,7 @@
64 }, 64 },
65 { 65 {
66 label: '跟单结果记录', 66 label: '跟单结果记录',
67 - onClick: handleInvoice.bind(null, record), 67 + onClick: handleTrackHistory.bind(null, record),
68 }, 68 },
69 { 69 {
70 // 数据分析没有编辑权限 70 // 数据分析没有编辑权限
@@ -101,6 +101,25 @@ @@ -101,6 +101,25 @@
101 </template> 101 </template>
102 102
103 <template #toolbar> 103 <template #toolbar>
  104 + <a-select
  105 + ref="select"
  106 + v-model:value="value1"
  107 + style="width: 118px"
  108 + @change="handleChange"
  109 + class="passCalculate"
  110 + dropdown-class-name="dropdown-class"
  111 + >
  112 + <a-select-option value1="confirm">一次通过率</a-select-option>
  113 + <a-select-option value="确认样品" @click="handlePassModal('确认样品')"
  114 + >确认样品</a-select-option
  115 + >
  116 + <a-select-option value="生产样品" @click="handlePassModal('生产样品')"
  117 + >生产样品</a-select-option
  118 + >
  119 + <a-select-option value="测试样品" @click="handlePassModal('测试样品')"
  120 + >测试样品</a-select-option
  121 + >
  122 + </a-select>
104 <a-button 123 <a-button
105 type="primary" 124 type="primary"
106 @click="handleProductModal" 125 @click="handleProductModal"
@@ -131,13 +150,19 @@ @@ -131,13 +150,19 @@
131 :onGoCheckDetail="handleGoCheckDetail" 150 :onGoCheckDetail="handleGoCheckDetail"
132 @success="handleFormSuccess" 151 @success="handleFormSuccess"
133 /> 152 />
134 - <ProductText @register="productModalRegister" /> 153 + <ProductText
  154 + @register="productModalRegister"
  155 + :role="role"
  156 + :customerCodes="selectedCustomCodes"
  157 + />
135 <ProfitAnalysis @register="profitModalRegister" /> 158 <ProfitAnalysis @register="profitModalRegister" />
136 <RateModal @register="rateModalRegister" /> 159 <RateModal @register="rateModalRegister" />
137 <ExportModal @register="exportModalRegister" :role="role" :ids="checkedKeys" /> 160 <ExportModal @register="exportModalRegister" :role="role" :ids="checkedKeys" />
138 <CheckDetail @register="checkModalRegister" :onGoFormDetail="handleGoFormDetail" /> 161 <CheckDetail @register="checkModalRegister" :onGoFormDetail="handleGoFormDetail" />
139 <HistoryDetail @register="historyDetailRegister" /> 162 <HistoryDetail @register="historyDetailRegister" />
  163 + <TrackHistory @register="trackHistoryRegister" />
140 <FieldDetail @register="fieldDetailRegister" /> 164 <FieldDetail @register="fieldDetailRegister" />
  165 + <PassCalculate @register="passModalRegister" />
141 </div> 166 </div>
142 </template> 167 </template>
143 <script lang="ts"> 168 <script lang="ts">
@@ -152,12 +177,14 @@ @@ -152,12 +177,14 @@
152 import ProductText from './ProductText.vue'; 177 import ProductText from './ProductText.vue';
153 import RateModal from './RateModal.vue'; 178 import RateModal from './RateModal.vue';
154 import ExportModal from './ExportModal.vue'; 179 import ExportModal from './ExportModal.vue';
  180 + import PassCalculate from './PassCalculate.vue';
155 import { useModal } from '/@/components/Modal'; 181 import { useModal } from '/@/components/Modal';
156 182
157 import { getFormConfig, getOrderColumns, SELECT_FIELD_COLUMNS } from './tableData'; 183 import { getFormConfig, getOrderColumns, SELECT_FIELD_COLUMNS } from './tableData';
158 import FormDetail from './FormDetail/index.vue'; 184 import FormDetail from './FormDetail/index.vue';
159 import CheckDetail from './CheckDetail.vue'; 185 import CheckDetail from './CheckDetail.vue';
160 import HistoryDetail from './HistoryDetail.vue'; 186 import HistoryDetail from './HistoryDetail.vue';
  187 + import TrackHistory from './TrackHistory.vue';
161 import FieldDetail from './FieldDetail.vue'; 188 import FieldDetail from './FieldDetail.vue';
162 import { createImgPreview } from '/@/components/Preview/index'; 189 import { createImgPreview } from '/@/components/Preview/index';
163 import { getOrderList, orderDelete } from '/@/api/project/order'; 190 import { getOrderList, orderDelete } from '/@/api/project/order';
@@ -178,23 +205,28 @@ @@ -178,23 +205,28 @@
178 FormDetail, 205 FormDetail,
179 ProfitAnalysis, 206 ProfitAnalysis,
180 ProductText, 207 ProductText,
  208 + PassCalculate,
181 FormOutlined, 209 FormOutlined,
182 CheckDetail, 210 CheckDetail,
183 HistoryDetail, 211 HistoryDetail,
  212 + TrackHistory,
184 FieldDetail, 213 FieldDetail,
185 RateModal, 214 RateModal,
186 ExportModal, 215 ExportModal,
187 }, 216 },
188 setup() { 217 setup() {
189 const checkedKeys = ref<Array<string | number>>([]); 218 const checkedKeys = ref<Array<string | number>>([]);
  219 + const selectedCustomCodes = ref<Array<string>>([]);
190 const [profitModalRegister, { openModal: openProfitModal }] = useModal(); 220 const [profitModalRegister, { openModal: openProfitModal }] = useModal();
191 const [rateModalRegister, { openModal: openRateModal }] = useModal(); 221 const [rateModalRegister, { openModal: openRateModal }] = useModal();
192 const [exportModalRegister, { openModal: openExportModal }] = useModal(); 222 const [exportModalRegister, { openModal: openExportModal }] = useModal();
193 const [productModalRegister, { openModal: openProductModal }] = useModal(); 223 const [productModalRegister, { openModal: openProductModal }] = useModal();
  224 + const [passModalRegister, { openModal: openPassModal }] = useModal();
194 225
195 const tooltipVisible = ref(false); 226 const tooltipVisible = ref(false);
196 const [formDetailRegister, { openDrawer: openFormDetailDrawer }] = useDrawer(); 227 const [formDetailRegister, { openDrawer: openFormDetailDrawer }] = useDrawer();
197 const [historyDetailRegister, { openDrawer: openHistoryDetailDrawer }] = useDrawer(); 228 const [historyDetailRegister, { openDrawer: openHistoryDetailDrawer }] = useDrawer();
  229 + const [trackHistoryRegister, { openDrawer: openTrackHistoryDrawer }] = useDrawer();
198 const [fieldDetailRegister, { openDrawer: openFieldDetailDrawer }] = useDrawer(); 230 const [fieldDetailRegister, { openDrawer: openFieldDetailDrawer }] = useDrawer();
199 231
200 const user = userStore.getUserInfo; 232 const user = userStore.getUserInfo;
@@ -247,26 +279,39 @@ @@ -247,26 +279,39 @@
247 // slots: { customRender: 'action' }, 279 // slots: { customRender: 'action' },
248 }, 280 },
249 }); 281 });
250 -  
251 function getFormValues() { 282 function getFormValues() {
252 console.log(getForm().getFieldsValue()); 283 console.log(getForm().getFieldsValue());
253 } 284 }
254 -  
255 function onSelect(record, selected) { 285 function onSelect(record, selected) {
256 if (selected) { 286 if (selected) {
  287 + if (!selectedCustomCodes.value.includes(record.customerCode)) {
  288 + // 如果不包含,则添加到 selectedCustomCodes
  289 + selectedCustomCodes.value = [...selectedCustomCodes.value, record.customerCode];
  290 + }
257 checkedKeys.value = [...checkedKeys.value, record.id]; 291 checkedKeys.value = [...checkedKeys.value, record.id];
258 } else { 292 } else {
259 checkedKeys.value = checkedKeys.value.filter((id) => id !== record.id); 293 checkedKeys.value = checkedKeys.value.filter((id) => id !== record.id);
  294 + selectedCustomCodes.value = selectedCustomCodes.value.filter(
  295 + (customerCode) => customerCode !== record.customerCode,
  296 + );
260 } 297 }
261 } 298 }
262 function onSelectAll(selected, selectedRows, changeRows) { 299 function onSelectAll(selected, selectedRows, changeRows) {
263 const changeIds = changeRows.map((item) => item.id); 300 const changeIds = changeRows.map((item) => item.id);
  301 + const changeCustomerCodes = changeRows.map((item) => item.customerCode);
264 if (selected) { 302 if (selected) {
265 checkedKeys.value = [...checkedKeys.value, ...changeIds]; 303 checkedKeys.value = [...checkedKeys.value, ...changeIds];
  304 + // 创建一个集合来去除重复的代码
  305 + const allCodes = new Set([...selectedCustomCodes.value, ...changeCustomerCodes]);
  306 + // 将集合转换回数组
  307 + selectedCustomCodes.value = Array.from(allCodes);
266 } else { 308 } else {
267 checkedKeys.value = checkedKeys.value.filter((id) => { 309 checkedKeys.value = checkedKeys.value.filter((id) => {
268 return !changeIds.includes(id); 310 return !changeIds.includes(id);
269 }); 311 });
  312 + selectedCustomCodes.value = selectedCustomCodes.value.filter((customerCode) => {
  313 + return !changeCustomerCodes.includes(customerCode);
  314 + });
270 } 315 }
271 } 316 }
272 317
@@ -298,8 +343,9 @@ @@ -298,8 +343,9 @@
298 return false; 343 return false;
299 } 344 }
300 345
301 - function handleInvoice() {  
302 - console.log(1); 346 + function handleTrackHistory(record, e) {
  347 + openTrackHistoryDrawer(true, record);
  348 + return false;
303 } 349 }
304 350
305 function handleProfitModal() { 351 function handleProfitModal() {
@@ -311,6 +357,28 @@ @@ -311,6 +357,28 @@
311 }); 357 });
312 } 358 }
313 359
  360 + //一次通过率
  361 + const value1 = ref('一次通过率');
  362 + function handleChange() {}
  363 + function handlePassModal(title) {
  364 + const form = getForm();
  365 + const values = form.getFieldsValue();
  366 + if (title == '确认样品') {
  367 + openPassModal(true, {
  368 + check: checkedKeys.value,
  369 + data: values,
  370 + title: title,
  371 + });
  372 + return false;
  373 + } else if (title == '生产样品') {
  374 + openPassModal(true, title);
  375 + return false;
  376 + } else if (title == '测试样品') {
  377 + openPassModal(true, title);
  378 + return false;
  379 + }
  380 + }
  381 +
314 function handleProductModal() { 382 function handleProductModal() {
315 const form = getForm(); 383 const form = getForm();
316 const values = form.getFieldsValue(); 384 const values = form.getFieldsValue();
@@ -353,7 +421,6 @@ @@ -353,7 +421,6 @@
353 async function handleExportModal() { 421 async function handleExportModal() {
354 const form = getForm(); 422 const form = getForm();
355 const values = form.getFieldsValue(); 423 const values = form.getFieldsValue();
356 -  
357 openExportModal(true, { 424 openExportModal(true, {
358 data: values, 425 data: values,
359 }); 426 });
@@ -377,10 +444,13 @@ @@ -377,10 +444,13 @@
377 SELECT_FIELD_COLUMNS, 444 SELECT_FIELD_COLUMNS,
378 fieldDetailRegister, 445 fieldDetailRegister,
379 profitModalRegister, 446 profitModalRegister,
  447 + handleChange,
380 rateModalRegister, 448 rateModalRegister,
381 exportModalRegister, 449 exportModalRegister,
382 productModalRegister, 450 productModalRegister,
  451 + passModalRegister,
383 historyDetailRegister, 452 historyDetailRegister,
  453 + trackHistoryRegister,
384 formDetailRegister, 454 formDetailRegister,
385 handleProfitModal, 455 handleProfitModal,
386 registerTable, 456 registerTable,
@@ -396,8 +466,11 @@ @@ -396,8 +466,11 @@
396 checkModalRegister, 466 checkModalRegister,
397 handleGoCheckDetail, 467 handleGoCheckDetail,
398 handleGoFormDetail, 468 handleGoFormDetail,
399 - handleInvoice,  
400 handleHistory, 469 handleHistory,
  470 + focus,
  471 + value1,
  472 + handlePassModal,
  473 + handleTrackHistory,
401 handleAdd, 474 handleAdd,
402 createImgPreview, 475 createImgPreview,
403 handleExportModal, 476 handleExportModal,
@@ -407,7 +480,9 @@ @@ -407,7 +480,9 @@
407 handleRateModal, 480 handleRateModal,
408 openExportModal, 481 openExportModal,
409 openProductModal, 482 openProductModal,
  483 + openPassModal,
410 handleDelete, 484 handleDelete,
  485 + selectedCustomCodes,
411 role, 486 role,
412 ROLE, 487 ROLE,
413 }; 488 };
@@ -415,7 +490,7 @@ @@ -415,7 +490,7 @@
415 }); 490 });
416 </script> 491 </script>
417 492
418 -<style> 493 +<style lang="less">
419 .ant-table-thead th, 494 .ant-table-thead th,
420 .ant-table-tbody td { 495 .ant-table-tbody td {
421 padding: 0; 496 padding: 0;
@@ -435,5 +510,53 @@ @@ -435,5 +510,53 @@
435 padding-top: 0; 510 padding-top: 0;
436 padding-bottom: 0; 511 padding-bottom: 0;
437 } 512 }
  513 +
  514 + .passCalculate .ant-select-selector {
  515 + background-color: #1890ff !important;
  516 + color: white !important;
  517 + }
  518 +
  519 + .passCalculate .ant-select-selection-item {
  520 + color: white !important;
  521 + }
  522 +
  523 + .dropdown-class {
  524 + background-color: #1890ff; /* 选择框背景颜色 */
  525 + color: white;
  526 + border: none; /* 去除选择框边框 */
  527 + }
  528 +
  529 + .dropdown-class .ant-select-selector {
  530 + background-color: #1890ff; /* 选择框背景颜色 */
  531 + color: white;
  532 + border: none !important; /* 去除选择框边框 */
  533 + box-shadow: none !important; /* 去除选择框阴影 */
  534 + }
  535 +
  536 + .dropdown-class .ant-select-dropdown {
  537 + background-color: #1890ff; /* 下拉框背景颜色 */
  538 + border: none !important; /* 去除下拉框边框 */
  539 + box-shadow: none !important; /* 去除下拉框阴影 */
  540 + }
  541 +
  542 + .dropdown-class .ant-select-item {
  543 + background-color: #1890ff; /* 下拉选项背景颜色 */
  544 + color: white !important; /* 下拉选项字体颜色 */
  545 + border: none !important; /* 去除下拉选项边框 */
  546 + }
  547 +
  548 + .dropdown-class .ant-select-item:hover,
  549 + .dropdown-class .ant-select-item-option-active,
  550 + .dropdown-class .ant-select-item-option-selected {
  551 + background-color: #1967d3 !important; /* 选中和悬停状态下拉选项背景颜色 */
  552 + color: white !important; /* 选中和悬停状态下拉选项字体颜色 */
  553 + border: none !important; /* 去除选中和悬停状态下拉选项边框 */
  554 + }
  555 +
  556 + .dropdown-class .ant-select-item-option {
  557 + background-color: #1890ff; /* 下拉选项背景颜色 */
  558 + color: white !important; /* 下拉选项字体颜色 */
  559 + border: none !important; /* 去除下拉选项边框 */
  560 + }
438 </style> 561 </style>
439 ./constant 562 ./constant
src/views/project/order/tableData.tsx
@@ -374,7 +374,13 @@ export const ORDER_LIST_TRACK_FIELDS = [ @@ -374,7 +374,13 @@ export const ORDER_LIST_TRACK_FIELDS = [
374 dataIndex: 'ppConfirmResult', 374 dataIndex: 'ppConfirmResult',
375 customRender: (column) => { 375 customRender: (column) => {
376 const { record } = column || {}; 376 const { record } = column || {};
377 - return record?.trackStageInfo?.ppConfirmResult; 377 + if (record?.trackStageInfo?.ppConfirmResult !== undefined) {
  378 + const ppUpdate = record?.trackStageInfo?.ppConfirmResult;
  379 + const ppUpdate2 = ppUpdate + '123';
  380 + return ppUpdate2;
  381 + } else {
  382 + return record?.trackStageInfo?.ppConfirmResult;
  383 + }
378 }, 384 },
379 }, 385 },
380 { 386 {
@@ -673,6 +679,28 @@ export function getOrderColumns(role: ROLE) { @@ -673,6 +679,28 @@ export function getOrderColumns(role: ROLE) {
673 ]; 679 ];
674 } 680 }
675 681
  682 + // 运营总监-基本,跟单,质检
  683 + if (role === ROLE.PRODUCE) {
  684 + return [
  685 + ...ORDER_LIST_BASE_FIELDS.filter(
  686 + (field) => field.dataIndex !== 'orderHodTime' && field.dataIndex !== 'businessPerson',
  687 + ),
  688 + ...ORDER_LIST_PROFIT_FIELDS.map((item) => {
  689 + const children = item.children.filter(
  690 + (k) =>
  691 + k.dataIndex === 'productionDepartmentPrice' ||
  692 + k.dataIndex === 'productionDepartmentTotalPrice',
  693 + );
  694 + item.children = children;
  695 +
  696 + return item;
  697 + }),
  698 + ...ORDER_LIST_TRACK_FIELDS,
  699 + ...ORDER_LIST_INSPECT_FIELDS,
  700 + ...ORDER_LIST_SCHEDULE,
  701 + ];
  702 + }
  703 +
676 return []; 704 return [];
677 } 705 }
678 /** 706 /**
@@ -962,15 +990,36 @@ export const FIELDS_TRACK_STAGE_INFO = [ @@ -962,15 +990,36 @@ export const FIELDS_TRACK_STAGE_INFO = [
962 }, 990 },
963 { 991 {
964 field: 'shippmentSampleConfirmResult', 992 field: 'shippmentSampleConfirmResult',
965 - component: 'Input',  
966 - // componentProps: {  
967 - // options: [  
968 - // {  
969 - // label: 'ok',  
970 - // value: 'ok',  
971 - // },  
972 - // ],  
973 - // }, 993 + component: 'Select',
  994 + componentProps: {
  995 + options: [
  996 + {
  997 + label: '1.1st ok',
  998 + value: '1.1st ok',
  999 + },
  1000 + {
  1001 + label: '1.1st Fail',
  1002 + value: '1.1st Fail',
  1003 + },
  1004 + {
  1005 + label: '2.2st ok',
  1006 + value: '2.2st ok',
  1007 + },
  1008 + {
  1009 + label: '2.2st Fail',
  1010 + value: '2.2st Fail',
  1011 + },
  1012 + {
  1013 + label: '3.3st ok',
  1014 + value: '3.3st ok',
  1015 + },
  1016 + {
  1017 + label: '3.3st Fail',
  1018 + value: '3.3st Fail',
  1019 + },
  1020 + ],
  1021 + },
  1022 + default: '请选择',
974 label: 'shipment sample确认意见', 1023 label: 'shipment sample确认意见',
975 labelWidth: 250, 1024 labelWidth: 250,
976 }, 1025 },
@@ -986,16 +1035,37 @@ export const FIELDS_TRACK_STAGE_INFO = [ @@ -986,16 +1035,37 @@ export const FIELDS_TRACK_STAGE_INFO = [
986 }, 1035 },
987 { 1036 {
988 field: 'aitexTestFinishResult', 1037 field: 'aitexTestFinishResult',
989 - component: 'Input',  
990 label: 'Aitex测试结果', 1038 label: 'Aitex测试结果',
991 - // componentProps: {  
992 - // options: [  
993 - // {  
994 - // label: 'ok',  
995 - // value: 'ok',  
996 - // },  
997 - // ],  
998 - // }, 1039 + component: 'Select',
  1040 + componentProps: {
  1041 + options: [
  1042 + {
  1043 + label: '1.1st ok',
  1044 + value: '1.1st ok',
  1045 + },
  1046 + {
  1047 + label: '1.1st Fail',
  1048 + value: '1.1st Fail',
  1049 + },
  1050 + {
  1051 + label: '2.2st ok',
  1052 + value: '2.2st ok',
  1053 + },
  1054 + {
  1055 + label: '2.2st Fail',
  1056 + value: '2.2st Fail',
  1057 + },
  1058 + {
  1059 + label: '3.3st ok',
  1060 + value: '3.3st ok',
  1061 + },
  1062 + {
  1063 + label: '3.3st Fail',
  1064 + value: '3.3st Fail',
  1065 + },
  1066 + ],
  1067 + },
  1068 + default: '请选择',
999 }, 1069 },
1000 { 1070 {
1001 field: 'sgsTestSendTime', 1071 field: 'sgsTestSendTime',
@@ -1004,16 +1074,37 @@ export const FIELDS_TRACK_STAGE_INFO = [ @@ -1004,16 +1074,37 @@ export const FIELDS_TRACK_STAGE_INFO = [
1004 }, 1074 },
1005 { 1075 {
1006 field: 'sgsTestFinishResult', 1076 field: 'sgsTestFinishResult',
1007 - component: 'Input',  
1008 label: 'SGS测试结果', 1077 label: 'SGS测试结果',
1009 - // componentProps: {  
1010 - // options: [  
1011 - // {  
1012 - // label: 'ok',  
1013 - // value: 'ok',  
1014 - // },  
1015 - // ],  
1016 - // }, 1078 + component: 'Select',
  1079 + componentProps: {
  1080 + options: [
  1081 + {
  1082 + label: '1.1st ok',
  1083 + value: '1.1st ok',
  1084 + },
  1085 + {
  1086 + label: '1.1st Fail',
  1087 + value: '1.1st Fail',
  1088 + },
  1089 + {
  1090 + label: '2.2st ok',
  1091 + value: '2.2st ok',
  1092 + },
  1093 + {
  1094 + label: '2.2st Fail',
  1095 + value: '2.2st Fail',
  1096 + },
  1097 + {
  1098 + label: '3.3st ok',
  1099 + value: '3.3st ok',
  1100 + },
  1101 + {
  1102 + label: '3.3st Fail',
  1103 + value: '3.3st Fail',
  1104 + },
  1105 + ],
  1106 + },
  1107 + default: '请选择',
1017 }, 1108 },
1018 { 1109 {
1019 field: 'barcodeStickerArrivalTime', 1110 field: 'barcodeStickerArrivalTime',
src/views/project/order/type.d.ts
@@ -5,4 +5,5 @@ export enum ROLE { @@ -5,4 +5,5 @@ export enum ROLE {
5 BUSINESS = 'business_user', // 业务员 5 BUSINESS = 'business_user', // 业务员
6 TRACKER = 'tracker_user', // 跟单员 6 TRACKER = 'tracker_user', // 跟单员
7 INSPECT = 'inspect_user', // 质检员 7 INSPECT = 'inspect_user', // 质检员
  8 + PRODUCE = 'produce_user', //生产科
8 } 9 }