修复了分页的问题

This commit is contained in:
yuanteng 2025-05-07 07:37:26 +08:00
parent fdaeec1cdf
commit 58d0122135
25 changed files with 545 additions and 304 deletions

490
package-lock.json generated
View File

@ -1428,6 +1428,23 @@
"resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz", "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz",
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
}, },
"asn1.js": {
"version": "4.10.1",
"resolved": "https://registry.npmmirror.com/asn1.js/-/asn1.js-4.10.1.tgz",
"integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==",
"requires": {
"bn.js": "^4.0.0",
"inherits": "^2.0.1",
"minimalistic-assert": "^1.0.0"
},
"dependencies": {
"bn.js": {
"version": "4.12.2",
"resolved": "https://registry.npmmirror.com/bn.js/-/bn.js-4.12.2.tgz",
"integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw=="
}
}
},
"async": { "async": {
"version": "3.2.6", "version": "3.2.6",
"resolved": "https://registry.npmmirror.com/async/-/async-3.2.6.tgz", "resolved": "https://registry.npmmirror.com/async/-/async-3.2.6.tgz",
@ -1502,6 +1519,11 @@
"resolved": "https://registry.npmmirror.com/blueimp-canvas-to-blob/-/blueimp-canvas-to-blob-3.29.0.tgz", "resolved": "https://registry.npmmirror.com/blueimp-canvas-to-blob/-/blueimp-canvas-to-blob-3.29.0.tgz",
"integrity": "sha512-0pcSSGxC0QxT+yVkivxIqW0Y4VlO2XSDPofBAqoJ1qJxgH9eiUDLv50Rixij2cDuEfx4M6DpD9UGZpRhT5Q8qg==" "integrity": "sha512-0pcSSGxC0QxT+yVkivxIqW0Y4VlO2XSDPofBAqoJ1qJxgH9eiUDLv50Rixij2cDuEfx4M6DpD9UGZpRhT5Q8qg=="
}, },
"bn.js": {
"version": "5.2.2",
"resolved": "https://registry.npmmirror.com/bn.js/-/bn.js-5.2.2.tgz",
"integrity": "sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw=="
},
"brace-expansion": { "brace-expansion": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz", "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz",
@ -1518,6 +1540,107 @@
"fill-range": "^7.1.1" "fill-range": "^7.1.1"
} }
}, },
"brorand": {
"version": "1.1.0",
"resolved": "https://registry.npmmirror.com/brorand/-/brorand-1.1.0.tgz",
"integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w=="
},
"browserify-aes": {
"version": "1.2.0",
"resolved": "https://registry.npmmirror.com/browserify-aes/-/browserify-aes-1.2.0.tgz",
"integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
"requires": {
"buffer-xor": "^1.0.3",
"cipher-base": "^1.0.0",
"create-hash": "^1.1.0",
"evp_bytestokey": "^1.0.3",
"inherits": "^2.0.1",
"safe-buffer": "^5.0.1"
}
},
"browserify-cipher": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
"integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
"requires": {
"browserify-aes": "^1.0.4",
"browserify-des": "^1.0.0",
"evp_bytestokey": "^1.0.0"
}
},
"browserify-des": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/browserify-des/-/browserify-des-1.0.2.tgz",
"integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
"requires": {
"cipher-base": "^1.0.1",
"des.js": "^1.0.0",
"inherits": "^2.0.1",
"safe-buffer": "^5.1.2"
}
},
"browserify-rsa": {
"version": "4.1.1",
"resolved": "https://registry.npmmirror.com/browserify-rsa/-/browserify-rsa-4.1.1.tgz",
"integrity": "sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==",
"requires": {
"bn.js": "^5.2.1",
"randombytes": "^2.1.0",
"safe-buffer": "^5.2.1"
},
"dependencies": {
"safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
}
}
},
"browserify-sign": {
"version": "4.2.3",
"resolved": "https://registry.npmmirror.com/browserify-sign/-/browserify-sign-4.2.3.tgz",
"integrity": "sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==",
"requires": {
"bn.js": "^5.2.1",
"browserify-rsa": "^4.1.0",
"create-hash": "^1.2.0",
"create-hmac": "^1.1.7",
"elliptic": "^6.5.5",
"hash-base": "~3.0",
"inherits": "^2.0.4",
"parse-asn1": "^5.1.7",
"readable-stream": "^2.3.8",
"safe-buffer": "^5.2.1"
},
"dependencies": {
"readable-stream": {
"version": "2.3.8",
"resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz",
"integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
"requires": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
"isarray": "~1.0.0",
"process-nextick-args": "~2.0.0",
"safe-buffer": "~5.1.1",
"string_decoder": "~1.1.1",
"util-deprecate": "~1.0.1"
},
"dependencies": {
"safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
}
}
},
"safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
}
}
},
"browserslist": { "browserslist": {
"version": "4.24.2", "version": "4.24.2",
"resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.24.2.tgz", "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.24.2.tgz",
@ -1548,6 +1671,11 @@
"resolved": "https://registry.npmmirror.com/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", "resolved": "https://registry.npmmirror.com/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz",
"integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==" "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A=="
}, },
"buffer-xor": {
"version": "1.0.3",
"resolved": "https://registry.npmmirror.com/buffer-xor/-/buffer-xor-1.0.3.tgz",
"integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ=="
},
"buffers": { "buffers": {
"version": "0.1.1", "version": "0.1.1",
"resolved": "https://registry.npmmirror.com/buffers/-/buffers-0.1.1.tgz", "resolved": "https://registry.npmmirror.com/buffers/-/buffers-0.1.1.tgz",
@ -1633,6 +1761,22 @@
"resolved": "https://registry.npmmirror.com/chownr/-/chownr-2.0.0.tgz", "resolved": "https://registry.npmmirror.com/chownr/-/chownr-2.0.0.tgz",
"integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ=="
}, },
"cipher-base": {
"version": "1.0.6",
"resolved": "https://registry.npmmirror.com/cipher-base/-/cipher-base-1.0.6.tgz",
"integrity": "sha512-3Ek9H3X6pj5TgenXYtNWdaBon1tgYCaebd+XPg0keyjEbEfkD4KkmAxkQ/i1vYvxdcT5nscLBfq9VJRmCBcFSw==",
"requires": {
"inherits": "^2.0.4",
"safe-buffer": "^5.2.1"
},
"dependencies": {
"safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
}
}
},
"citty": { "citty": {
"version": "0.1.6", "version": "0.1.6",
"resolved": "https://registry.npmmirror.com/citty/-/citty-0.1.6.tgz", "resolved": "https://registry.npmmirror.com/citty/-/citty-0.1.6.tgz",
@ -1743,6 +1887,47 @@
"readable-stream": "^3.4.0" "readable-stream": "^3.4.0"
} }
}, },
"create-ecdh": {
"version": "4.0.4",
"resolved": "https://registry.npmmirror.com/create-ecdh/-/create-ecdh-4.0.4.tgz",
"integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==",
"requires": {
"bn.js": "^4.1.0",
"elliptic": "^6.5.3"
},
"dependencies": {
"bn.js": {
"version": "4.12.2",
"resolved": "https://registry.npmmirror.com/bn.js/-/bn.js-4.12.2.tgz",
"integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw=="
}
}
},
"create-hash": {
"version": "1.2.0",
"resolved": "https://registry.npmmirror.com/create-hash/-/create-hash-1.2.0.tgz",
"integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
"requires": {
"cipher-base": "^1.0.1",
"inherits": "^2.0.1",
"md5.js": "^1.3.4",
"ripemd160": "^2.0.1",
"sha.js": "^2.4.0"
}
},
"create-hmac": {
"version": "1.1.7",
"resolved": "https://registry.npmmirror.com/create-hmac/-/create-hmac-1.1.7.tgz",
"integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
"requires": {
"cipher-base": "^1.0.3",
"create-hash": "^1.1.0",
"inherits": "^2.0.1",
"ripemd160": "^2.0.0",
"safe-buffer": "^5.0.1",
"sha.js": "^2.4.8"
}
},
"cross-spawn": { "cross-spawn": {
"version": "7.0.3", "version": "7.0.3",
"resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz",
@ -1763,6 +1948,25 @@
} }
} }
}, },
"crypto-browserify": {
"version": "3.12.1",
"resolved": "https://registry.npmmirror.com/crypto-browserify/-/crypto-browserify-3.12.1.tgz",
"integrity": "sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ==",
"requires": {
"browserify-cipher": "^1.0.1",
"browserify-sign": "^4.2.3",
"create-ecdh": "^4.0.4",
"create-hash": "^1.2.0",
"create-hmac": "^1.1.7",
"diffie-hellman": "^5.0.3",
"hash-base": "~3.0.4",
"inherits": "^2.0.4",
"pbkdf2": "^3.1.2",
"public-encrypt": "^4.0.3",
"randombytes": "^2.1.0",
"randomfill": "^1.0.4"
}
},
"csstype": { "csstype": {
"version": "2.6.21", "version": "2.6.21",
"resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz", "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz",
@ -1777,6 +1981,11 @@
"type": "^2.7.2" "type": "^2.7.2"
} }
}, },
"data-uri-to-buffer": {
"version": "4.0.1",
"resolved": "https://registry.npmmirror.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz",
"integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A=="
},
"dayjs": { "dayjs": {
"version": "1.11.13", "version": "1.11.13",
"resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.13.tgz", "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.13.tgz",
@ -1796,6 +2005,11 @@
"ms": "^2.1.3" "ms": "^2.1.3"
} }
}, },
"decode-uri-component": {
"version": "0.4.1",
"resolved": "https://registry.npmmirror.com/decode-uri-component/-/decode-uri-component-0.4.1.tgz",
"integrity": "sha512-+8VxcR21HhTy8nOt6jf20w0c9CADrw1O8d+VZ/YzzCt4bJ3uBjw+D1q2osAB8RnpwwaeYBxy0HyKQxD5JBMuuQ=="
},
"deep-pick-omit": { "deep-pick-omit": {
"version": "1.2.1", "version": "1.2.1",
"resolved": "https://registry.npmmirror.com/deep-pick-omit/-/deep-pick-omit-1.2.1.tgz", "resolved": "https://registry.npmmirror.com/deep-pick-omit/-/deep-pick-omit-1.2.1.tgz",
@ -1811,6 +2025,15 @@
"resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
}, },
"des.js": {
"version": "1.1.0",
"resolved": "https://registry.npmmirror.com/des.js/-/des.js-1.1.0.tgz",
"integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==",
"requires": {
"inherits": "^2.0.1",
"minimalistic-assert": "^1.0.0"
}
},
"destr": { "destr": {
"version": "2.0.3", "version": "2.0.3",
"resolved": "https://registry.npmmirror.com/destr/-/destr-2.0.3.tgz", "resolved": "https://registry.npmmirror.com/destr/-/destr-2.0.3.tgz",
@ -1822,6 +2045,23 @@
"integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==",
"dev": true "dev": true
}, },
"diffie-hellman": {
"version": "5.0.3",
"resolved": "https://registry.npmmirror.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
"integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
"requires": {
"bn.js": "^4.1.0",
"miller-rabin": "^4.0.0",
"randombytes": "^2.0.0"
},
"dependencies": {
"bn.js": {
"version": "4.12.2",
"resolved": "https://registry.npmmirror.com/bn.js/-/bn.js-4.12.2.tgz",
"integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw=="
}
}
},
"dom7": { "dom7": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmmirror.com/dom7/-/dom7-3.0.0.tgz", "resolved": "https://registry.npmmirror.com/dom7/-/dom7-3.0.0.tgz",
@ -1886,6 +2126,27 @@
"normalize-wheel-es": "^1.2.0" "normalize-wheel-es": "^1.2.0"
} }
}, },
"elliptic": {
"version": "6.6.1",
"resolved": "https://registry.npmmirror.com/elliptic/-/elliptic-6.6.1.tgz",
"integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==",
"requires": {
"bn.js": "^4.11.9",
"brorand": "^1.1.0",
"hash.js": "^1.0.0",
"hmac-drbg": "^1.0.1",
"inherits": "^2.0.4",
"minimalistic-assert": "^1.0.1",
"minimalistic-crypto-utils": "^1.0.1"
},
"dependencies": {
"bn.js": {
"version": "4.12.2",
"resolved": "https://registry.npmmirror.com/bn.js/-/bn.js-4.12.2.tgz",
"integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw=="
}
}
},
"end-of-stream": { "end-of-stream": {
"version": "1.4.4", "version": "1.4.4",
"resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz",
@ -2015,6 +2276,15 @@
"resolved": "https://registry.npmmirror.com/event-target-shim/-/event-target-shim-5.0.1.tgz", "resolved": "https://registry.npmmirror.com/event-target-shim/-/event-target-shim-5.0.1.tgz",
"integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ=="
}, },
"evp_bytestokey": {
"version": "1.0.3",
"resolved": "https://registry.npmmirror.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
"integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
"requires": {
"md5.js": "^1.3.4",
"safe-buffer": "^5.1.1"
}
},
"exceljs": { "exceljs": {
"version": "4.4.0", "version": "4.4.0",
"resolved": "https://registry.npmmirror.com/exceljs/-/exceljs-4.4.0.tgz", "resolved": "https://registry.npmmirror.com/exceljs/-/exceljs-4.4.0.tgz",
@ -2084,6 +2354,22 @@
"reusify": "^1.0.4" "reusify": "^1.0.4"
} }
}, },
"fetch-blob": {
"version": "3.2.0",
"resolved": "https://registry.npmmirror.com/fetch-blob/-/fetch-blob-3.2.0.tgz",
"integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==",
"requires": {
"node-domexception": "^1.0.0",
"web-streams-polyfill": "^3.0.3"
},
"dependencies": {
"web-streams-polyfill": {
"version": "3.3.3",
"resolved": "https://registry.npmmirror.com/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz",
"integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw=="
}
}
},
"file-saver": { "file-saver": {
"version": "2.0.5", "version": "2.0.5",
"resolved": "https://registry.npmmirror.com/file-saver/-/file-saver-2.0.5.tgz", "resolved": "https://registry.npmmirror.com/file-saver/-/file-saver-2.0.5.tgz",
@ -2097,6 +2383,11 @@
"to-regex-range": "^5.0.1" "to-regex-range": "^5.0.1"
} }
}, },
"filter-obj": {
"version": "5.1.0",
"resolved": "https://registry.npmmirror.com/filter-obj/-/filter-obj-5.1.0.tgz",
"integrity": "sha512-qWeTREPoT7I0bifpPUXtxkZJ1XJzxWtfoWWkdVGqa+eCr3SHW/Ocp89o8vLvbUuQnadybJpjOKu4V+RwO6sGng=="
},
"follow-redirects": { "follow-redirects": {
"version": "1.15.9", "version": "1.15.9",
"resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.9.tgz", "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.9.tgz",
@ -2126,6 +2417,14 @@
"web-streams-polyfill": "4.0.0-beta.3" "web-streams-polyfill": "4.0.0-beta.3"
} }
}, },
"formdata-polyfill": {
"version": "4.0.10",
"resolved": "https://registry.npmmirror.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz",
"integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==",
"requires": {
"fetch-blob": "^3.1.2"
}
},
"frac": { "frac": {
"version": "1.1.2", "version": "1.1.2",
"resolved": "https://registry.npmmirror.com/frac/-/frac-1.1.2.tgz", "resolved": "https://registry.npmmirror.com/frac/-/frac-1.1.2.tgz",
@ -2279,17 +2578,52 @@
"resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz",
"integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
}, },
"hash-base": {
"version": "3.0.5",
"resolved": "https://registry.npmmirror.com/hash-base/-/hash-base-3.0.5.tgz",
"integrity": "sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==",
"requires": {
"inherits": "^2.0.4",
"safe-buffer": "^5.2.1"
},
"dependencies": {
"safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
}
}
},
"hash-sum": { "hash-sum": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-2.0.0.tgz", "resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-2.0.0.tgz",
"integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==" "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg=="
}, },
"hash.js": {
"version": "1.1.7",
"resolved": "https://registry.npmmirror.com/hash.js/-/hash.js-1.1.7.tgz",
"integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
"requires": {
"inherits": "^2.0.3",
"minimalistic-assert": "^1.0.1"
}
},
"he": { "he": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz", "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz",
"integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
"dev": true "dev": true
}, },
"hmac-drbg": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
"integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==",
"requires": {
"hash.js": "^1.0.3",
"minimalistic-assert": "^1.0.0",
"minimalistic-crypto-utils": "^1.0.1"
}
},
"hookable": { "hookable": {
"version": "5.5.3", "version": "5.5.3",
"resolved": "https://registry.npmmirror.com/hookable/-/hookable-5.5.3.tgz", "resolved": "https://registry.npmmirror.com/hookable/-/hookable-5.5.3.tgz",
@ -2744,6 +3078,16 @@
"uc.micro": "^2.1.0" "uc.micro": "^2.1.0"
} }
}, },
"md5.js": {
"version": "1.3.5",
"resolved": "https://registry.npmmirror.com/md5.js/-/md5.js-1.3.5.tgz",
"integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
"requires": {
"hash-base": "^3.0.0",
"inherits": "^2.0.1",
"safe-buffer": "^5.1.2"
}
},
"mdurl": { "mdurl": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmmirror.com/mdurl/-/mdurl-2.0.0.tgz", "resolved": "https://registry.npmmirror.com/mdurl/-/mdurl-2.0.0.tgz",
@ -2779,6 +3123,22 @@
"picomatch": "^2.3.1" "picomatch": "^2.3.1"
} }
}, },
"miller-rabin": {
"version": "4.0.1",
"resolved": "https://registry.npmmirror.com/miller-rabin/-/miller-rabin-4.0.1.tgz",
"integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
"requires": {
"bn.js": "^4.0.0",
"brorand": "^1.0.1"
},
"dependencies": {
"bn.js": {
"version": "4.12.2",
"resolved": "https://registry.npmmirror.com/bn.js/-/bn.js-4.12.2.tgz",
"integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw=="
}
}
},
"mime": { "mime": {
"version": "1.6.0", "version": "1.6.0",
"resolved": "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz", "resolved": "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz",
@ -2812,6 +3172,16 @@
"resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-4.0.0.tgz", "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-4.0.0.tgz",
"integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==" "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw=="
}, },
"minimalistic-assert": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
"integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="
},
"minimalistic-crypto-utils": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
"integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg=="
},
"minimatch": { "minimatch": {
"version": "9.0.5", "version": "9.0.5",
"resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.5.tgz", "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.5.tgz",
@ -2930,11 +3300,13 @@
"integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==" "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ=="
}, },
"node-fetch": { "node-fetch": {
"version": "2.7.0", "version": "3.3.2",
"resolved": "https://registry.npmmirror.com/node-fetch/-/node-fetch-2.7.0.tgz", "resolved": "https://registry.npmmirror.com/node-fetch/-/node-fetch-3.3.2.tgz",
"integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==",
"requires": { "requires": {
"whatwg-url": "^5.0.0" "data-uri-to-buffer": "^4.0.0",
"fetch-blob": "^3.1.4",
"formdata-polyfill": "^4.0.10"
} }
}, },
"node-fetch-native": { "node-fetch-native": {
@ -3050,6 +3422,14 @@
"undici-types": "~5.26.4" "undici-types": "~5.26.4"
} }
}, },
"node-fetch": {
"version": "2.7.0",
"resolved": "https://registry.npmmirror.com/node-fetch/-/node-fetch-2.7.0.tgz",
"integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
"requires": {
"whatwg-url": "^5.0.0"
}
},
"undici-types": { "undici-types": {
"version": "5.26.5", "version": "5.26.5",
"resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz", "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz",
@ -3062,6 +3442,26 @@
"resolved": "https://registry.npmmirror.com/pako/-/pako-2.1.0.tgz", "resolved": "https://registry.npmmirror.com/pako/-/pako-2.1.0.tgz",
"integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug=="
}, },
"parse-asn1": {
"version": "5.1.7",
"resolved": "https://registry.npmmirror.com/parse-asn1/-/parse-asn1-5.1.7.tgz",
"integrity": "sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==",
"requires": {
"asn1.js": "^4.10.1",
"browserify-aes": "^1.2.0",
"evp_bytestokey": "^1.0.3",
"hash-base": "~3.0",
"pbkdf2": "^3.1.2",
"safe-buffer": "^5.2.1"
},
"dependencies": {
"safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
}
}
},
"parse-node-version": { "parse-node-version": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmmirror.com/parse-node-version/-/parse-node-version-1.0.1.tgz", "resolved": "https://registry.npmmirror.com/parse-node-version/-/parse-node-version-1.0.1.tgz",
@ -3094,6 +3494,18 @@
"resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.2.tgz", "resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.2.tgz",
"integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==" "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ=="
}, },
"pbkdf2": {
"version": "3.1.2",
"resolved": "https://registry.npmmirror.com/pbkdf2/-/pbkdf2-3.1.2.tgz",
"integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==",
"requires": {
"create-hash": "^1.1.2",
"create-hmac": "^1.1.4",
"ripemd160": "^2.0.1",
"safe-buffer": "^5.0.1",
"sha.js": "^2.4.8"
}
},
"perfect-debounce": { "perfect-debounce": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmmirror.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz", "resolved": "https://registry.npmmirror.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz",
@ -3189,11 +3601,41 @@
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"public-encrypt": {
"version": "4.0.3",
"resolved": "https://registry.npmmirror.com/public-encrypt/-/public-encrypt-4.0.3.tgz",
"integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==",
"requires": {
"bn.js": "^4.1.0",
"browserify-rsa": "^4.0.0",
"create-hash": "^1.1.0",
"parse-asn1": "^5.0.0",
"randombytes": "^2.0.1",
"safe-buffer": "^5.1.2"
},
"dependencies": {
"bn.js": {
"version": "4.12.2",
"resolved": "https://registry.npmmirror.com/bn.js/-/bn.js-4.12.2.tgz",
"integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw=="
}
}
},
"punycode.js": { "punycode.js": {
"version": "2.3.1", "version": "2.3.1",
"resolved": "https://registry.npmmirror.com/punycode.js/-/punycode.js-2.3.1.tgz", "resolved": "https://registry.npmmirror.com/punycode.js/-/punycode.js-2.3.1.tgz",
"integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==" "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA=="
}, },
"query-string": {
"version": "9.1.2",
"resolved": "https://registry.npmmirror.com/query-string/-/query-string-9.1.2.tgz",
"integrity": "sha512-s3UlTyjxRux4KjwWaJsjh1Mp8zoCkSGKirbD9H89pEM9UOZsfpRZpdfzvsy2/mGlLfC3NnYVpy2gk7jXITHEtA==",
"requires": {
"decode-uri-component": "^0.4.1",
"filter-obj": "^5.1.0",
"split-on-first": "^3.0.0"
}
},
"querystring": { "querystring": {
"version": "0.2.1", "version": "0.2.1",
"resolved": "https://registry.npmmirror.com/querystring/-/querystring-0.2.1.tgz", "resolved": "https://registry.npmmirror.com/querystring/-/querystring-0.2.1.tgz",
@ -3204,6 +3646,23 @@
"resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz", "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz",
"integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="
}, },
"randombytes": {
"version": "2.1.0",
"resolved": "https://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz",
"integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
"requires": {
"safe-buffer": "^5.1.0"
}
},
"randomfill": {
"version": "1.0.4",
"resolved": "https://registry.npmmirror.com/randomfill/-/randomfill-1.0.4.tgz",
"integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
"requires": {
"randombytes": "^2.0.5",
"safe-buffer": "^5.1.0"
}
},
"rc9": { "rc9": {
"version": "2.1.2", "version": "2.1.2",
"resolved": "https://registry.npmmirror.com/rc9/-/rc9-2.1.2.tgz", "resolved": "https://registry.npmmirror.com/rc9/-/rc9-2.1.2.tgz",
@ -3275,6 +3734,15 @@
"glob": "^7.1.3" "glob": "^7.1.3"
} }
}, },
"ripemd160": {
"version": "2.0.2",
"resolved": "https://registry.npmmirror.com/ripemd160/-/ripemd160-2.0.2.tgz",
"integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
"requires": {
"hash-base": "^3.0.0",
"inherits": "^2.0.1"
}
},
"rollup": { "rollup": {
"version": "4.24.0", "version": "4.24.0",
"resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.24.0.tgz", "resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.24.0.tgz",
@ -3371,6 +3839,15 @@
"resolved": "https://registry.npmmirror.com/setimmediate/-/setimmediate-1.0.5.tgz", "resolved": "https://registry.npmmirror.com/setimmediate/-/setimmediate-1.0.5.tgz",
"integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA=="
}, },
"sha.js": {
"version": "2.4.11",
"resolved": "https://registry.npmmirror.com/sha.js/-/sha.js-2.4.11.tgz",
"integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
"requires": {
"inherits": "^2.0.1",
"safe-buffer": "^5.0.1"
}
},
"shebang-command": { "shebang-command": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz",
@ -3448,6 +3925,11 @@
"resolved": "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", "resolved": "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
"integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA=="
}, },
"split-on-first": {
"version": "3.0.0",
"resolved": "https://registry.npmmirror.com/split-on-first/-/split-on-first-3.0.0.tgz",
"integrity": "sha512-qxQJTx2ryR0Dw0ITYyekNQWpz6f8dGd7vffGNflQQ3Iqj9NJ6qiZ7ELpZsJ/QBhIVAiDfXdag3+Gp8RvWa62AA=="
},
"ssf": { "ssf": {
"version": "0.11.2", "version": "0.11.2",
"resolved": "https://registry.npmmirror.com/ssf/-/ssf-0.11.2.tgz", "resolved": "https://registry.npmmirror.com/ssf/-/ssf-0.11.2.tgz",

View File

@ -16,15 +16,18 @@
"@wangeditor/editor-for-vue": "^5.1.12", "@wangeditor/editor-for-vue": "^5.1.12",
"axios": "^1.7.2", "axios": "^1.7.2",
"compressorjs": "^1.2.1", "compressorjs": "^1.2.1",
"crypto-browserify": "^3.12.1",
"dayjs": "^1.11.13", "dayjs": "^1.11.13",
"element-plus": "^2.9.0", "element-plus": "^2.9.0",
"exceljs": "^4.4.0", "exceljs": "^4.4.0",
"file-saver": "^2.0.5", "file-saver": "^2.0.5",
"markdown-it": "^14.1.0", "markdown-it": "^14.1.0",
"mitt": "^3.0.1", "mitt": "^3.0.1",
"node-fetch": "^3.3.2",
"openai": "^4.89.0", "openai": "^4.89.0",
"pinia": "^2.0.35", "pinia": "^2.0.35",
"pinia-plugin-persistedstate": "^4.1.2", "pinia-plugin-persistedstate": "^4.1.2",
"query-string": "^9.1.2",
"querystring": "^0.2.1", "querystring": "^0.2.1",
"shrinkpng": "^1.2.0-beta.1", "shrinkpng": "^1.2.0-beta.1",
"vue": "^3.2.31", "vue": "^3.2.31",

View File

@ -4,9 +4,9 @@ import router from '../router'
const myAxios = axios.create({ const myAxios = axios.create({
withCredentials:true, withCredentials:true,
// baseURL: 'http://localhost:9092/api' baseURL: 'http://localhost:9092/api'
// baseURL: 'http://154.8.193.216:9093/api' //隋雨霏服务器测试环境 // baseURL: 'http://154.8.193.216:9093/api' //隋雨霏服务器测试环境
baseURL: 'https://www.carboner.cn:8888/api' // baseURL: 'https://www.carboner.cn:8888/api'
// baseURL:'http://1.94.237.210:9092/api' // baseURL:'http://1.94.237.210:9092/api'
}); });
// 添加请求拦截器 // 添加请求拦截器

View File

@ -1,10 +1,10 @@
import {createRouter, createWebHashHistory} from "vue-router"; import {createRouter, createWebHistory} from "vue-router";
import {constantRoute } from "./routes"; import {constantRoute } from "./routes";
import { userStore } from "@/store/userStore"; import { userStore } from "@/store/userStore";
// 创建路由实例并传递 `routes` 配置 // 创建路由实例并传递 `routes` 配置
const router = createRouter({ const router = createRouter({
// 4. 内部提供了 history 模式的实现。为了简单起见,我们在这里使用 hash 模式。 // 4. 内部提供了 history 模式的实现。为了简单起见,我们在这里使用 hash 模式。
history: createWebHashHistory(), history: createWebHistory(),
routes: constantRoute , // `routes: routes` 的缩写 routes: constantRoute , // `routes: routes` 的缩写
}) })
//路由的请求拦截器 //路由的请求拦截器

View File

@ -1,6 +1,10 @@
export const constantRoute = [ export const constantRoute = [
{ {
path: '/', path: '/',
redirect: '/login'
},
{
path: '/login',
name: 'login', name: 'login',
component: () => import("@/views/Login.vue"), component: () => import("@/views/Login.vue"),
meta: { meta: {
@ -515,19 +519,9 @@ export const constantRoute = [
} }
] ]
}, },
{ // {
path: '/Test', // path: '/Test',
name: '测试页面', // name: '测试页面',
component: () => import("../views/test.vue") // component: () => import("@/views/test.vue")
}, // }
{
path: '/Test2',
name: '测试页面2',
component: () => import("../views/test2.vue")
},
{
path: '/Test3',
name: '测试页面3',
component: () => import("../views/excelTest.vue")
}
] ]

View File

@ -39,7 +39,7 @@ interface Emits {
const compressImage =(file: any)=> { // const compressImage =(file: any)=> { //
// console.log('compressImage',file) console.log('compressImage',file)
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
new Compressor(file.file, { new Compressor(file.file, {
quality: 0.2, // quality: 0.2, //

View File

@ -48,7 +48,7 @@
<!-- 分页器 --> <!-- 分页器 -->
<div style="padding: 10px 0"> <div style="padding: 10px 0">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page="searchParams.current" :page-size="searchParams.pageSize" :page-sizes="[5, 10, 15, 20]" :current-page="searchParams.current" :page-size="searchParams.pageSize" :page-sizes="[10, 20, 30, 50]"
:small="null" :disabled="null" :background="null" layout="total, sizes, prev, pager, next, jumper" :small="null" :disabled="null" :background="null" layout="total, sizes, prev, pager, next, jumper"
:total="total"/> :total="total"/>
</div> </div>
@ -67,7 +67,7 @@ const total = ref(0); //总页数
const idList = ref<Number[]>([]); const idList = ref<Number[]>([]);
const searchParams: any = ref({ // const searchParams: any = ref({ //
current: 1, // current: 1, //
pageSize: 5, // pageSize: 10, //
sortField: "id", //ID sortField: "id", //ID
sortOrder: "descend" // sortOrder: "descend" //
}) })

View File

@ -84,7 +84,7 @@
<!-- 分页器 --> <!-- 分页器 -->
<div style="padding: 10px 0"> <div style="padding: 10px 0">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page="searchParams.current" :page-size="searchParams.pageSize" :page-sizes="[5, 10, 15, 20]" :current-page="searchParams.current" :page-size="searchParams.pageSize" :page-sizes="[10, 20, 30, 50]"
:small="null" :disabled="null" :background="null" layout="total, sizes, prev, pager, next, jumper" :small="null" :disabled="null" :background="null" layout="total, sizes, prev, pager, next, jumper"
:total="total"/> :total="total"/>
</div> </div>
@ -104,7 +104,7 @@ const total = ref(0); //总页数
const idList = ref<Number[]>([]); const idList = ref<Number[]>([]);
const searchParams: any = ref({ // const searchParams: any = ref({ //
current: 1, // current: 1, //
pageSize: 5, // pageSize: 10, //
sortField: "id", //ID sortField: "id", //ID
sortOrder: "descend" // sortOrder: "descend" //
}) })
@ -126,7 +126,7 @@ onMounted(() => { //页面加载时获取商品列表和分类页表
const getProductList = async () => { const getProductList = async () => {
try { try {
const res = await myAxios.post('/goods/list/page', {...searchParams.value}); const res = await myAxios.post('/goods/list/page', {...searchParams.value});
// console.log('res--->', res.data) console.log('后端返回的res--->', res.data)
if (res.data.code === 1) { if (res.data.code === 1) {
tableData.value = res.data.data.records; tableData.value = res.data.data.records;
total.value = parseInt(res.data.data.total) // total.value = parseInt(res.data.data.total) //

View File

@ -62,7 +62,7 @@
<!-- 分页器 --> <!-- 分页器 -->
<div style="padding: 10px 0"> <div style="padding: 10px 0">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page="searchParams.current" :page-size="searchParams.pageSize" :page-sizes="[5, 10, 15, 20]" :current-page="searchParams.current" :page-size="searchParams.pageSize" :page-sizes="[10, 20, 30, 50]"
:small="null" :disabled="null" :background="null" layout="total, sizes, prev, pager, next, jumper" :small="null" :disabled="null" :background="null" layout="total, sizes, prev, pager, next, jumper"
:total="total" /> :total="total" />
</div> </div>
@ -84,7 +84,7 @@ const total = ref(0);
const orderNumber = ref('') const orderNumber = ref('')
const searchParams: any = ref({ // const searchParams: any = ref({ //
current: 1, // current: 1, //
pageSize: 5, // pageSize: 10, //
sortField: "id", //ID sortField: "id", //ID
sortOrder: "descend", // sortOrder: "descend", //
orderType: 'service' orderType: 'service'

View File

@ -115,7 +115,7 @@
<!-- 分页器 --> <!-- 分页器 -->
<div style="padding: 10px 0"> <div style="padding: 10px 0">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page="searchParams.current" :page-size="searchParams.pageSize" :page-sizes="[5, 10, 15, 20]" :current-page="searchParams.current" :page-size="searchParams.pageSize" :page-sizes="[10, 20, 30, 50]"
:small="null" :disabled="null" :background="null" layout="total, sizes, prev, pager, next, jumper" :small="null" :disabled="null" :background="null" layout="total, sizes, prev, pager, next, jumper"
:total="total" /> :total="total" />
</div> </div>
@ -175,7 +175,7 @@ const total = ref(0); //总页数
const idList = ref<Number[]>([]); // const idList = ref<Number[]>([]); //
const searchParams: any = ref({ // const searchParams: any = ref({ //
current: 1, // current: 1, //
pageSize: 5, // pageSize: 10, //
sortField: "id", //ID sortField: "id", //ID
sortOrder: "descend" // sortOrder: "descend" //
}) })

View File

@ -61,7 +61,7 @@
<!-- 分页--> <!-- 分页-->
<div style="padding: 10px 0"> <div style="padding: 10px 0">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page="searchParams.current" :page-size="searchParams.pageSize" :page-sizes="[5, 10, 15, 20]" :current-page="searchParams.current" :page-size="searchParams.pageSize" :page-sizes="[10, 20, 30, 50]"
:small="null" :disabled="null" :background="null" layout="total, sizes, prev, pager, next, jumper" :small="null" :disabled="null" :background="null" layout="total, sizes, prev, pager, next, jumper"
:total="total" /> :total="total" />
</div> </div>
@ -126,7 +126,7 @@ const editForm : any = ref({})
const disabled = ref(true) const disabled = ref(true)
const searchParams: any = ref({ // const searchParams: any = ref({ //
current: 1, current: 1,
pageSize: 5, pageSize: 10,
sortField: "id", //ID sortField: "id", //ID
sortOrder: "descend" // sortOrder: "descend" //
}) })

View File

@ -46,7 +46,7 @@ import {onMounted, onUnmounted, ref} from 'vue'
import { SuccessInfo, ErrorInfo, WarnInfo, CommInfo } from '@/utils/messageInfo'; import { SuccessInfo, ErrorInfo, WarnInfo, CommInfo } from '@/utils/messageInfo';
import {useRouter} from 'vue-router' import {useRouter} from 'vue-router'
import myAxios from '@/api/myAxios'; import myAxios from '@/api/myAxios';
import { userStore } from '../store/userStore'; import { userStore } from '@/store/userStore';
import { User , Lock} from '@element-plus/icons-vue' import { User , Lock} from '@element-plus/icons-vue'
const user = ref({}) const user = ref({})
@ -75,6 +75,10 @@ const Login = async ()=>{
ErrorInfo('检查账号或密码是否成功填写') ErrorInfo('检查账号或密码是否成功填写')
return; return;
} }
if(password.value.length < 6) {
ErrorInfo('密码过短,请重新填写')
return;
}
const res: any = await myAxios.post("/user/login",{ const res: any = await myAxios.post("/user/login",{
userAccount: username.value, userAccount: username.value,
userPassword: password.value userPassword: password.value

View File

@ -20,7 +20,7 @@
<el-table v-loading="loading" :data="tableData" border stripe header-cell-class-name="headerBg" <el-table v-loading="loading" :data="tableData" border stripe header-cell-class-name="headerBg"
:cell-style="{ 'text-align': 'center', 'font-size': '16px' }" @selection-change="handleSelectionChange" :cell-style="{ 'text-align': 'center', 'font-size': '16px' }" @selection-change="handleSelectionChange"
:header-cell-style="{ 'text-align': 'center' }" :row-style="{ height: '70px' }"> :header-cell-style="{ 'text-align': 'center' }" :row-style="{ height: '70px' }">
<el-table-column type="selection" width="55" fixed="left"></el-table-column> <!-- <el-table-column type="selection" width="55" fixed="left"></el-table-column>-->
<el-table-column prop="id" label="订单序号" width="80"> <el-table-column prop="id" label="订单序号" width="80">
<template #default="{ $index }"> <template #default="{ $index }">
{{ $index + 1 }} {{ $index + 1 }}
@ -95,7 +95,7 @@
<!-- 分页器 --> <!-- 分页器 -->
<div style="padding: 10px 0"> <div style="padding: 10px 0">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page="searchParams.current" :page-size="searchParams.pageSize" :page-sizes="[5, 10, 15, 20]" :current-page="searchParams.current" :page-size="searchParams.pageSize" :page-sizes="[10, 20, 30, 50]"
:small="null" :disabled="null" :background="null" layout="total, sizes, prev, pager, next, jumper" :small="null" :disabled="null" :background="null" layout="total, sizes, prev, pager, next, jumper"
:total="total" /> :total="total" />
</div> </div>
@ -201,7 +201,7 @@ const shipments = ref(false)
const orderNumber = ref('') const orderNumber = ref('')
const searchParams: any = ref({ // const searchParams: any = ref({ //
current: 1, // current: 1, //
pageSize: 5, // pageSize: 10, //
sortField: "id", //ID sortField: "id", //ID
sortOrder: "descend", // sortOrder: "descend", //
orderType: "product" orderType: "product"

View File

@ -25,7 +25,7 @@
<el-table v-loading="loading" :data="tableData" border stripe header-cell-class-name="headerBg" <el-table v-loading="loading" :data="tableData" border stripe header-cell-class-name="headerBg"
:cell-style="{ 'text-align': 'center', 'font-size': '16px' }" @selection-change="handleSelectionChange" :cell-style="{ 'text-align': 'center', 'font-size': '16px' }" @selection-change="handleSelectionChange"
:header-cell-style="{ 'text-align': 'center' }" :row-style="{ height: '70px' }"> :header-cell-style="{ 'text-align': 'center' }" :row-style="{ height: '70px' }">
<el-table-column type="selection" width="55" fixed="left"></el-table-column> <!-- <el-table-column type="selection" width="55" fixed="left"></el-table-column>-->
<el-table-column prop="id" label="待处理订单序号" width="80"> <el-table-column prop="id" label="待处理订单序号" width="80">
<template #default="{ $index }"> <template #default="{ $index }">
{{ $index + 1 }} {{ $index + 1 }}
@ -82,7 +82,7 @@
<!-- 分页器 --> <!-- 分页器 -->
<div style="padding: 10px 0"> <div style="padding: 10px 0">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page="searchParams.current" :page-size="searchParams.pageSize" :page-sizes="[5, 10, 15, 20]" :current-page="searchParams.current" :page-size="searchParams.pageSize" :page-sizes="[10, 20, 30, 50]"
:small="null" :disabled="null" :background="null" layout="total, sizes, prev, pager, next, jumper" :small="null" :disabled="null" :background="null" layout="total, sizes, prev, pager, next, jumper"
:total="totalPage" /> :total="totalPage" />
</div> </div>
@ -153,7 +153,7 @@ const reservationDate = ref('')
const timeSlot = ref('') const timeSlot = ref('')
const searchParams: any = ref({ // const searchParams: any = ref({ //
current: 1, // current: 1, //
pageSize: 5, // pageSize: 10, //
sortField: "id", sortField: "id",
sortOrder: "descend", // sortOrder: "descend", //
}) })

View File

@ -20,7 +20,7 @@
<el-table v-loading="loading" :data="tableData" border stripe header-cell-class-name="headerBg" <el-table v-loading="loading" :data="tableData" border stripe header-cell-class-name="headerBg"
:cell-style="{ 'text-align': 'center', 'font-size': '16px' }" @selection-change="handleSelectionChange" :cell-style="{ 'text-align': 'center', 'font-size': '16px' }" @selection-change="handleSelectionChange"
:header-cell-style="{ 'text-align': 'center' }" :row-style="{ height: '70px' }"> :header-cell-style="{ 'text-align': 'center' }" :row-style="{ height: '70px' }">
<el-table-column type="selection" width="55" fixed="left"></el-table-column> <!-- <el-table-column type="selection" width="55" fixed="left"></el-table-column>-->
<el-table-column prop="id" label="订单序号" width="80"> <el-table-column prop="id" label="订单序号" width="80">
<template #default="{ $index }"> <template #default="{ $index }">
{{ $index + 1 }} {{ $index + 1 }}
@ -88,7 +88,7 @@
<!-- 分页器 --> <!-- 分页器 -->
<div style="padding: 10px 0"> <div style="padding: 10px 0">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page="searchParams.current" :page-size="searchParams.pageSize" :page-sizes="[5, 10, 15, 20]" :current-page="searchParams.current" :page-size="searchParams.pageSize" :page-sizes="[10, 20, 30, 50]"
:small="null" :disabled="null" :background="null" layout="total, sizes, prev, pager, next, jumper" :small="null" :disabled="null" :background="null" layout="total, sizes, prev, pager, next, jumper"
:total="total" /> :total="total" />
</div> </div>
@ -108,7 +108,7 @@ const total = ref(0);
const orderNumber = ref('') const orderNumber = ref('')
const searchParams: any = ref({ // const searchParams: any = ref({ //
current: 1, // current: 1, //
pageSize: 5, // pageSize: 10, //
sortField: "id", //ID sortField: "id", //ID
sortOrder: "descend", // sortOrder: "descend", //
orderType: 'service' orderType: 'service'

View File

@ -47,7 +47,7 @@
<el-pagination <el-pagination
:current-page="searchParams.current" :current-page="searchParams.current"
:page-size="searchParams.pageSize" :page-size="searchParams.pageSize"
:page-sizes="[2, 5, 10, 20]" :page-sizes="[10, 20, 30, 50]"
@size-change="handleSizeChange" @size-change="handleSizeChange"
@current-change="handleCurrentChange" @current-change="handleCurrentChange"
:small="null" :small="null"
@ -108,7 +108,7 @@ const searchParams: any = ref({
// //
current: 1, current: 1,
// //
pageSize: 5, pageSize: 10,
// //
type: '服务类', type: '服务类',
sortOrder: 'descend' sortOrder: 'descend'

View File

@ -46,7 +46,7 @@
<el-pagination <el-pagination
:current-page="searchParams.current" :current-page="searchParams.current"
:page-size="searchParams.pageSize" :page-size="searchParams.pageSize"
:page-sizes="[2, 5, 10, 20]" :page-sizes="[10, 20, 30, 50]"
@size-change="handleSizeChange" @size-change="handleSizeChange"
@current-change="handleCurrentChange" @current-change="handleCurrentChange"
:small="null" :small="null"
@ -108,7 +108,7 @@ const searchParams: any = ref({
// //
current: 1, current: 1,
// //
pageSize: 5, pageSize: 10,
// //
type: '实体类', type: '实体类',
sortOrder: 'descend' sortOrder: 'descend'

View File

@ -96,7 +96,7 @@
<!-- 分页器 --> <!-- 分页器 -->
<div style="padding: 10px 0"> <div style="padding: 10px 0">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page="searchParams.current" :page-size="searchParams.pageSize" :page-sizes="[5, 10, 15, 20]" :current-page="searchParams.current" :page-size="searchParams.pageSize" :page-sizes="[10, 20, 30, 50]"
:small="null" :disabled="null" :background="null" layout="total, sizes, prev, pager, next, jumper" :small="null" :disabled="null" :background="null" layout="total, sizes, prev, pager, next, jumper"
:total="total"/> :total="total"/>
</div> </div>
@ -116,7 +116,7 @@ const total = ref(0); //总页数
const idList = ref<Number[]>([]); const idList = ref<Number[]>([]);
const searchParams: any = ref({ // const searchParams: any = ref({ //
current: 1, // current: 1, //
pageSize: 5, // pageSize: 10, //
sortField: "id", //ID sortField: "id", //ID
sortOrder: "descend" // sortOrder: "descend" //
}) })

View File

@ -83,7 +83,7 @@
<!-- 分页器 --> <!-- 分页器 -->
<div style="padding: 10px 0"> <div style="padding: 10px 0">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page="searchParams.current" :page-size="searchParams.pageSize" :page-sizes="[5, 10, 15, 20]" :current-page="searchParams.current" :page-size="searchParams.pageSize" :page-sizes="[10, 20, 30, 50]"
:small="null" :disabled="null" :background="null" layout="total, sizes, prev, pager, next, jumper" :small="null" :disabled="null" :background="null" layout="total, sizes, prev, pager, next, jumper"
:total="total" /> :total="total" />
</div> </div>
@ -104,7 +104,7 @@ const total = ref(0);
const orderNumber = ref('') const orderNumber = ref('')
const searchParams: any = ref({ // const searchParams: any = ref({ //
current: 1, // current: 1, //
pageSize: 5, // pageSize: 10, //
sortField: "id", //ID sortField: "id", //ID
sortOrder: "descend", // sortOrder: "descend", //
}) })

View File

@ -32,7 +32,7 @@
<!-- 分页器 --> <!-- 分页器 -->
<div style="padding: 10px 0"> <div style="padding: 10px 0">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page="searchParams.current" :page-size="searchParams.pageSize" :page-sizes="[5, 10, 15, 20]" :current-page="searchParams.current" :page-size="searchParams.pageSize" :page-sizes="[10, 20, 30, 50]"
:small="null" :disabled="null" :background="null" layout="total, sizes, prev, pager, next, jumper" :small="null" :disabled="null" :background="null" layout="total, sizes, prev, pager, next, jumper"
:total="total" /> :total="total" />
</div> </div>
@ -46,7 +46,7 @@ const total = ref(0); //总页数
const outTradeNo = ref(''); const outTradeNo = ref('');
const searchParams: any = ref({ // const searchParams: any = ref({ //
current: 1, // current: 1, //
pageSize: 5, // pageSize: 10, //
sortField: "id", //ID sortField: "id", //ID
sortOrder: "descend", // sortOrder: "descend", //
outTradeNo: outTradeNo.value outTradeNo: outTradeNo.value

View File

@ -109,7 +109,7 @@
<!-- 分页器 --> <!-- 分页器 -->
<div style="padding: 10px 0"> <div style="padding: 10px 0">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page="searchParams.current" :page-size="searchParams.pageSize" :page-sizes="[5, 10, 15, 20]" :current-page="searchParams.current" :page-size="searchParams.pageSize" :page-sizes="[10, 20, 30, 50]"
:small="null" :disabled="null" :background="null" layout="total, sizes, prev, pager, next, jumper" :small="null" :disabled="null" :background="null" layout="total, sizes, prev, pager, next, jumper"
:total="total" /> :total="total" />
</div> </div>
@ -189,7 +189,7 @@ const total = ref(0); //总页数
const idList = ref<Number[]>([]); // const idList = ref<Number[]>([]); //
const searchParams: any = ref({ // const searchParams: any = ref({ //
current: 1, // current: 1, //
pageSize: 5, // pageSize: 10, //
sortField: "id", //ID sortField: "id", //ID
sortOrder: "descend" // sortOrder: "descend" //
}) })

View File

@ -8,7 +8,7 @@
</div> </div>
<el-table :data="tableData" border stripe header-cell-class-name="headerBg" :cell-style="{ textAlign: 'center' }" <el-table :data="tableData" border stripe header-cell-class-name="headerBg" :cell-style="{ textAlign: 'center' }"
@selection-change="handleSelectionChange" :header-cell-style="{ 'text-align': 'center' }"> @selection-change="handleSelectionChange" :header-cell-style="{ 'text-align': 'center' }">
<el-table-column type="selection" width="55"></el-table-column> <!-- <el-table-column type="selection" width="55"></el-table-column>-->
<el-table-column prop="id" label="序号" width="50"> <el-table-column prop="id" label="序号" width="50">
<template #default="{ $index }"> <template #default="{ $index }">
{{ $index + 1 }} {{ $index + 1 }}
@ -32,7 +32,7 @@
</el-table> </el-table>
<!-- 分页查询 --> <!-- 分页查询 -->
<div style="padding: 10px 0"> <div style="padding: 10px 0">
<el-pagination :current-page="searchParams.current" :page-size="searchParams.pageSize" :page-sizes="[2, 5, 10, 20]" <el-pagination :current-page="searchParams.current" :page-size="searchParams.pageSize" :page-sizes="[10, 20, 30, 50]"
@size-change="handleSizeChange" @current-change="handleCurrentChange" :small="null" background @size-change="handleSizeChange" @current-change="handleCurrentChange" :small="null" background
layout="total, sizes, prev, pager, next, jumper" :total="total" /> layout="total, sizes, prev, pager, next, jumper" :total="total" />
</div> </div>
@ -55,7 +55,7 @@ const searchParams: any = ref({
// //
current: 1, current: 1,
// //
pageSize: 5 pageSize: 10
}) })
const reload: any = inject("reload") // const reload: any = inject("reload") //
const router = useRouter() const router = useRouter()

View File

@ -1,143 +1,10 @@
<template> <template>
<view class="container"> test
<!-- 聊天记录展示 -->
<scroll-view scroll-y class="chat-list" :style="{ height: chatHeight + 'px' }">
<view v-for="(msg, index) in messages" :key="index" class="message-item">
<view :class="msg.isUser ? 'message-user' : 'message-other'">
{{ msg.text }}
</view>
</view>
</scroll-view>
<!-- 输入框和发送按钮 -->
<view class="input-area">
<input
v-model="newMessage"
class="input-box"
placeholder="请输入消息"
@confirm="sendMessage"
/>
<button class="send-btn" @click="sendMessage">发送</button>
</view>
</view>
</template> </template>
<script> <script>
import { ref, reactive, onMounted } from 'vue';
export default {
setup() {
//
const newMessage = ref(''); //
const messages = reactive([]); //
const chatHeight = ref(0); //
//
onMounted(() => {
loadMessages();
setChatHeight();
});
//
const sendMessage = () => {
if (newMessage.value.trim() === '') return;
//
messages.push({ text: newMessage.value, isUser: true });
saveMessages();
//
setTimeout(() => {
const response = '这是一条自动回复消息';
messages.push({ text: response, isUser: false });
saveMessages();
}, 1000);
//
newMessage.value = '';
};
//
const loadMessages = () => {
const savedMessages = uni.getStorageSync('chatMessages');
if (savedMessages) {
messages.push(...JSON.parse(savedMessages));
}
};
//
const saveMessages = () => {
uni.setStorageSync('chatMessages', JSON.stringify(messages));
};
//
const setChatHeight = () => {
const systemInfo = uni.getSystemInfoSync();
chatHeight.value = systemInfo.windowHeight - 150; //
};
return {
newMessage,
messages,
chatHeight,
sendMessage
};
}
};
</script> </script>
<style scoped> <style scoped>
.container {
display: flex;
flex-direction: column;
height: 100vh;
}
.chat-list {
flex: 1;
padding: 10px;
background-color: #f0f0f0;
}
.message-item {
margin-bottom: 10px;
}
.message-user {
background-color: #007aff;
color: white;
padding: 10px;
border-radius: 10px;
text-align: right;
}
.message-other {
background-color: #e5e5e5;
color: black;
padding: 10px;
border-radius: 10px;
}
.input-area {
display: flex;
padding: 10px;
background-color: #fff;
align-items: center;
}
.input-box {
flex: 1;
height: 40px;
padding: 0 10px;
border-radius: 20px;
border: 1px solid #ddd;
}
.send-btn {
background-color: #007aff;
color: white;
padding: 10px 20px;
border-radius: 20px;
margin-left: 10px;
}
</style> </style>

View File

@ -1,110 +0,0 @@
import { saveAs } from "file-saver";
import ExcelJS from "exceljs";
// Base64
function getBase64Image(url) {
return new Promise((resolve, reject) => {
const img = new Image();
img.crossOrigin = 'Anonymous'; //
img.onload = () => {
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
canvas.height = img.height;
canvas.width = img.width;
ctx.drawImage(img, 0, 0);
const dataURL = canvas.toDataURL('image/png');
resolve(dataURL);
};
img.onerror = (error) => reject(error);
img.src = url;
});
}
export const serviceOrderList = (tableData, downloadUrl) => {
const workbook = new ExcelJS.Workbook();
const worksheet = workbook.addWorksheet('Order Details');
//
worksheet.columns = [
{ header: '订单序号', key: 'index', width: 10 },
{ header: '订单编号', key: 'orderNumber', width: 30 },
{ header: '下单时间', key: 'createTime', width: 20 },
{ header: '用户名', key: 'userName', width: 15 },
{ header: '所购买的商品', key: 'goodName', width: 30 },
{ header: '商品图片', key: 'goodImg', width: 20 },
{ header: '商品类别', key: 'type', width: 20 },
{ header: '商品单价', key: 'price', width: 15 },
{ header: '数量', key: 'quantity', width: 10 },
{ header: '总价', key: 'itemTotalAmount', width: 15 },
{ header: '预约日期', key: 'reservationDate', width: 15 },
{ header: '预约时间段', key: 'timeSlot', width: 15 },
{ header: '联系人姓名', key: 'contactName', width: 20 },
{ header: '联系人手机号', key: 'contactPhone', width: 20 },
{ header: '订单实付金额', key: 'totalAmount', width: 20 },
{ header: '订单状态', key: 'orderStatus', width: 20 },
];
// tableData
tableData.forEach((order, index) => {
//
order.orderItemList.forEach(async (item) => {
//
const row = worksheet.addRow({
index: index + 1,
orderNumber: order.orderNumber,
createTime: order.createTime,
userName: order.userName,
goodName: item.goodSnapshot.name,
goodImg: item.goodSnapshot.goodImg.split(';')[0], //
type: item.goodSnapshot.type,
price: item.goodSnapshot.price,
quantity: item.quantity,
itemTotalAmount: item.itemTotalAmount,
reservationDate: item.reservationDate,
timeSlot: item.timeSlot,
contactName: order.contactsSnapshot.name,
contactPhone: order.contactsSnapshot.phone,
totalAmount: order.totalAmount,
orderStatus: order.orderStatus,
});
// Base64
try {
const imageUrl = 'https://www.carboner.cn:8888/api/file/downloadFile?objectKey=' + row.getCell('goodImg').value;
const base64Image = await getBase64Image(imageUrl);
// Base64 Excel
const imageId = workbook.addImage({
base64: base64Image,
extension: 'png',
});
// Excel
worksheet.getRow(row.number).getCell('goodImg').value = { type: 'image', imageId };
worksheet.getRow(row.number).getCell('goodImg').style = {
alignment: { vertical: 'middle', horizontal: 'center' },
};
} catch (error) {
console.error('图片转换失败', error);
}
});
});
//
worksheet.columns.forEach((column) => {
let maxLength = 0;
column.eachCell({ includeEmpty: true }, (cell) => {
const cellValue = cell.value ? String(cell.value) : ''; //
maxLength = Math.max(maxLength, cellValue.length);
});
//
column.width = maxLength + 2; //
});
// Excel
workbook.xlsx.writeBuffer().then((buffer) => {
const blob = new Blob([buffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
saveAs(blob, '订单信息.xlsx');
});
};

View File

@ -24,3 +24,4 @@ export default defineConfig({
// } // }
// }, // },
}) })