From 5cd4aa47913a496c815a921b06dbedc8e98c2114 Mon Sep 17 00:00:00 2001 From: "yang.yongquan" <3395816735@qq.com> Date: Mon, 26 Dec 2022 15:25:51 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E6=AD=A5=E5=AE=9E=E7=8E=B0=E4=BA=86?= =?UTF-8?q?=E5=8F=91=E7=A5=A8=E5=88=97=E8=A1=A8=E7=95=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 315 ++++++++++++++++++++++++++ package.json | 1 + src/pages/Invoice/InvoiceListView.css | 13 ++ src/pages/Invoice/InvoiceListView.tsx | 212 +++++++++++++++++ src/router/router.tsx | 5 + 5 files changed, 546 insertions(+) create mode 100644 src/pages/Invoice/InvoiceListView.css create mode 100644 src/pages/Invoice/InvoiceListView.tsx diff --git a/package-lock.json b/package-lock.json index 4be9f60..1dd568c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,7 @@ "name": "financial-reimbursement", "version": "0.1.0", "dependencies": { + "@ant-design/compatible": "^5.1.1", "@reduxjs/toolkit": "^1.9.1", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", @@ -53,6 +54,30 @@ "@ctrl/tinycolor": "^3.4.0" } }, + "node_modules/@ant-design/compatible": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@ant-design/compatible/-/compatible-5.1.1.tgz", + "integrity": "sha512-frGsAfzW49y5dq5U9jFDnIsYsEO84IYWF0mNKHCEYE+vyAPbZ+Kzlpv9CBqHtRy4cc0yVE5LHAuNqavKY/cigw==", + "dependencies": { + "classnames": "^2.2.6", + "dayjs": "^1.11.4", + "lodash.camelcase": "^4.3.0", + "lodash.upperfirst": "^4.3.1", + "rc-animate": "^3.1.1", + "rc-form": "^2.4.12", + "rc-util": "^5.24.5" + }, + "peerDependencies": { + "antd": "^5.0.1", + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/@ant-design/css-animation": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@ant-design/css-animation/-/css-animation-1.7.3.tgz", + "integrity": "sha512-LrX0OGZtW+W6iLnTAqnTaoIsRelYeuLZWsrmBJFUXDALQphPsN8cE5DCsmoSlL0QYb94BQxINiuS70Ar/8BNgA==" + }, "node_modules/@ant-design/cssinjs": { "version": "1.2.0", "resolved": "https://registry.npmmirror.com/@ant-design/cssinjs/-/cssinjs-1.2.0.tgz", @@ -4372,6 +4397,14 @@ "node": ">=0.4.0" } }, + "node_modules/add-dom-event-listener": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/add-dom-event-listener/-/add-dom-event-listener-1.1.0.tgz", + "integrity": "sha512-WCxx1ixHT0GQU9hb0KI/mhgRQhnU+U3GvwY6ZvVjYq8rsihIGoaIOUbY0yMPBxLH5MDtr0kz3fisWGNcbWW7Jw==", + "dependencies": { + "object-assign": "4.x" + } + }, "node_modules/address": { "version": "1.2.2", "resolved": "https://registry.npmmirror.com/address/-/address-1.2.2.tgz", @@ -5047,6 +5080,27 @@ "babel-plugin-transform-react-remove-prop-types": "^0.4.24" } }, + "node_modules/babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", + "dependencies": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "node_modules/babel-runtime/node_modules/core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", + "hasInstallScript": true + }, + "node_modules/babel-runtime/node_modules/regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", @@ -5653,6 +5707,15 @@ "node": ">=10" } }, + "node_modules/create-react-class": { + "version": "15.7.0", + "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.7.0.tgz", + "integrity": "sha512-QZv4sFWG9S5RUvkTYWbflxeZX+JG7Cz0Tn33rQBJ+WFQTqTfUTjMjiv9tnfXazjsO5r0KhPs+AqCjyrQX6h2ng==", + "dependencies": { + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" + } + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -6315,6 +6378,11 @@ "utila": "~0.4" } }, + "node_modules/dom-scroll-into-view": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/dom-scroll-into-view/-/dom-scroll-into-view-1.2.1.tgz", + "integrity": "sha512-LwNVg3GJOprWDO+QhLL1Z9MMgWe/KAFLxVWKzjRTxNSPn8/LLDIfmuG71YHznXCqaqTjvHJDYO1MEAgX6XCNbQ==" + }, "node_modules/dom-serializer": { "version": "1.4.1", "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-1.4.1.tgz", @@ -11017,6 +11085,11 @@ "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" + }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz", @@ -11042,6 +11115,11 @@ "resolved": "https://registry.npmmirror.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz", "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" }, + "node_modules/lodash.upperfirst": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz", + "integrity": "sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==" + }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz", @@ -13218,6 +13296,34 @@ "react-dom": ">=16.9.0" } }, + "node_modules/rc-animate": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/rc-animate/-/rc-animate-3.1.1.tgz", + "integrity": "sha512-8wg2Zg3EETy0k/9kYuis30NJNQg1D6/WSQwnCiz6SvyxQXNet/rVraRz3bPngwY6rcU2nlRvoShiYOorXyF7Sg==", + "dependencies": { + "@ant-design/css-animation": "^1.7.2", + "classnames": "^2.2.6", + "raf": "^3.4.0", + "rc-util": "^4.15.3" + } + }, + "node_modules/rc-animate/node_modules/rc-util": { + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-4.21.1.tgz", + "integrity": "sha512-Z+vlkSQVc1l8O2UjR3WQ+XdWlhj5q9BMQNLk2iOBch75CqPfrJyGtcWMcnhRlNuDu0Ndtt4kLVO8JI8BrABobg==", + "dependencies": { + "add-dom-event-listener": "^1.1.0", + "prop-types": "^15.5.10", + "react-is": "^16.12.0", + "react-lifecycles-compat": "^3.0.4", + "shallowequal": "^1.1.0" + } + }, + "node_modules/rc-animate/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, "node_modules/rc-cascader": { "version": "3.8.0", "resolved": "https://registry.npmmirror.com/rc-cascader/-/rc-cascader-3.8.0.tgz", @@ -13328,6 +13434,47 @@ "react-dom": ">=16.9.0" } }, + "node_modules/rc-form": { + "version": "2.4.12", + "resolved": "https://registry.npmjs.org/rc-form/-/rc-form-2.4.12.tgz", + "integrity": "sha512-sHfyWRrnjCHkeCYfYAGop2GQBUC6CKMPcJF9h/gL/vTmZB/RN6fNOGKjXrXjFbwFwKXUWBoPtIDDDmXQW9xNdw==", + "dependencies": { + "async-validator": "~1.11.3", + "babel-runtime": "6.x", + "create-react-class": "^15.5.3", + "dom-scroll-into-view": "1.x", + "hoist-non-react-statics": "^3.3.0", + "lodash": "^4.17.4", + "rc-util": "^4.15.3", + "react-is": "^16.13.1", + "warning": "^4.0.3" + }, + "peerDependencies": { + "prop-types": "^15.0" + } + }, + "node_modules/rc-form/node_modules/async-validator": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-1.11.5.tgz", + "integrity": "sha512-XNtCsMAeAH1pdLMEg1z8/Bb3a8cdCbui9QbJATRFHHHW5kT6+NPI3zSVQUXgikTFITzsg+kYY5NTWhM2Orwt9w==" + }, + "node_modules/rc-form/node_modules/rc-util": { + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-4.21.1.tgz", + "integrity": "sha512-Z+vlkSQVc1l8O2UjR3WQ+XdWlhj5q9BMQNLk2iOBch75CqPfrJyGtcWMcnhRlNuDu0Ndtt4kLVO8JI8BrABobg==", + "dependencies": { + "add-dom-event-listener": "^1.1.0", + "prop-types": "^15.5.10", + "react-is": "^16.12.0", + "react-lifecycles-compat": "^3.0.4", + "shallowequal": "^1.1.0" + } + }, + "node_modules/rc-form/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, "node_modules/rc-image": { "version": "5.12.1", "resolved": "https://registry.npmmirror.com/rc-image/-/rc-image-5.12.1.tgz", @@ -13963,6 +14110,11 @@ "resolved": "https://registry.npmmirror.com/react-is/-/react-is-17.0.2.tgz", "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, + "node_modules/react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + }, "node_modules/react-redux": { "version": "8.0.5", "resolved": "https://registry.npmmirror.com/react-redux/-/react-redux-8.0.5.tgz", @@ -15924,6 +16076,14 @@ "makeerror": "1.0.12" } }, + "node_modules/warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, "node_modules/watchpack": { "version": "2.4.0", "resolved": "https://registry.npmmirror.com/watchpack/-/watchpack-2.4.0.tgz", @@ -16823,6 +16983,25 @@ "@ctrl/tinycolor": "^3.4.0" } }, + "@ant-design/compatible": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@ant-design/compatible/-/compatible-5.1.1.tgz", + "integrity": "sha512-frGsAfzW49y5dq5U9jFDnIsYsEO84IYWF0mNKHCEYE+vyAPbZ+Kzlpv9CBqHtRy4cc0yVE5LHAuNqavKY/cigw==", + "requires": { + "classnames": "^2.2.6", + "dayjs": "^1.11.4", + "lodash.camelcase": "^4.3.0", + "lodash.upperfirst": "^4.3.1", + "rc-animate": "^3.1.1", + "rc-form": "^2.4.12", + "rc-util": "^5.24.5" + } + }, + "@ant-design/css-animation": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@ant-design/css-animation/-/css-animation-1.7.3.tgz", + "integrity": "sha512-LrX0OGZtW+W6iLnTAqnTaoIsRelYeuLZWsrmBJFUXDALQphPsN8cE5DCsmoSlL0QYb94BQxINiuS70Ar/8BNgA==" + }, "@ant-design/cssinjs": { "version": "1.2.0", "resolved": "https://registry.npmmirror.com/@ant-design/cssinjs/-/cssinjs-1.2.0.tgz", @@ -19980,6 +20159,14 @@ "resolved": "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-7.2.0.tgz", "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" }, + "add-dom-event-listener": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/add-dom-event-listener/-/add-dom-event-listener-1.1.0.tgz", + "integrity": "sha512-WCxx1ixHT0GQU9hb0KI/mhgRQhnU+U3GvwY6ZvVjYq8rsihIGoaIOUbY0yMPBxLH5MDtr0kz3fisWGNcbWW7Jw==", + "requires": { + "object-assign": "4.x" + } + }, "address": { "version": "1.2.2", "resolved": "https://registry.npmmirror.com/address/-/address-1.2.2.tgz", @@ -20521,6 +20708,27 @@ "babel-plugin-transform-react-remove-prop-types": "^0.4.24" } }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + } + } + }, "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", @@ -21024,6 +21232,15 @@ "yaml": "^1.10.0" } }, + "create-react-class": { + "version": "15.7.0", + "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.7.0.tgz", + "integrity": "sha512-QZv4sFWG9S5RUvkTYWbflxeZX+JG7Cz0Tn33rQBJ+WFQTqTfUTjMjiv9tnfXazjsO5r0KhPs+AqCjyrQX6h2ng==", + "requires": { + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" + } + }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -21521,6 +21738,11 @@ "utila": "~0.4" } }, + "dom-scroll-into-view": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/dom-scroll-into-view/-/dom-scroll-into-view-1.2.1.tgz", + "integrity": "sha512-LwNVg3GJOprWDO+QhLL1Z9MMgWe/KAFLxVWKzjRTxNSPn8/LLDIfmuG71YHznXCqaqTjvHJDYO1MEAgX6XCNbQ==" + }, "dom-serializer": { "version": "1.4.1", "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-1.4.1.tgz", @@ -25187,6 +25409,11 @@ "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" + }, "lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz", @@ -25212,6 +25439,11 @@ "resolved": "https://registry.npmmirror.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz", "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" }, + "lodash.upperfirst": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz", + "integrity": "sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==" + }, "loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz", @@ -26740,6 +26972,36 @@ "resize-observer-polyfill": "^1.5.1" } }, + "rc-animate": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/rc-animate/-/rc-animate-3.1.1.tgz", + "integrity": "sha512-8wg2Zg3EETy0k/9kYuis30NJNQg1D6/WSQwnCiz6SvyxQXNet/rVraRz3bPngwY6rcU2nlRvoShiYOorXyF7Sg==", + "requires": { + "@ant-design/css-animation": "^1.7.2", + "classnames": "^2.2.6", + "raf": "^3.4.0", + "rc-util": "^4.15.3" + }, + "dependencies": { + "rc-util": { + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-4.21.1.tgz", + "integrity": "sha512-Z+vlkSQVc1l8O2UjR3WQ+XdWlhj5q9BMQNLk2iOBch75CqPfrJyGtcWMcnhRlNuDu0Ndtt4kLVO8JI8BrABobg==", + "requires": { + "add-dom-event-listener": "^1.1.0", + "prop-types": "^15.5.10", + "react-is": "^16.12.0", + "react-lifecycles-compat": "^3.0.4", + "shallowequal": "^1.1.0" + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + } + } + }, "rc-cascader": { "version": "3.8.0", "resolved": "https://registry.npmmirror.com/rc-cascader/-/rc-cascader-3.8.0.tgz", @@ -26819,6 +27081,46 @@ "rc-util": "^5.8.0" } }, + "rc-form": { + "version": "2.4.12", + "resolved": "https://registry.npmjs.org/rc-form/-/rc-form-2.4.12.tgz", + "integrity": "sha512-sHfyWRrnjCHkeCYfYAGop2GQBUC6CKMPcJF9h/gL/vTmZB/RN6fNOGKjXrXjFbwFwKXUWBoPtIDDDmXQW9xNdw==", + "requires": { + "async-validator": "~1.11.3", + "babel-runtime": "6.x", + "create-react-class": "^15.5.3", + "dom-scroll-into-view": "1.x", + "hoist-non-react-statics": "^3.3.0", + "lodash": "^4.17.4", + "rc-util": "^4.15.3", + "react-is": "^16.13.1", + "warning": "^4.0.3" + }, + "dependencies": { + "async-validator": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-1.11.5.tgz", + "integrity": "sha512-XNtCsMAeAH1pdLMEg1z8/Bb3a8cdCbui9QbJATRFHHHW5kT6+NPI3zSVQUXgikTFITzsg+kYY5NTWhM2Orwt9w==" + }, + "rc-util": { + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-4.21.1.tgz", + "integrity": "sha512-Z+vlkSQVc1l8O2UjR3WQ+XdWlhj5q9BMQNLk2iOBch75CqPfrJyGtcWMcnhRlNuDu0Ndtt4kLVO8JI8BrABobg==", + "requires": { + "add-dom-event-listener": "^1.1.0", + "prop-types": "^15.5.10", + "react-is": "^16.12.0", + "react-lifecycles-compat": "^3.0.4", + "shallowequal": "^1.1.0" + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + } + } + }, "rc-image": { "version": "5.12.1", "resolved": "https://registry.npmmirror.com/rc-image/-/rc-image-5.12.1.tgz", @@ -27266,6 +27568,11 @@ "resolved": "https://registry.npmmirror.com/react-is/-/react-is-17.0.2.tgz", "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, + "react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + }, "react-redux": { "version": "8.0.5", "resolved": "https://registry.npmmirror.com/react-redux/-/react-redux-8.0.5.tgz", @@ -28792,6 +29099,14 @@ "makeerror": "1.0.12" } }, + "warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "requires": { + "loose-envify": "^1.0.0" + } + }, "watchpack": { "version": "2.4.0", "resolved": "https://registry.npmmirror.com/watchpack/-/watchpack-2.4.0.tgz", diff --git a/package.json b/package.json index 46812eb..1f7b620 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,7 @@ "version": "0.1.0", "private": true, "dependencies": { + "@ant-design/compatible": "^5.1.1", "@reduxjs/toolkit": "^1.9.1", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", diff --git a/src/pages/Invoice/InvoiceListView.css b/src/pages/Invoice/InvoiceListView.css new file mode 100644 index 0000000..1e77d22 --- /dev/null +++ b/src/pages/Invoice/InvoiceListView.css @@ -0,0 +1,13 @@ +.simpleSearchBar{ + height:40px; + width:100%; + position: center; + text-align: center; +} +.simpleSearch{ + + text-align: left; +} +.uploadButton{ + +} \ No newline at end of file diff --git a/src/pages/Invoice/InvoiceListView.tsx b/src/pages/Invoice/InvoiceListView.tsx new file mode 100644 index 0000000..e2acaee --- /dev/null +++ b/src/pages/Invoice/InvoiceListView.tsx @@ -0,0 +1,212 @@ +import {Card, Dropdown, List,Menu,Input,Button,Radio,Divider} from "antd"; +import type { MenuProps } from 'antd'; +import { Icon } from '@ant-design/compatible' +import { DownOutlined,UploadOutlined } from '@ant-design/icons'; +import React, {ReactElement, JSXElementConstructor, ReactFragment, ReactPortal,useState } from "react"; +import {Invoice} from "../../models/Staff" +import { Space, Typography } from 'antd'; +import {SizeType} from "antd/es/config-provider/SizeContext"; +const {Meta} = Card; +const { Search } = Input; +const onSearch = (value: string) => { + console.log(value) +}; + +function InvoiceListView() { + class InvoiceSimpleSearch extends React.Component { + constructor(props:{}) { + super(props); + this.state = { + activatedOption:"发票代码", + searchContent:'请在此输入' + } + } + render(){ + const items: MenuProps['items'] = [ + { + key:'1', + label:(this.setState({activatedOption:"发票代码"})}> + 发票代码 + ) + }, + { + key:'2', + label:(this.setState({activatedOption:"发票编号"})}> + 发票编号 + ) + } + ]; + return ( +
+ + + + {this.state.activatedOption} + + + + } + placeholder={this.state.searchContent} + allowClear + onSearch={onSearch} + style={{ width: 304 }} + enterButton + /> + +
+ ) + } + } + class InvoiceViewBar extends React.Component{ + constructor(props:{}) { + super(props); + } + + render(){ + return( + + ) + } + } + class InvoiceItem extends React.Component { + constructor(props: { invoice: Invoice }) { + super(props); + this.state = { + invoiceKind: props.invoice.invoiceKind, + invoiceAmount: props.invoice.invoiceAmount, + invoiceDate: props.invoice.invoiceDate, + invoiceNo: props.invoice.invoiceNo, + } + } + + + render() { + return ( + } + > +
+
  • {this.state.invoiceNo}
  • +
  • {this.state.invoiceKind}
  • +
  • ¥{this.state.invoiceAmount}
  • +
  • {this.state.invoiceDate}
  • +
    +
    + ) + } + } + + const invoices: Array = [ + { + invoiceNo: "123", + invoiceCode: "123456", + invoiceDate: "2022-12-26", + invoiceUploader: "yyq", + invoiceUploadTime: "2022-12-26 23:02:31", + invoiceState: -1, + invoiceApprovalOpinion: "sjfdfsd", + invoiceNote: "", + invoiceKind: "商务", + invoiceAmount: 12345, + reimbursementId: 124972, + modified: false + + }, + { + invoiceNo: "124", + invoiceCode: "123456", + invoiceDate: "2022-12-26", + invoiceUploader: "yyq", + invoiceUploadTime: "2022-12-26 23:02:31", + invoiceState: -1, + invoiceApprovalOpinion: "sjfdfsd", + invoiceNote: "", + invoiceKind: "商务", + invoiceAmount: 12345, + reimbursementId: 124972, + modified: false + + }, + { + invoiceNo: "125", + invoiceCode: "123456", + invoiceDate: "2022-12-26", + invoiceUploader: "yyq", + invoiceUploadTime: "2022-12-26 23:02:31", + invoiceState: -1, + invoiceApprovalOpinion: "sjfdfsd", + invoiceNote: "", + invoiceKind: "商务", + invoiceAmount: 12345, + reimbursementId: 124972, + modified: false + + }, + { + invoiceNo: "126", + invoiceCode: "123456", + invoiceDate: "2022-12-26", + invoiceUploader: "yyq", + invoiceUploadTime: "2022-12-26 23:02:31", + invoiceState: -1, + invoiceApprovalOpinion: "sjfdfsd", + invoiceNote: "", + invoiceKind: "商务", + invoiceAmount: 12345, + reimbursementId: 124972, + modified: false + + }, + { + invoiceNo: "127", + invoiceCode: "123456", + invoiceDate: "2022-12-26", + invoiceUploader: "yyq", + invoiceUploadTime: "2022-12-26 23:02:31", + invoiceState: -1, + invoiceApprovalOpinion: "sjfdfsd", + invoiceNote: "", + invoiceKind: "商务", + invoiceAmount: 12345, + reimbursementId: 124972, + modified: false + + }, + ]; + function InvoiceList(invoices: Array){ + return ( +
    + +
    + {invoices.map((item)=> + + )} + +
    +
    + ) + } + return ( + InvoiceList(invoices) + ) +} + +export default InvoiceListView \ No newline at end of file diff --git a/src/router/router.tsx b/src/router/router.tsx index de1ae3e..6ccea02 100644 --- a/src/router/router.tsx +++ b/src/router/router.tsx @@ -1,6 +1,7 @@ import {createBrowserRouter, redirect} from "react-router-dom"; import LoginView from "../pages/Login/LoginView"; import HomeView from "../pages/HomeView"; +import InvoiceListView from "../pages/Invoice/InvoiceListView"; const router = createBrowserRouter([ { @@ -11,6 +12,10 @@ const router = createBrowserRouter([ path: "/", element: , }, + { + path: "/list", + element: , + } ]); export default router \ No newline at end of file