Commit 339e175d40d332f0eab91a7732909ab17613a16b

Authored by boyang
1 parent 3c821a98

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

package.json
... ... @@ -89,6 +89,7 @@
89 89 "mockjs": "^1.1.0",
90 90 "nprogress": "^0.2.0",
91 91 "path-to-regexp": "^6.2.1",
  92 + "pdfjs-dist": "^4.5.136",
92 93 "pinia": "2.1.4",
93 94 "print-js": "^1.6.0",
94 95 "qrcode": "^1.5.3",
... ...
pnpm-lock.yaml
... ... @@ -19,7 +19,7 @@ importers:
19 19 version: 1.2.9
20 20 '@logicflow/extension':
21 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 23 '@vben/hooks':
24 24 specifier: workspace:*
25 25 version: link:packages/hooks
... ... @@ -74,6 +74,9 @@ importers:
74 74 path-to-regexp:
75 75 specifier: ^6.2.1
76 76 version: 6.2.1
  77 + pdfjs-dist:
  78 + specifier: ^4.5.136
  79 + version: 4.5.136
77 80 pinia:
78 81 specifier: 2.1.4
79 82 version: 2.1.4(typescript@5.1.6)(vue@3.3.4)
... ... @@ -1096,6 +1099,7 @@ packages:
1096 1099 '@humanwhocodes/config-array@0.11.10':
1097 1100 resolution: {integrity: sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==}
1098 1101 engines: {node: '>=10.10.0'}
  1102 + deprecated: Use @eslint/config-array instead
1099 1103  
1100 1104 '@humanwhocodes/module-importer@1.0.1':
1101 1105 resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
... ... @@ -1103,12 +1107,15 @@ packages:
1103 1107  
1104 1108 '@humanwhocodes/object-schema@1.2.1':
1105 1109 resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==}
  1110 + deprecated: Use @eslint/object-schema instead
1106 1111  
1107 1112 '@iconify/iconify@2.1.2':
1108 1113 resolution: {integrity: sha512-QcUzFeEWkE/mW+BVtEGmcWATClcCOIJFiYUD/PiCWuTcdEA297o8D4oN6Ra44WrNOHu1wqNW4J0ioaDIiqaFOQ==}
  1114 + deprecated: no longer maintained, switch to modern iconify-icon web component
1109 1115  
1110 1116 '@iconify/iconify@3.1.1':
1111 1117 resolution: {integrity: sha512-1nemfyD/OJzh9ALepH7YfuuP8BdEB24Skhd8DXWh0hzcOxImbb1ZizSZkpCzAwSZSGcJFmscIBaBQu+yLyWaxQ==}
  1118 + deprecated: no longer maintained, switch to modern iconify-icon web component
1112 1119  
1113 1120 '@iconify/json@2.2.87':
1114 1121 resolution: {integrity: sha512-sIFqYdTa5St7yjCHQ8wxgugNFVSjcboEOErf2ouxMGg8OACj/r+X6RXqIm+Y2OzEtjVnz6pR2WwlSbFPrijhGQ==}
... ... @@ -1242,6 +1249,10 @@ packages:
1242 1249 '@logicflow/extension@1.2.9':
1243 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 1256 '@microsoft/api-extractor-model@7.27.4':
1246 1257 resolution: {integrity: sha512-HjqQFmuGPOS20rtnu+9Jj0QrqZyR59E+piUWXPMZTTn4jaZI+4UmsHSf3Id8vyueAhOBH2cgwBuRTE5R+MfSMw==}
1247 1258  
... ... @@ -1855,6 +1866,7 @@ packages:
1855 1866  
1856 1867 abab@2.0.6:
1857 1868 resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==}
  1869 + deprecated: Use your platform's native atob() and btoa() methods instead
1858 1870  
1859 1871 abbrev@1.1.1:
1860 1872 resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
... ... @@ -1966,6 +1978,9 @@ packages:
1966 1978 resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
1967 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 1984 archiver-utils@2.1.0:
1970 1985 resolution: {integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==}
1971 1986 engines: {node: '>= 6'}
... ... @@ -1974,6 +1989,11 @@ packages:
1974 1989 resolution: {integrity: sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==}
1975 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 1997 arg@4.1.3:
1978 1998 resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
1979 1999  
... ... @@ -2254,6 +2274,10 @@ packages:
2254 2274 caniuse-lite@1.0.30001512:
2255 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 2281 cfb@1.2.2:
2258 2282 resolution: {integrity: sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==}
2259 2283 engines: {node: '>=0.8'}
... ... @@ -2296,6 +2320,10 @@ packages:
2296 2320 resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
2297 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 2327 ci-info@3.8.0:
2300 2328 resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==}
2301 2329 engines: {node: '>=8'}
... ... @@ -2379,6 +2407,10 @@ packages:
2379 2407 color-name@1.1.4:
2380 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 2414 colord@2.9.3:
2383 2415 resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==}
2384 2416  
... ... @@ -2460,6 +2492,9 @@ packages:
2460 2492 resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==}
2461 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 2498 content-disposition@0.5.4:
2464 2499 resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==}
2465 2500 engines: {node: '>= 0.6'}
... ... @@ -2676,6 +2711,10 @@ packages:
2676 2711 resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==}
2677 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 2718 dedent@0.7.0:
2680 2719 resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==}
2681 2720  
... ... @@ -2754,6 +2793,10 @@ packages:
2754 2793 resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==}
2755 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 2800 detect-newline@3.1.0:
2758 2801 resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==}
2759 2802 engines: {node: '>=8'}
... ... @@ -2815,6 +2858,7 @@ packages:
2815 2858 domexception@2.0.1:
2816 2859 resolution: {integrity: sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==}
2817 2860 engines: {node: '>=8'}
  2861 + deprecated: Use your platform's native DOMException instead
2818 2862  
2819 2863 domhandler@2.4.2:
2820 2864 resolution: {integrity: sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==}
... ... @@ -3283,6 +3327,10 @@ packages:
3283 3327 resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==}
3284 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 3334 fs.realpath@1.0.0:
3287 3335 resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
3288 3336  
... ... @@ -3294,6 +3342,7 @@ packages:
3294 3342 fstream@1.0.12:
3295 3343 resolution: {integrity: sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==}
3296 3344 engines: {node: '>=0.6'}
  3345 + deprecated: This package is no longer supported.
3297 3346  
3298 3347 ftp@0.3.10:
3299 3348 resolution: {integrity: sha512-faFVML1aBx2UoDStmLwv2Wptt4vw5x03xxX172nhA5Y5HBshW5JweqQ2W4xL4dezQTG8inJsuYcpPHHU3X5OTQ==}
... ... @@ -3309,6 +3358,11 @@ packages:
3309 3358 functions-have-names@1.2.3:
3310 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 3366 gensync@1.0.0-beta.2:
3313 3367 resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
3314 3368 engines: {node: '>=6.9.0'}
... ... @@ -3378,13 +3432,16 @@ packages:
3378 3432  
3379 3433 glob@7.1.6:
3380 3434 resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==}
  3435 + deprecated: Glob versions prior to v9 are no longer supported
3381 3436  
3382 3437 glob@7.2.3:
3383 3438 resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
  3439 + deprecated: Glob versions prior to v9 are no longer supported
3384 3440  
3385 3441 glob@8.1.0:
3386 3442 resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==}
3387 3443 engines: {node: '>=12'}
  3444 + deprecated: Glob versions prior to v9 are no longer supported
3388 3445  
3389 3446 global-dirs@0.1.1:
3390 3447 resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==}
... ... @@ -3472,6 +3529,9 @@ packages:
3472 3529 resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==}
3473 3530 engines: {node: '>= 0.4'}
3474 3531  
  3532 + has-unicode@2.0.1:
  3533 + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==}
  3534 +
3475 3535 has-value@0.3.1:
3476 3536 resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==}
3477 3537 engines: {node: '>=0.10.0'}
... ... @@ -3632,6 +3692,7 @@ packages:
3632 3692  
3633 3693 inflight@1.0.6:
3634 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 3697 inherits@2.0.3:
3637 3698 resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==}
... ... @@ -3658,10 +3719,12 @@ packages:
3658 3719 is-accessor-descriptor@0.1.6:
3659 3720 resolution: {integrity: sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==}
3660 3721 engines: {node: '>=0.10.0'}
  3722 + deprecated: Please upgrade to v0.1.7
3661 3723  
3662 3724 is-accessor-descriptor@1.0.0:
3663 3725 resolution: {integrity: sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==}
3664 3726 engines: {node: '>=0.10.0'}
  3727 + deprecated: Please upgrade to v1.0.1
3665 3728  
3666 3729 is-array-buffer@3.0.2:
3667 3730 resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==}
... ... @@ -3697,10 +3760,12 @@ packages:
3697 3760 is-data-descriptor@0.1.4:
3698 3761 resolution: {integrity: sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==}
3699 3762 engines: {node: '>=0.10.0'}
  3763 + deprecated: Please upgrade to v0.1.5
3700 3764  
3701 3765 is-data-descriptor@1.0.0:
3702 3766 resolution: {integrity: sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==}
3703 3767 engines: {node: '>=0.10.0'}
  3768 + deprecated: Please upgrade to v1.0.1
3704 3769  
3705 3770 is-date-object@1.0.5:
3706 3771 resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
... ... @@ -4183,6 +4248,7 @@ packages:
4183 4248 koa-router@12.0.0:
4184 4249 resolution: {integrity: sha512-zGrdiXygGYW8WvrzeGsHZvKnHs4DzyGoqJ9a8iHlRkiwuEAOAPyI27//OlhoWdgFAEIM3qbUgr0KCuRaP/TCag==}
4185 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 4253 koa-send@5.0.1:
4188 4254 resolution: {integrity: sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==}
... ... @@ -4485,6 +4551,10 @@ packages:
4485 4551 resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
4486 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 4558 min-indent@1.0.1:
4489 4559 resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
4490 4560 engines: {node: '>=4'}
... ... @@ -4507,10 +4577,22 @@ packages:
4507 4577 minimist@1.2.8:
4508 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 4588 minipass@6.0.2:
4511 4589 resolution: {integrity: sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==}
4512 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 4596 mixin-deep@1.3.2:
4515 4597 resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==}
4516 4598 engines: {node: '>=0.10.0'}
... ... @@ -4575,6 +4657,9 @@ packages:
4575 4657 mz@2.7.0:
4576 4658 resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
4577 4659  
  4660 + nan@2.20.0:
  4661 + resolution: {integrity: sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==}
  4662 +
4578 4663 nanoid@3.3.6:
4579 4664 resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==}
4580 4665 engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
... ... @@ -4644,6 +4729,11 @@ packages:
4644 4729 resolution: {integrity: sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==}
4645 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 4737 nopt@6.0.0:
4648 4738 resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==}
4649 4739 engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
... ... @@ -4668,6 +4758,10 @@ packages:
4668 4758 resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==}
4669 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 4765 nprogress@0.2.0:
4672 4766 resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==}
4673 4767  
... ... @@ -4853,12 +4947,20 @@ packages:
4853 4947 resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
4854 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 4954 pathe@0.2.0:
4857 4955 resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==}
4858 4956  
4859 4957 pathe@1.1.1:
4860 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 4964 perfect-debounce@1.0.0:
4863 4965 resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==}
4864 4966  
... ... @@ -5100,6 +5202,10 @@ packages:
5100 5202 q@1.5.1:
5101 5203 resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==}
5102 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 5210 qrcode@1.5.3:
5105 5211 resolution: {integrity: sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==}
... ... @@ -5276,10 +5382,12 @@ packages:
5276 5382  
5277 5383 rimraf@2.7.1:
5278 5384 resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==}
  5385 + deprecated: Rimraf versions prior to v4 are no longer supported
5279 5386 hasBin: true
5280 5387  
5281 5388 rimraf@3.0.2:
5282 5389 resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
  5390 + deprecated: Rimraf versions prior to v4 are no longer supported
5283 5391 hasBin: true
5284 5392  
5285 5393 rimraf@5.0.1:
... ... @@ -5438,6 +5546,12 @@ packages:
5438 5546 resolution: {integrity: sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==}
5439 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 5555 simple-update-notifier@1.1.0:
5442 5556 resolution: {integrity: sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==}
5443 5557 engines: {node: '>=8.10.0'}
... ... @@ -5818,6 +5932,10 @@ packages:
5818 5932 resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==}
5819 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 5939 terminal-link@2.1.1:
5822 5940 resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==}
5823 5941 engines: {node: '>=8'}
... ... @@ -6277,6 +6395,7 @@ packages:
6277 6395 vm2@3.9.19:
6278 6396 resolution: {integrity: sha512-J637XF0DHDMV57R6JyVsTak7nIL8gy5KH4r1HiwWLf/4GBbb5MKL5y7LpmF4A8E2nR6XmzpmMFQ7V7ppPTmUQg==}
6279 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 6399 hasBin: true
6281 6400  
6282 6401 vue-component-type-helpers@1.6.5:
... ... @@ -6422,6 +6541,9 @@ packages:
6422 6541 engines: {node: '>= 8'}
6423 6542 hasBin: true
6424 6543  
  6544 + wide-align@1.1.5:
  6545 + resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==}
  6546 +
6425 6547 wmf@1.0.2:
6426 6548 resolution: {integrity: sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==}
6427 6549 engines: {node: '>=0.8'}
... ... @@ -7283,7 +7405,7 @@ snapshots:
7283 7405 jest-util: 27.5.1
7284 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 7409 dependencies:
7288 7410 '@jest/console': 27.5.1
7289 7411 '@jest/reporters': 27.5.1
... ... @@ -7297,13 +7419,13 @@ snapshots:
7297 7419 exit: 0.1.2
7298 7420 graceful-fs: 4.2.11
7299 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 7423 jest-haste-map: 27.5.1
7302 7424 jest-message-util: 27.5.1
7303 7425 jest-regex-util: 27.5.1
7304 7426 jest-resolve: 27.5.1
7305 7427 jest-resolve-dependencies: 27.5.1
7306   - jest-runner: 27.5.1
  7428 + jest-runner: 27.5.1(canvas@2.11.2)
7307 7429 jest-runtime: 27.5.1
7308 7430 jest-snapshot: 27.5.1
7309 7431 jest-util: 27.5.1
... ... @@ -7459,11 +7581,11 @@ snapshots:
7459 7581 mousetrap: 1.6.5
7460 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 7585 dependencies:
7464 7586 '@logicflow/core': 1.2.9
7465 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 7589 lodash-es: 4.17.21
7468 7590 preact: 10.15.1
7469 7591 transitivePeerDependencies:
... ... @@ -7474,6 +7596,22 @@ snapshots:
7474 7596 - ts-node
7475 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 7615 '@microsoft/api-extractor-model@7.27.4(@types/node@20.4.0)':
7478 7616 dependencies:
7479 7617 '@microsoft/tsdoc': 0.14.2
... ... @@ -8452,6 +8590,9 @@ snapshots:
8452 8590 normalize-path: 3.0.0
8453 8591 picomatch: 2.3.1
8454 8592  
  8593 + aproba@2.0.0:
  8594 + optional: true
  8595 +
8455 8596 archiver-utils@2.1.0:
8456 8597 dependencies:
8457 8598 glob: 7.2.3
... ... @@ -8475,6 +8616,12 @@ snapshots:
8475 8616 tar-stream: 2.2.0
8476 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 8625 arg@4.1.3: {}
8479 8626  
8480 8627 argparse@1.0.10:
... ... @@ -8792,6 +8939,16 @@ snapshots:
8792 8939  
8793 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 8952 cfb@1.2.2:
8796 8953 dependencies:
8797 8954 adler-32: 1.3.1
... ... @@ -8845,6 +9002,9 @@ snapshots:
8845 9002 optionalDependencies:
8846 9003 fsevents: 2.3.2
8847 9004  
  9005 + chownr@2.0.0:
  9006 + optional: true
  9007 +
8848 9008 ci-info@3.8.0: {}
8849 9009  
8850 9010 cjs-module-lexer@1.2.3: {}
... ... @@ -8932,6 +9092,9 @@ snapshots:
8932 9092  
8933 9093 color-name@1.1.4: {}
8934 9094  
  9095 + color-support@1.1.3:
  9096 + optional: true
  9097 +
8935 9098 colord@2.9.3: {}
8936 9099  
8937 9100 colorette@2.0.20: {}
... ... @@ -8998,6 +9161,9 @@ snapshots:
8998 9161  
8999 9162 consola@3.2.3: {}
9000 9163  
  9164 + console-control-strings@1.1.0:
  9165 + optional: true
  9166 +
9001 9167 content-disposition@0.5.4:
9002 9168 dependencies:
9003 9169 safe-buffer: 5.2.1
... ... @@ -9187,6 +9353,11 @@ snapshots:
9187 9353  
9188 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 9361 dedent@0.7.0: {}
9191 9362  
9192 9363 deep-equal@1.0.1: {}
... ... @@ -9252,6 +9423,9 @@ snapshots:
9252 9423  
9253 9424 detect-indent@7.0.1: {}
9254 9425  
  9426 + detect-libc@2.0.3:
  9427 + optional: true
  9428 +
9255 9429 detect-newline@3.1.0: {}
9256 9430  
9257 9431 detect-newline@4.0.0: {}
... ... @@ -9945,6 +10119,11 @@ snapshots:
9945 10119 jsonfile: 4.0.0
9946 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 10127 fs.realpath@1.0.0: {}
9949 10128  
9950 10129 fsevents@2.3.2:
... ... @@ -9973,6 +10152,19 @@ snapshots:
9973 10152  
9974 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 10168 gensync@1.0.0-beta.2: {}
9977 10169  
9978 10170 get-caller-file@2.0.5: {}
... ... @@ -10147,6 +10339,9 @@ snapshots:
10147 10339 dependencies:
10148 10340 has-symbols: 1.0.3
10149 10341  
  10342 + has-unicode@2.0.1:
  10343 + optional: true
  10344 +
10150 10345 has-value@0.3.1:
10151 10346 dependencies:
10152 10347 get-value: 2.0.6
... ... @@ -10595,16 +10790,16 @@ snapshots:
10595 10790 transitivePeerDependencies:
10596 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 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 10796 '@jest/test-result': 27.5.1
10602 10797 '@jest/types': 27.5.1
10603 10798 chalk: 4.1.2
10604 10799 exit: 0.1.2
10605 10800 graceful-fs: 4.2.11
10606 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 10803 jest-util: 27.5.1
10609 10804 jest-validate: 27.5.1
10610 10805 prompts: 2.4.2
... ... @@ -10616,7 +10811,7 @@ snapshots:
10616 10811 - ts-node
10617 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 10815 dependencies:
10621 10816 '@babel/core': 7.22.6
10622 10817 '@jest/test-sequencer': 27.5.1
... ... @@ -10628,13 +10823,13 @@ snapshots:
10628 10823 glob: 7.2.3
10629 10824 graceful-fs: 4.2.11
10630 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 10827 jest-environment-node: 27.5.1
10633 10828 jest-get-type: 27.5.1
10634 10829 jest-jasmine2: 27.5.1
10635 10830 jest-regex-util: 27.5.1
10636 10831 jest-resolve: 27.5.1
10637   - jest-runner: 27.5.1
  10832 + jest-runner: 27.5.1(canvas@2.11.2)
10638 10833 jest-util: 27.5.1
10639 10834 jest-validate: 27.5.1
10640 10835 micromatch: 4.0.5
... ... @@ -10669,7 +10864,7 @@ snapshots:
10669 10864 jest-util: 27.5.1
10670 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 10868 dependencies:
10674 10869 '@jest/environment': 27.5.1
10675 10870 '@jest/fake-timers': 27.5.1
... ... @@ -10677,7 +10872,7 @@ snapshots:
10677 10872 '@types/node': 20.4.0
10678 10873 jest-mock: 27.5.1
10679 10874 jest-util: 27.5.1
10680   - jsdom: 16.7.0
  10875 + jsdom: 16.7.0(canvas@2.11.2)
10681 10876 transitivePeerDependencies:
10682 10877 - bufferutil
10683 10878 - canvas
... ... @@ -10790,7 +10985,7 @@ snapshots:
10790 10985 resolve.exports: 1.1.1
10791 10986 slash: 3.0.0
10792 10987  
10793   - jest-runner@27.5.1:
  10988 + jest-runner@27.5.1(canvas@2.11.2):
10794 10989 dependencies:
10795 10990 '@jest/console': 27.5.1
10796 10991 '@jest/environment': 27.5.1
... ... @@ -10802,7 +10997,7 @@ snapshots:
10802 10997 emittery: 0.8.1
10803 10998 graceful-fs: 4.2.11
10804 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 11001 jest-environment-node: 27.5.1
10807 11002 jest-haste-map: 27.5.1
10808 11003 jest-leak-detector: 27.5.1
... ... @@ -10912,11 +11107,11 @@ snapshots:
10912 11107 merge-stream: 2.0.0
10913 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 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 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 11115 transitivePeerDependencies:
10921 11116 - bufferutil
10922 11117 - canvas
... ... @@ -10959,7 +11154,7 @@ snapshots:
10959 11154 dependencies:
10960 11155 argparse: 2.0.1
10961 11156  
10962   - jsdom@16.7.0:
  11157 + jsdom@16.7.0(canvas@2.11.2):
10963 11158 dependencies:
10964 11159 abab: 2.0.6
10965 11160 acorn: 8.10.0
... ... @@ -10988,6 +11183,8 @@ snapshots:
10988 11183 whatwg-url: 8.7.0
10989 11184 ws: 7.5.9
10990 11185 xml-name-validator: 3.0.0
  11186 + optionalDependencies:
  11187 + canvas: 2.11.2
10991 11188 transitivePeerDependencies:
10992 11189 - bufferutil
10993 11190 - supports-color
... ... @@ -11441,6 +11638,9 @@ snapshots:
11441 11638  
11442 11639 mimic-fn@4.0.0: {}
11443 11640  
  11641 + mimic-response@2.1.0:
  11642 + optional: true
  11643 +
11444 11644 min-indent@1.0.1: {}
11445 11645  
11446 11646 minimatch@3.1.2:
... ... @@ -11463,8 +11663,22 @@ snapshots:
11463 11663  
11464 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 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 11682 mixin-deep@1.3.2:
11469 11683 dependencies:
11470 11684 for-in: 1.0.2
... ... @@ -11525,6 +11739,9 @@ snapshots:
11525 11739 object-assign: 4.1.1
11526 11740 thenify-all: 1.6.0
11527 11741  
  11742 + nan@2.20.0:
  11743 + optional: true
  11744 +
11528 11745 nanoid@3.3.6: {}
11529 11746  
11530 11747 nanomatch@1.2.13:
... ... @@ -11607,6 +11824,11 @@ snapshots:
11607 11824 dependencies:
11608 11825 abbrev: 1.1.1
11609 11826  
  11827 + nopt@5.0.0:
  11828 + dependencies:
  11829 + abbrev: 1.1.1
  11830 + optional: true
  11831 +
11610 11832 nopt@6.0.0:
11611 11833 dependencies:
11612 11834 abbrev: 1.1.1
... ... @@ -11635,6 +11857,14 @@ snapshots:
11635 11857 dependencies:
11636 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 11868 nprogress@0.2.0: {}
11639 11869  
11640 11870 nssocket@0.6.0:
... ... @@ -11838,10 +12068,21 @@ snapshots:
11838 12068  
11839 12069 path-type@4.0.0: {}
11840 12070  
  12071 + path2d@0.2.1:
  12072 + optional: true
  12073 +
11841 12074 pathe@0.2.0: {}
11842 12075  
11843 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 12086 perfect-debounce@1.0.0: {}
11846 12087  
11847 12088 picocolors@1.0.0: {}
... ... @@ -12445,6 +12686,16 @@ snapshots:
12445 12686  
12446 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 12699 simple-update-notifier@1.1.0:
12449 12700 dependencies:
12450 12701 semver: 7.0.0
... ... @@ -12900,6 +13151,16 @@ snapshots:
12900 13151 inherits: 2.0.4
12901 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 13164 terminal-link@2.1.1:
12904 13165 dependencies:
12905 13166 ansi-escapes: 4.3.2
... ... @@ -13590,6 +13851,11 @@ snapshots:
13590 13851 dependencies:
13591 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 13859 wmf@1.0.2: {}
13594 13860  
13595 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 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 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 4 import 'ant-design-vue/dist/antd.less';
5 5 // Register icon sprite
6 6 import 'virtual:svg-icons-register';
  7 +import 'ant-design-vue/dist/antd.css';
7 8  
  9 +import Antd from 'ant-design-vue';
8 10 import { createApp } from 'vue';
9   -
10 11 import { registerGlobComp } from '@/components/registerGlobComp';
11 12 import { setupGlobDirectives } from '@/directives';
12 13 import { setupI18n } from '@/locales/setupI18n';
... ... @@ -59,6 +60,7 @@ async function bootstrap() {
59 60 // await router.isReady();
60 61  
61 62 app.mount('#app');
  63 + app.use(Antd);
62 64 }
63 65  
64 66 bootstrap();
... ...
src/views/project/order/ExportModal.vue
... ... @@ -162,6 +162,7 @@
162 162 //导出选中的订单
163 163 fieldVO.orderIds = props.ids;
164 164 exportLoading.value = true;
  165 + console.log(fieldVO, 5656);
165 166 await orderExport({ ...searchData.value, fieldVO });
166 167 exportLoading.value = false;
167 168  
... ...
src/views/project/order/FormDetail/BaseFormPanel.vue
... ... @@ -14,6 +14,8 @@
14 14 import { FIELDS_BASE_INFO } from '../tableData';
15 15 import { getBaseDisable } from '/@/utils/project';
16 16 import { useOrderStoreWithOut } from '/@/store/modules/order';
  17 + import { ROLE } from '../type.d';
  18 + import { useUserStoreWithOut } from '/@/store/modules/user';
17 19  
18 20 import { useOrderInfo } from '/@/hooks/component/order';
19 21 import { get } from 'lodash-es';
... ... @@ -55,7 +57,10 @@
55 57 let fields = ref({});
56 58 const picUrl = ref('');
57 59 const smallPicUrl = ref('');
58   -
  60 + const userStore = useUserStoreWithOut();
  61 + const role = computed(() => {
  62 + return userStore.getUserInfo?.roleSmallVO?.code;
  63 + });
59 64 const orderStore = useOrderStoreWithOut();
60 65 const {
61 66 customerCode,
... ... @@ -86,6 +91,68 @@
86 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 156 const res = FIELDS_BASE_INFO.map((item) => {
90 157 if (item.field === 'picUrl') {
91 158 return {
... ... @@ -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 200 return {
116 201 ...item,
117 202 field: `${item.field}`,
118 203 componentProps: {
119 204 ...(item.component === 'Select' && { showSearch: true }),
120 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 213 onChange: async (val) => {
123 214 if (item.field === 'customerCode' && !isCopy.value) {
124 215 if (!props.id) {
... ... @@ -148,6 +239,7 @@
148 239 return res;
149 240 });
150 241  
  242 + //biaoji
151 243 var [registerForm, { setFieldsValue, getFieldsValue, resetFields, validate, clearValidate }] =
152 244 useForm({
153 245 labelWidth: 120,
... ... @@ -169,6 +261,7 @@
169 261 picUrl,
170 262 smallPicUrl,
171 263 isInnerNoRepeat,
  264 + role,
172 265 };
173 266 },
174 267 });
... ...
src/views/project/order/FormDetail/TrackFormPanel.vue
... ... @@ -24,36 +24,28 @@
24 24 emits: ['success'],
25 25 setup(props, { emit }) {
26 26 let fields = ref({});
  27 + //不被禁用的字段
  28 + const nonDisabledFields = [
  29 + 'ppConfirmResult',
  30 + 'sgsTestFinishResult',
  31 + 'aitexTestFinishResult',
  32 + 'shippmentSampleConfirmResult',
  33 + ];
27 34  
28 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 36 return FIELDS_TRACK_STAGE_INFO.map((item) => ({
45 37 ...item,
46 38 componentProps: {
47 39 ...item.componentProps,
48 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 50 colProps: {
59 51 span: 24,
... ...
src/views/project/order/FormDetail/index.vue
... ... @@ -20,7 +20,7 @@
20 20 key="1"
21 21 tab="基本信息"
22 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 25 <span className="text-red-600">{{ checkingMsg }}</span>
26 26 <BaseFormPanel
... ... @@ -156,6 +156,8 @@
156 156 const configList = ref([]);
157 157 const businessUsers = ref([]);
158 158 const checkingMsg = ref('');
  159 + //ppconfirm
  160 + const ppUpdate = ref('');
159 161  
160 162 //修改之前的包装费用
161 163 const originPackagePrice = ref(-1.0);
... ... @@ -187,7 +189,8 @@
187 189 const [register, { closeDrawer }] = useDrawerInner((data) => {
188 190 // baseFormPanelRef.value.setFieldValue('isEditPacketPrice', false);
189 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 195 checkingMsg.value = '';
193 196 if (!data.id) {
... ... @@ -211,7 +214,6 @@
211 214 inspectFormData.value = data.inspectionStageInfo;
212 215 reportFormData.value = data?.orderUpdateInfoVO?.reportFields || data.reportInfo;
213 216 trackFormData.value = data.trackStageInfo;
214   -
215 217 // 方式1
216 218 picUrl.value = data.picUrl;
217 219 data.orderHodTime = data.orderHodTime ? dateUtil(data.orderHodTime) : null;
... ... @@ -319,6 +321,7 @@
319 321 trackFormPanelRef?.value?.setFieldsValue({
320 322 ...toRaw(data.trackStageInfo),
321 323 });
  324 + ppUpdate.value = data.trackStageInfo.ppConfirmResult;
322 325 }
323 326  
324 327 if (inspectionFormPanelRef.value) {
... ... @@ -334,7 +337,6 @@
334 337 baseFormPanelRef.value.resetFields();
335 338 }
336 339 });
337   -
338 340 const handleSubmit = async () => {
339 341 try {
340 342 if (id.value) {
... ... @@ -399,7 +401,11 @@
399 401 } else if (activeKey.value === '5') {
400 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 409 await orderUpdate(forms);
404 410 closeDrawer();
405 411 emit('success', {});
... ... @@ -425,6 +431,12 @@
425 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 440 return {
429 441 id,
430 442 isCopy,
... ... @@ -446,6 +458,8 @@
446 458 businessUsers,
447 459 checkingMsg,
448 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 1 <template>
2   - <BasicModal
  2 + <!-- <BasicModal
3 3 v-bind="$attrs"
4 4 destroyOnClose
5 5 @register="register"
... ... @@ -9,6 +9,16 @@
9 9 wrapClassName="h-[340px]"
10 10 @visible-change="handleShow"
11 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 23 <div class="container">
14 24 <div v-if="isShow1 == true" style="margin-top: 50px; text-align: center">
... ... @@ -44,9 +54,17 @@
44 54 import { BasicModal, useModalInner } from '/@/components/Modal';
45 55 import { RadioGroup } from 'ant-design-vue';
46 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 59 export default defineComponent({
  60 + props: {
  61 + role: {
  62 + type: String,
  63 + },
  64 + customerCodes: {
  65 + type: Array<string | number>,
  66 + },
  67 + },
50 68 components: { BasicModal, RadioGroup, EyeOutlined, FilePptOutlined },
51 69 setup(props) {
52 70 const loading = ref(true);
... ... @@ -56,7 +74,7 @@
56 74 const isShow1 = ref(true); //选择公司页面
57 75 const isShow2 = ref(false); //生成PDF页面
58 76 const pdf = ref(['/pdf.png']);
59   - const [register, { setModalProps, closeModal }] = useModalInner();
  77 + const [register, { setModalProps, closeModal }] = useModalInner(async (data) => {});
60 78 const options = computed(() => {
61 79 // 运营总监-基本信息,跟单,质检
62 80 return [
... ... @@ -64,6 +82,21 @@
64 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 100 function handleCancel() {
68 101 loading.value = true;
69 102 choose.value = '';
... ... @@ -81,23 +114,44 @@
81 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 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 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 155 async function handleExport() {
102 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 64 },
65 65 {
66 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 101 </template>
102 102  
103 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 123 <a-button
105 124 type="primary"
106 125 @click="handleProductModal"
... ... @@ -131,13 +150,19 @@
131 150 :onGoCheckDetail="handleGoCheckDetail"
132 151 @success="handleFormSuccess"
133 152 />
134   - <ProductText @register="productModalRegister" />
  153 + <ProductText
  154 + @register="productModalRegister"
  155 + :role="role"
  156 + :customerCodes="selectedCustomCodes"
  157 + />
135 158 <ProfitAnalysis @register="profitModalRegister" />
136 159 <RateModal @register="rateModalRegister" />
137 160 <ExportModal @register="exportModalRegister" :role="role" :ids="checkedKeys" />
138 161 <CheckDetail @register="checkModalRegister" :onGoFormDetail="handleGoFormDetail" />
139 162 <HistoryDetail @register="historyDetailRegister" />
  163 + <TrackHistory @register="trackHistoryRegister" />
140 164 <FieldDetail @register="fieldDetailRegister" />
  165 + <PassCalculate @register="passModalRegister" />
141 166 </div>
142 167 </template>
143 168 <script lang="ts">
... ... @@ -152,12 +177,14 @@
152 177 import ProductText from './ProductText.vue';
153 178 import RateModal from './RateModal.vue';
154 179 import ExportModal from './ExportModal.vue';
  180 + import PassCalculate from './PassCalculate.vue';
155 181 import { useModal } from '/@/components/Modal';
156 182  
157 183 import { getFormConfig, getOrderColumns, SELECT_FIELD_COLUMNS } from './tableData';
158 184 import FormDetail from './FormDetail/index.vue';
159 185 import CheckDetail from './CheckDetail.vue';
160 186 import HistoryDetail from './HistoryDetail.vue';
  187 + import TrackHistory from './TrackHistory.vue';
161 188 import FieldDetail from './FieldDetail.vue';
162 189 import { createImgPreview } from '/@/components/Preview/index';
163 190 import { getOrderList, orderDelete } from '/@/api/project/order';
... ... @@ -178,23 +205,28 @@
178 205 FormDetail,
179 206 ProfitAnalysis,
180 207 ProductText,
  208 + PassCalculate,
181 209 FormOutlined,
182 210 CheckDetail,
183 211 HistoryDetail,
  212 + TrackHistory,
184 213 FieldDetail,
185 214 RateModal,
186 215 ExportModal,
187 216 },
188 217 setup() {
189 218 const checkedKeys = ref<Array<string | number>>([]);
  219 + const selectedCustomCodes = ref<Array<string>>([]);
190 220 const [profitModalRegister, { openModal: openProfitModal }] = useModal();
191 221 const [rateModalRegister, { openModal: openRateModal }] = useModal();
192 222 const [exportModalRegister, { openModal: openExportModal }] = useModal();
193 223 const [productModalRegister, { openModal: openProductModal }] = useModal();
  224 + const [passModalRegister, { openModal: openPassModal }] = useModal();
194 225  
195 226 const tooltipVisible = ref(false);
196 227 const [formDetailRegister, { openDrawer: openFormDetailDrawer }] = useDrawer();
197 228 const [historyDetailRegister, { openDrawer: openHistoryDetailDrawer }] = useDrawer();
  229 + const [trackHistoryRegister, { openDrawer: openTrackHistoryDrawer }] = useDrawer();
198 230 const [fieldDetailRegister, { openDrawer: openFieldDetailDrawer }] = useDrawer();
199 231  
200 232 const user = userStore.getUserInfo;
... ... @@ -247,26 +279,39 @@
247 279 // slots: { customRender: 'action' },
248 280 },
249 281 });
250   -
251 282 function getFormValues() {
252 283 console.log(getForm().getFieldsValue());
253 284 }
254   -
255 285 function onSelect(record, selected) {
256 286 if (selected) {
  287 + if (!selectedCustomCodes.value.includes(record.customerCode)) {
  288 + // 如果不包含,则添加到 selectedCustomCodes
  289 + selectedCustomCodes.value = [...selectedCustomCodes.value, record.customerCode];
  290 + }
257 291 checkedKeys.value = [...checkedKeys.value, record.id];
258 292 } else {
259 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 299 function onSelectAll(selected, selectedRows, changeRows) {
263 300 const changeIds = changeRows.map((item) => item.id);
  301 + const changeCustomerCodes = changeRows.map((item) => item.customerCode);
264 302 if (selected) {
265 303 checkedKeys.value = [...checkedKeys.value, ...changeIds];
  304 + // 创建一个集合来去除重复的代码
  305 + const allCodes = new Set([...selectedCustomCodes.value, ...changeCustomerCodes]);
  306 + // 将集合转换回数组
  307 + selectedCustomCodes.value = Array.from(allCodes);
266 308 } else {
267 309 checkedKeys.value = checkedKeys.value.filter((id) => {
268 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 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 351 function handleProfitModal() {
... ... @@ -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 382 function handleProductModal() {
315 383 const form = getForm();
316 384 const values = form.getFieldsValue();
... ... @@ -353,7 +421,6 @@
353 421 async function handleExportModal() {
354 422 const form = getForm();
355 423 const values = form.getFieldsValue();
356   -
357 424 openExportModal(true, {
358 425 data: values,
359 426 });
... ... @@ -377,10 +444,13 @@
377 444 SELECT_FIELD_COLUMNS,
378 445 fieldDetailRegister,
379 446 profitModalRegister,
  447 + handleChange,
380 448 rateModalRegister,
381 449 exportModalRegister,
382 450 productModalRegister,
  451 + passModalRegister,
383 452 historyDetailRegister,
  453 + trackHistoryRegister,
384 454 formDetailRegister,
385 455 handleProfitModal,
386 456 registerTable,
... ... @@ -396,8 +466,11 @@
396 466 checkModalRegister,
397 467 handleGoCheckDetail,
398 468 handleGoFormDetail,
399   - handleInvoice,
400 469 handleHistory,
  470 + focus,
  471 + value1,
  472 + handlePassModal,
  473 + handleTrackHistory,
401 474 handleAdd,
402 475 createImgPreview,
403 476 handleExportModal,
... ... @@ -407,7 +480,9 @@
407 480 handleRateModal,
408 481 openExportModal,
409 482 openProductModal,
  483 + openPassModal,
410 484 handleDelete,
  485 + selectedCustomCodes,
411 486 role,
412 487 ROLE,
413 488 };
... ... @@ -415,7 +490,7 @@
415 490 });
416 491 </script>
417 492  
418   -<style>
  493 +<style lang="less">
419 494 .ant-table-thead th,
420 495 .ant-table-tbody td {
421 496 padding: 0;
... ... @@ -435,5 +510,53 @@
435 510 padding-top: 0;
436 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 561 </style>
439 562 ./constant
... ...
src/views/project/order/tableData.tsx
... ... @@ -374,7 +374,13 @@ export const ORDER_LIST_TRACK_FIELDS = [
374 374 dataIndex: 'ppConfirmResult',
375 375 customRender: (column) => {
376 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 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 704 return [];
677 705 }
678 706 /**
... ... @@ -962,15 +990,36 @@ export const FIELDS_TRACK_STAGE_INFO = [
962 990 },
963 991 {
964 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 1023 label: 'shipment sample确认意见',
975 1024 labelWidth: 250,
976 1025 },
... ... @@ -986,16 +1035,37 @@ export const FIELDS_TRACK_STAGE_INFO = [
986 1035 },
987 1036 {
988 1037 field: 'aitexTestFinishResult',
989   - component: 'Input',
990 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 1071 field: 'sgsTestSendTime',
... ... @@ -1004,16 +1074,37 @@ export const FIELDS_TRACK_STAGE_INFO = [
1004 1074 },
1005 1075 {
1006 1076 field: 'sgsTestFinishResult',
1007   - component: 'Input',
1008 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 1110 field: 'barcodeStickerArrivalTime',
... ...
src/views/project/order/type.d.ts
... ... @@ -5,4 +5,5 @@ export enum ROLE {
5 5 BUSINESS = 'business_user', // 业务员
6 6 TRACKER = 'tracker_user', // 跟单员
7 7 INSPECT = 'inspect_user', // 质检员
  8 + PRODUCE = 'produce_user', //生产科
8 9 }
... ...