From 958e925a44c9ad2a2fb754b8fd682280e2a73a7c Mon Sep 17 00:00:00 2001 From: "yang.yongquan" <3395816735@qq.com> Date: Wed, 28 Dec 2022 14:32:37 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E5=8F=91?= =?UTF-8?q?=E7=A5=A8=E5=A4=9A=E4=B8=AA=E7=95=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/models/Staff.ts | 2 +- src/pages/Invoice/mine/InvoiceListView.tsx | 96 ++++++++++---------- src/pages/Invoice/mine/InvoiceUploadView.tsx | 4 + 3 files changed, 51 insertions(+), 51 deletions(-) diff --git a/src/models/Staff.ts b/src/models/Staff.ts index 666fed7..0384193 100644 --- a/src/models/Staff.ts +++ b/src/models/Staff.ts @@ -95,7 +95,7 @@ export class InvoiceCommit { invoiceCheckCode:string invoiceRegionCode: Nullable invoiceSellerTaxCode:Nullable - invoiceExtraInfo:Nullable|[] + invoiceExtraInfo:Nullable|[]|Map constructor() { this.invoiceFileName = "" this.invoiceNo = "" diff --git a/src/pages/Invoice/mine/InvoiceListView.tsx b/src/pages/Invoice/mine/InvoiceListView.tsx index fa69d1b..ccbcb66 100644 --- a/src/pages/Invoice/mine/InvoiceListView.tsx +++ b/src/pages/Invoice/mine/InvoiceListView.tsx @@ -167,51 +167,51 @@ class InvoiceSearch extends React.Component { {this.state.complexEnabled&& -
-
- - - - +
+ + + + + - - - - - - - - - - - - - - -
} + + + +
+ + + + + + + + + + +
} ) @@ -269,7 +269,7 @@ class InvoiceListView extends React.Component { pageNum: 1, pageSize: 20, totalNum: 2, - PaginationKey: -23 + PaginationKey: -2 } this.searchInvoiceContent() } @@ -310,7 +310,7 @@ class InvoiceListView extends React.Component { } handleInvoicesTotalNum(value: Number) { - this.setState({totalNum: Number, PaginationKey: -Number}) + this.setState({totalNum: value, PaginationKey: -value}) } handleInvoicesContent = (value: Array) => { @@ -329,10 +329,6 @@ class InvoiceListView extends React.Component { )} - { handleCancel = () => { this.setOpen(false); }; + + handleUploadCanCel = () => { + this.setUploadOpen(false); + } submit=()=>{ let result=this.formRef.current!.getFieldsValue() result.invoiceDate=result.invoiceDate.format("YYYY-MM-DD") From d13b3f45d4d72d26ba7824b80eb4fb1cbf5e4d02 Mon Sep 17 00:00:00 2001 From: "yang.yongquan" <3395816735@qq.com> Date: Wed, 28 Dec 2022 14:38:09 +0800 Subject: [PATCH 2/5] =?UTF-8?q?Karlis=20=E8=BF=9B=E8=A1=8C=E7=9A=84?= =?UTF-8?q?=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/Invoice/mine/InvoiceUploadView.tsx | 43 ++++++++++++-------- 1 file changed, 25 insertions(+), 18 deletions(-) diff --git a/src/pages/Invoice/mine/InvoiceUploadView.tsx b/src/pages/Invoice/mine/InvoiceUploadView.tsx index f966b44..7ee2fe3 100644 --- a/src/pages/Invoice/mine/InvoiceUploadView.tsx +++ b/src/pages/Invoice/mine/InvoiceUploadView.tsx @@ -98,15 +98,19 @@ class InvoiceUploadView extends React.Component{ let result = new InvoiceCommit() result.invoiceNo = response.data.invoiceNo result.invoiceDate = dayjs(response.data.invoiceDate) + result.invoiceAmountWithoutTax = response.data.invoiceAmountWithoutTax result.invoiceAmount = response.data.invoiceAmount result.invoiceCode = response.data.invoiceCode result.invoiceCheckCode = response.data.invoiceCheckCode result.invoiceKind = response.data.invoiceKind result.invoiceFileName = response.data.invoiceFileName result.invoiceExtraInfo = "" - for(let i=0;i { + result.invoiceExtraInfo+=(key+": "+response.data.invoiceExtraInfo[key]+"\n") + }); + // for(let i=0;i{ submit=()=>{ let result=this.formRef.current!.getFieldsValue() result.invoiceDate=result.invoiceDate.format("YYYY-MM-DD") - let extraInfo=[] - let line = result.invoiceExtraInfo.split('\n') - for(let i=0;i entry.split(": "))) + console.log(result.invoiceExtraInfo.split("\n").map((entry: string) => entry.split(": "))) + // let extraInfo=[] + // let line = result.invoiceExtraInfo.split('\n') + // for(let i=0;i{ > - {/**/} - {/* */} - {/**/} + + + Date: Wed, 28 Dec 2022 15:11:24 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=86=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E5=92=8C=E6=8A=A5=E9=94=80=E6=98=BE=E7=A4=BA=E7=95=8C?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/git_toolbox_prj.xml | 15 + package-lock.json | 785 ++++++++++++++++++ package.json | 1 + .../reimbursement/mine/MyReimbursement.tsx | 119 ++- 4 files changed, 919 insertions(+), 1 deletion(-) create mode 100644 .idea/git_toolbox_prj.xml diff --git a/.idea/git_toolbox_prj.xml b/.idea/git_toolbox_prj.xml new file mode 100644 index 0000000..02b915b --- /dev/null +++ b/.idea/git_toolbox_prj.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 77e9908..524596b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,7 @@ "name": "financial-reimbursement", "version": "0.1.0", "dependencies": { + "@ant-design/pro-components": "^2.3.47", "@reduxjs/toolkit": "^1.9.1", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", @@ -97,6 +98,302 @@ "resolved": "https://registry.npmmirror.com/@ant-design/icons-svg/-/icons-svg-4.2.1.tgz", "integrity": "sha512-EB0iwlKDGpG93hW8f85CTJTs4SvMX7tt5ceupvhALp1IF44SeUFOMhKUOYqpsoYWQKAOuTRDMqn75rEaKDp0Xw==" }, + "node_modules/@ant-design/pro-card": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@ant-design/pro-card/-/pro-card-2.1.6.tgz", + "integrity": "sha512-V0ksQs56u2NjFZ7Sj6+cFQSWDlMJUfwLyp4pRoA9yY6/1r2xhafDTQqMNZRX97JEzuWWBlBgapDikxd6gRvTxw==", + "dependencies": { + "@ant-design/icons": "^4.2.1", + "@ant-design/pro-provider": "2.2.0", + "@ant-design/pro-utils": "2.5.0", + "@babel/runtime": "^7.18.0", + "classnames": "^2.2.6", + "omit.js": "^2.0.2", + "rc-util": "^5.4.0" + }, + "peerDependencies": { + "antd": ">=4.23.0", + "react": ">=16.9.0" + } + }, + "node_modules/@ant-design/pro-components": { + "version": "2.3.47", + "resolved": "https://registry.npmjs.org/@ant-design/pro-components/-/pro-components-2.3.47.tgz", + "integrity": "sha512-OxF7MTG0EKefe3XLA5+/QA9Ay3gqWEDB70I6wnV3nORtfaruFiqdwVsKsjGdvT6RzfOnswMazKgENrFgB9CQpQ==", + "dependencies": { + "@ant-design/pro-card": "2.1.6", + "@ant-design/pro-descriptions": "2.0.39", + "@ant-design/pro-field": "2.2.0", + "@ant-design/pro-form": "2.4.7", + "@ant-design/pro-layout": "7.4.0", + "@ant-design/pro-list": "2.0.40", + "@ant-design/pro-provider": "2.2.0", + "@ant-design/pro-skeleton": "2.0.7", + "@ant-design/pro-table": "3.2.7", + "@ant-design/pro-utils": "2.5.0", + "@babel/runtime": "^7.16.3" + }, + "peerDependencies": { + "antd": ">=4.23.0", + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@ant-design/pro-descriptions": { + "version": "2.0.39", + "resolved": "https://registry.npmjs.org/@ant-design/pro-descriptions/-/pro-descriptions-2.0.39.tgz", + "integrity": "sha512-E2G5SqP4xwwQxhZcD02Bl57N6G70vKnEvePHjuZd3+jRSN+gniEwYGfaksKPFojqxa+/68exwjpEqI0ZwQ+4Rg==", + "dependencies": { + "@ant-design/pro-field": "2.2.0", + "@ant-design/pro-form": "2.4.7", + "@ant-design/pro-skeleton": "2.0.7", + "@ant-design/pro-utils": "2.5.0", + "@babel/runtime": "^7.18.0", + "rc-util": "^5.0.6", + "use-json-comparison": "^1.0.5" + }, + "peerDependencies": { + "antd": ">=4.23.0", + "react": ">=16.9.0" + } + }, + "node_modules/@ant-design/pro-field": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ant-design/pro-field/-/pro-field-2.2.0.tgz", + "integrity": "sha512-ep46+Ng+xCyOzkIYt4tofDqhjJ9qoZ+ZLnF8dYRuKwhZ3pnYIRB290b76DfMO9hv+/n+yEyTrGL8kPKN/lWSsA==", + "dependencies": { + "@ant-design/icons": "^4.2.1", + "@ant-design/pro-provider": "2.2.0", + "@ant-design/pro-utils": "2.5.0", + "@babel/runtime": "^7.18.0", + "@chenshuai2144/sketch-color": "^1.0.8", + "classnames": "^2.2.6", + "dayjs": "^1.11.4", + "lodash.tonumber": "^4.0.3", + "omit.js": "^2.0.2", + "rc-util": "^5.4.0", + "swr": "^2.0.0" + }, + "peerDependencies": { + "antd": ">=4.23.0", + "react": ">=16.9.0" + } + }, + "node_modules/@ant-design/pro-form": { + "version": "2.4.7", + "resolved": "https://registry.npmjs.org/@ant-design/pro-form/-/pro-form-2.4.7.tgz", + "integrity": "sha512-i60BzCJTcx14ds/Gm5dXQB/m1wCHIGEYN1TIPiDrolPNWVT9sKQeMSNAW4vH24mVN8HMiBSS+3mw1qdYFbS76w==", + "dependencies": { + "@ant-design/icons": "^4.2.1", + "@ant-design/pro-field": "2.2.0", + "@ant-design/pro-provider": "2.2.0", + "@ant-design/pro-utils": "2.5.0", + "@babel/runtime": "^7.18.0", + "@umijs/use-params": "^1.0.9", + "classnames": "^2.2.6", + "lodash.merge": "^4.6.2", + "omit.js": "^2.0.2", + "rc-resize-observer": "^1.1.0", + "rc-util": "^5.0.6", + "use-json-comparison": "^1.0.5", + "use-media-antd-query": "^1.1.0" + }, + "peerDependencies": { + "@types/lodash.merge": "^4.6.7", + "antd": ">=4.23.0", + "rc-field-form": "^1.22.0", + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + }, + "peerDependenciesMeta": { + "@types/lodash.merge": { + "optional": true + } + } + }, + "node_modules/@ant-design/pro-layout": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@ant-design/pro-layout/-/pro-layout-7.4.0.tgz", + "integrity": "sha512-lZmGEyK1Xzs/H0KdrckI+O35izgH/X5nVLWpdbc6Oxgwt/OairE2l6xkD2IvHLacCaSTrLYiYNDi4e75vokd0A==", + "dependencies": { + "@ant-design/icons": "^4.0.0", + "@ant-design/pro-provider": "2.2.0", + "@ant-design/pro-utils": "2.5.0", + "@babel/runtime": "^7.18.0", + "@umijs/route-utils": "^2.1.0", + "@umijs/use-params": "^1.0.9", + "classnames": "^2.2.6", + "lodash.merge": "^4.6.2", + "omit.js": "^2.0.2", + "path-to-regexp": "2.4.0", + "rc-resize-observer": "^1.1.0", + "rc-util": "^5.0.6", + "swr": "^2.0.0", + "unstated-next": "^1.1.0", + "use-json-comparison": "^1.0.3", + "use-media-antd-query": "^1.1.0", + "warning": "^4.0.3" + }, + "peerDependencies": { + "antd": ">=4.23.0", + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@ant-design/pro-layout/node_modules/path-to-regexp": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.4.0.tgz", + "integrity": "sha512-G6zHoVqC6GGTQkZwF4lkuEyMbVOjoBKAEybQUypI1WTkqinCOrq2x6U2+phkJ1XsEMTy4LjtwPI7HW+NVrRR2w==" + }, + "node_modules/@ant-design/pro-list": { + "version": "2.0.40", + "resolved": "https://registry.npmjs.org/@ant-design/pro-list/-/pro-list-2.0.40.tgz", + "integrity": "sha512-MprN5zsdB1BxAMbq4bunPPp256eJzXBtfgcT/hD9VC7LhtdyjfK42THhjDNoxntiUxb40VYnTLBnPZH93wnkUg==", + "dependencies": { + "@ant-design/icons": "^4.0.0", + "@ant-design/pro-card": "2.1.6", + "@ant-design/pro-field": "2.2.0", + "@ant-design/pro-table": "3.2.7", + "@babel/runtime": "^7.18.0", + "classnames": "^2.2.6", + "dayjs": "^1.11.4", + "rc-resize-observer": "^1.0.0", + "rc-util": "^4.19.0", + "unstated-next": "^1.1.0", + "use-media-antd-query": "^1.1.0" + }, + "peerDependencies": { + "antd": ">=4.23.0", + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@ant-design/pro-list/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/@ant-design/pro-list/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/@ant-design/pro-provider": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ant-design/pro-provider/-/pro-provider-2.2.0.tgz", + "integrity": "sha512-2btLst0MxU3+xfiNsahShqOweokKqhCn0wuJjy/G/n/g1Sb9/p4qZ4RBs6aY8Q5KAa2OhILIVkJxFhoNn58jaw==", + "dependencies": { + "@ant-design/cssinjs": "^1.0.0", + "@babel/runtime": "^7.18.0", + "@ctrl/tinycolor": "^3.4.0", + "rc-util": "^5.0.1", + "swr": "^2.0.0" + }, + "peerDependencies": { + "antd": ">=4.23.0", + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@ant-design/pro-skeleton": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@ant-design/pro-skeleton/-/pro-skeleton-2.0.7.tgz", + "integrity": "sha512-7RoCUVgWDTGrWeNuFlscsxrrXc5jshYXk6gjkQKospR0hQ1AK/aWlkttAAaqDFZlvPxSyLu8w11TmquRuYcNcg==", + "dependencies": { + "@babel/runtime": "^7.18.0", + "use-media-antd-query": "^1.1.0" + }, + "peerDependencies": { + "antd": ">=4.23.0", + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@ant-design/pro-table": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/@ant-design/pro-table/-/pro-table-3.2.7.tgz", + "integrity": "sha512-6NFIcwDyDso7rwIJdO1bNSqTA2sYwepvHRdbe/ceJAk5f8QTB4y81QDrifx6Cpdfj2PwGAU/9r7x5reuaYl4sQ==", + "dependencies": { + "@ant-design/icons": "^4.1.0", + "@ant-design/pro-card": "2.1.6", + "@ant-design/pro-field": "2.2.0", + "@ant-design/pro-form": "2.4.7", + "@ant-design/pro-provider": "2.2.0", + "@ant-design/pro-utils": "2.5.0", + "@babel/runtime": "^7.18.0", + "classnames": "^2.2.6", + "dayjs": "^1.11.4", + "omit.js": "^2.0.2", + "rc-util": "^5.0.1", + "react-sortable-hoc": "^2.0.0", + "unstated-next": "^1.1.0", + "use-json-comparison": "^1.0.5", + "use-media-antd-query": "^1.1.0" + }, + "peerDependencies": { + "antd": ">=4.23.0", + "rc-field-form": "^1.22.0", + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@ant-design/pro-table/node_modules/react-sortable-hoc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/react-sortable-hoc/-/react-sortable-hoc-2.0.0.tgz", + "integrity": "sha512-JZUw7hBsAHXK7PTyErJyI7SopSBFRcFHDjWW5SWjcugY0i6iH7f+eJkY8cJmGMlZ1C9xz1J3Vjz0plFpavVeRg==", + "dependencies": { + "@babel/runtime": "^7.2.0", + "invariant": "^2.2.4", + "prop-types": "^15.5.7" + }, + "peerDependencies": { + "prop-types": "^15.5.7", + "react": "^16.3.0 || ^17.0.0", + "react-dom": "^16.3.0 || ^17.0.0" + } + }, + "node_modules/@ant-design/pro-utils": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@ant-design/pro-utils/-/pro-utils-2.5.0.tgz", + "integrity": "sha512-Wby8SCV+kUGi2Q8dAz+FD+UT5EtXAF3n+K3nB3qjosdvD6cvootlTOSj8qYL8GHPG2AjSBW2E51oh3L9D2r3kQ==", + "dependencies": { + "@ant-design/icons": "^4.3.0", + "@ant-design/pro-provider": "2.2.0", + "@babel/runtime": "^7.18.0", + "classnames": "^2.2.6", + "dayjs": "^1.11.4", + "rc-util": "^5.0.6", + "react-sortable-hoc": "^2.0.0", + "swr": "^2.0.0" + }, + "peerDependencies": { + "antd": ">=4.23.0", + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@ant-design/pro-utils/node_modules/react-sortable-hoc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/react-sortable-hoc/-/react-sortable-hoc-2.0.0.tgz", + "integrity": "sha512-JZUw7hBsAHXK7PTyErJyI7SopSBFRcFHDjWW5SWjcugY0i6iH7f+eJkY8cJmGMlZ1C9xz1J3Vjz0plFpavVeRg==", + "dependencies": { + "@babel/runtime": "^7.2.0", + "invariant": "^2.2.4", + "prop-types": "^15.5.7" + }, + "peerDependencies": { + "prop-types": "^15.5.7", + "react": "^16.3.0 || ^17.0.0", + "react-dom": "^16.3.0 || ^17.0.0" + } + }, "node_modules/@ant-design/react-slick": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/@ant-design/react-slick/-/react-slick-1.0.0.tgz", @@ -1938,6 +2235,18 @@ "resolved": "https://registry.npmmirror.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" }, + "node_modules/@chenshuai2144/sketch-color": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@chenshuai2144/sketch-color/-/sketch-color-1.0.8.tgz", + "integrity": "sha512-dPAzzWc+w7zyTAi71WXYZpiTYyIS80MxYyy2E/7jufhnJI1Z29wCPL35VvuJ/gs5zYpF2+w/B7BizWa2zKXpGw==", + "dependencies": { + "reactcss": "^1.2.3", + "tinycolor2": "^1.4.2" + }, + "peerDependencies": { + "react": ">=16.12.0" + } + }, "node_modules/@csstools/normalize.css": { "version": "12.0.0", "resolved": "https://registry.npmmirror.com/@csstools/normalize.css/-/normalize.css-12.0.0.tgz", @@ -3059,6 +3368,11 @@ } } }, + "node_modules/@qixian.cs/path-to-regexp": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@qixian.cs/path-to-regexp/-/path-to-regexp-6.1.0.tgz", + "integrity": "sha512-2jIiLiVZB1jnY7IIRQKtoV8Gnr7XIhk4mC88ONGunZE3hYt5IHUG4BE/6+JiTBjjEWQLBeWnZB8hGpppkufiVw==" + }, "node_modules/@rc-component/mini-decimal": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/@rc-component/mini-decimal/-/mini-decimal-1.0.1.tgz", @@ -4139,6 +4453,25 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, + "node_modules/@umijs/route-utils": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@umijs/route-utils/-/route-utils-2.2.2.tgz", + "integrity": "sha512-cMk6qizy0pfpiwpVCvNQB0BKBUJEH33pDv5q5k2tSleSDw2abkJkTu2Kd5hKzoESLuFK43oGeOfcplZqm2bRxw==", + "dependencies": { + "@qixian.cs/path-to-regexp": "^6.1.0", + "fast-deep-equal": "^3.1.3", + "lodash.isequal": "^4.5.0", + "memoize-one": "^5.1.1" + } + }, + "node_modules/@umijs/use-params": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@umijs/use-params/-/use-params-1.0.9.tgz", + "integrity": "sha512-QlN0RJSBVQBwLRNxbxjQ5qzqYIGn+K7USppMoIOVlf7fxXHsnQZ2bEsa6Pm74bt6DVQxpUE8HqvdStn6Y9FV1w==", + "peerDependencies": { + "react": "*" + } + }, "node_modules/@webassemblyjs/ast": { "version": "1.11.1", "resolved": "https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.11.1.tgz", @@ -4373,6 +4706,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", @@ -8511,6 +8852,14 @@ "node": ">= 0.4" } }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, "node_modules/ipaddr.js": { "version": "2.0.1", "resolved": "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz", @@ -11031,6 +11380,11 @@ "resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz", "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" + }, "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmmirror.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -11046,6 +11400,11 @@ "resolved": "https://registry.npmmirror.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz", "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==" }, + "node_modules/lodash.tonumber": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/lodash.tonumber/-/lodash.tonumber-4.0.3.tgz", + "integrity": "sha512-SY0SwuPOHRwKcCNTdsntPYb+Zddz5mDUIVFABzRMqmAiL41pMeyoQFGxYAw5zdc9NnH4pbJqiqqp5ckfxa+zSA==" + }, "node_modules/lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmmirror.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz", @@ -11145,6 +11504,11 @@ "node": ">= 4.0.0" } }, + "node_modules/memoize-one": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", + "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==" + }, "node_modules/merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz", @@ -11564,6 +11928,11 @@ "resolved": "https://registry.npmmirror.com/obuf/-/obuf-1.1.2.tgz", "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" }, + "node_modules/omit.js": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/omit.js/-/omit.js-2.0.2.tgz", + "integrity": "sha512-hJmu9D+bNB40YpL9jYebQl4lsTW6yEHRTroJzNLqQJYHm7c+NQnJGfZmIWh8S3q3KoaxV1aLhV6B3+0N0/kyJg==" + }, "node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmmirror.com/on-finished/-/on-finished-2.4.1.tgz", @@ -13972,6 +14341,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", @@ -14125,6 +14499,14 @@ } } }, + "node_modules/reactcss": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/reactcss/-/reactcss-1.2.3.tgz", + "integrity": "sha512-KiwVUcFu1RErkI97ywr8nvx8dNOpT03rbnma0SSalTYjkrPYaEajR4a/MRt6DZ46K6arDRbWMNHF+xH7G7n/8A==", + "dependencies": { + "lodash": "^4.0.1" + } + }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/read-cache/-/read-cache-1.0.0.tgz", @@ -15345,6 +15727,20 @@ "boolbase": "~1.0.0" } }, + "node_modules/swr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/swr/-/swr-2.0.0.tgz", + "integrity": "sha512-IhUx5yPkX+Fut3h0SqZycnaNLXLXsb2ECFq0Y29cxnK7d8r7auY2JWNbCW3IX+EqXUg3rwNJFlhrw5Ye/b6k7w==", + "dependencies": { + "use-sync-external-store": "^1.2.0" + }, + "engines": { + "pnpm": "7" + }, + "peerDependencies": { + "react": "^16.11.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmmirror.com/symbol-tree/-/symbol-tree-3.2.4.tgz", @@ -15532,6 +15928,14 @@ "resolved": "https://registry.npmmirror.com/thunky/-/thunky-1.1.0.tgz", "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" }, + "node_modules/tinycolor2": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.5.1.tgz", + "integrity": "sha512-BHlrsGeYN2OpkRpfAgkEwCMu6w8Quq8JkK/mp4c55NZP7OwceJObR1CPZt62TqiA0Y3J5pwuDX+fXDqc35REtg==", + "engines": { + "node": "*" + } + }, "node_modules/tmpl": { "version": "1.0.5", "resolved": "https://registry.npmmirror.com/tmpl/-/tmpl-1.0.5.tgz", @@ -15799,6 +16203,11 @@ "resolved": "https://registry.npmmirror.com/unquote/-/unquote-1.1.1.tgz", "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==" }, + "node_modules/unstated-next": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unstated-next/-/unstated-next-1.1.0.tgz", + "integrity": "sha512-AAn47ZncPvgBGOvMcn8tSRxsrqwf2VdAPxLASTuLJvZt4rhKfDvUkmYZLGfclImSfTVMv7tF4ynaVxin0JjDCA==" + }, "node_modules/upath": { "version": "1.2.0", "resolved": "https://registry.npmmirror.com/upath/-/upath-1.2.0.tgz", @@ -15840,6 +16249,22 @@ "requires-port": "^1.0.0" } }, + "node_modules/use-json-comparison": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/use-json-comparison/-/use-json-comparison-1.0.6.tgz", + "integrity": "sha512-xPadt5yMRbEmVfOSGFSMqjjICrq7nLbfSH3rYIXsrtcuFX7PmbYDN/ku8ObBn3v8o/yZelO1OxUS5+5TI3+fUw==", + "peerDependencies": { + "react": ">=16.9.0" + } + }, + "node_modules/use-media-antd-query": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/use-media-antd-query/-/use-media-antd-query-1.1.0.tgz", + "integrity": "sha512-B6kKZwNV4R+l4Rl11sWO7HqOay9alzs1Vp1b4YJqjz33YxbltBCZtt/yxXxkXN9rc1S7OeEL/GbwC30Wmqhw6Q==", + "peerDependencies": { + "react": ">=16.9.0" + } + }, "node_modules/use-sync-external-store": { "version": "1.2.0", "resolved": "https://registry.npmmirror.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", @@ -15933,6 +16358,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", @@ -16864,6 +17297,240 @@ "resolved": "https://registry.npmmirror.com/@ant-design/icons-svg/-/icons-svg-4.2.1.tgz", "integrity": "sha512-EB0iwlKDGpG93hW8f85CTJTs4SvMX7tt5ceupvhALp1IF44SeUFOMhKUOYqpsoYWQKAOuTRDMqn75rEaKDp0Xw==" }, + "@ant-design/pro-card": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@ant-design/pro-card/-/pro-card-2.1.6.tgz", + "integrity": "sha512-V0ksQs56u2NjFZ7Sj6+cFQSWDlMJUfwLyp4pRoA9yY6/1r2xhafDTQqMNZRX97JEzuWWBlBgapDikxd6gRvTxw==", + "requires": { + "@ant-design/icons": "^4.2.1", + "@ant-design/pro-provider": "2.2.0", + "@ant-design/pro-utils": "2.5.0", + "@babel/runtime": "^7.18.0", + "classnames": "^2.2.6", + "omit.js": "^2.0.2", + "rc-util": "^5.4.0" + } + }, + "@ant-design/pro-components": { + "version": "2.3.47", + "resolved": "https://registry.npmjs.org/@ant-design/pro-components/-/pro-components-2.3.47.tgz", + "integrity": "sha512-OxF7MTG0EKefe3XLA5+/QA9Ay3gqWEDB70I6wnV3nORtfaruFiqdwVsKsjGdvT6RzfOnswMazKgENrFgB9CQpQ==", + "requires": { + "@ant-design/pro-card": "2.1.6", + "@ant-design/pro-descriptions": "2.0.39", + "@ant-design/pro-field": "2.2.0", + "@ant-design/pro-form": "2.4.7", + "@ant-design/pro-layout": "7.4.0", + "@ant-design/pro-list": "2.0.40", + "@ant-design/pro-provider": "2.2.0", + "@ant-design/pro-skeleton": "2.0.7", + "@ant-design/pro-table": "3.2.7", + "@ant-design/pro-utils": "2.5.0", + "@babel/runtime": "^7.16.3" + } + }, + "@ant-design/pro-descriptions": { + "version": "2.0.39", + "resolved": "https://registry.npmjs.org/@ant-design/pro-descriptions/-/pro-descriptions-2.0.39.tgz", + "integrity": "sha512-E2G5SqP4xwwQxhZcD02Bl57N6G70vKnEvePHjuZd3+jRSN+gniEwYGfaksKPFojqxa+/68exwjpEqI0ZwQ+4Rg==", + "requires": { + "@ant-design/pro-field": "2.2.0", + "@ant-design/pro-form": "2.4.7", + "@ant-design/pro-skeleton": "2.0.7", + "@ant-design/pro-utils": "2.5.0", + "@babel/runtime": "^7.18.0", + "rc-util": "^5.0.6", + "use-json-comparison": "^1.0.5" + } + }, + "@ant-design/pro-field": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ant-design/pro-field/-/pro-field-2.2.0.tgz", + "integrity": "sha512-ep46+Ng+xCyOzkIYt4tofDqhjJ9qoZ+ZLnF8dYRuKwhZ3pnYIRB290b76DfMO9hv+/n+yEyTrGL8kPKN/lWSsA==", + "requires": { + "@ant-design/icons": "^4.2.1", + "@ant-design/pro-provider": "2.2.0", + "@ant-design/pro-utils": "2.5.0", + "@babel/runtime": "^7.18.0", + "@chenshuai2144/sketch-color": "^1.0.8", + "classnames": "^2.2.6", + "dayjs": "^1.11.4", + "lodash.tonumber": "^4.0.3", + "omit.js": "^2.0.2", + "rc-util": "^5.4.0", + "swr": "^2.0.0" + } + }, + "@ant-design/pro-form": { + "version": "2.4.7", + "resolved": "https://registry.npmjs.org/@ant-design/pro-form/-/pro-form-2.4.7.tgz", + "integrity": "sha512-i60BzCJTcx14ds/Gm5dXQB/m1wCHIGEYN1TIPiDrolPNWVT9sKQeMSNAW4vH24mVN8HMiBSS+3mw1qdYFbS76w==", + "requires": { + "@ant-design/icons": "^4.2.1", + "@ant-design/pro-field": "2.2.0", + "@ant-design/pro-provider": "2.2.0", + "@ant-design/pro-utils": "2.5.0", + "@babel/runtime": "^7.18.0", + "@umijs/use-params": "^1.0.9", + "classnames": "^2.2.6", + "lodash.merge": "^4.6.2", + "omit.js": "^2.0.2", + "rc-resize-observer": "^1.1.0", + "rc-util": "^5.0.6", + "use-json-comparison": "^1.0.5", + "use-media-antd-query": "^1.1.0" + } + }, + "@ant-design/pro-layout": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@ant-design/pro-layout/-/pro-layout-7.4.0.tgz", + "integrity": "sha512-lZmGEyK1Xzs/H0KdrckI+O35izgH/X5nVLWpdbc6Oxgwt/OairE2l6xkD2IvHLacCaSTrLYiYNDi4e75vokd0A==", + "requires": { + "@ant-design/icons": "^4.0.0", + "@ant-design/pro-provider": "2.2.0", + "@ant-design/pro-utils": "2.5.0", + "@babel/runtime": "^7.18.0", + "@umijs/route-utils": "^2.1.0", + "@umijs/use-params": "^1.0.9", + "classnames": "^2.2.6", + "lodash.merge": "^4.6.2", + "omit.js": "^2.0.2", + "path-to-regexp": "2.4.0", + "rc-resize-observer": "^1.1.0", + "rc-util": "^5.0.6", + "swr": "^2.0.0", + "unstated-next": "^1.1.0", + "use-json-comparison": "^1.0.3", + "use-media-antd-query": "^1.1.0", + "warning": "^4.0.3" + }, + "dependencies": { + "path-to-regexp": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.4.0.tgz", + "integrity": "sha512-G6zHoVqC6GGTQkZwF4lkuEyMbVOjoBKAEybQUypI1WTkqinCOrq2x6U2+phkJ1XsEMTy4LjtwPI7HW+NVrRR2w==" + } + } + }, + "@ant-design/pro-list": { + "version": "2.0.40", + "resolved": "https://registry.npmjs.org/@ant-design/pro-list/-/pro-list-2.0.40.tgz", + "integrity": "sha512-MprN5zsdB1BxAMbq4bunPPp256eJzXBtfgcT/hD9VC7LhtdyjfK42THhjDNoxntiUxb40VYnTLBnPZH93wnkUg==", + "requires": { + "@ant-design/icons": "^4.0.0", + "@ant-design/pro-card": "2.1.6", + "@ant-design/pro-field": "2.2.0", + "@ant-design/pro-table": "3.2.7", + "@babel/runtime": "^7.18.0", + "classnames": "^2.2.6", + "dayjs": "^1.11.4", + "rc-resize-observer": "^1.0.0", + "rc-util": "^4.19.0", + "unstated-next": "^1.1.0", + "use-media-antd-query": "^1.1.0" + }, + "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==" + } + } + }, + "@ant-design/pro-provider": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ant-design/pro-provider/-/pro-provider-2.2.0.tgz", + "integrity": "sha512-2btLst0MxU3+xfiNsahShqOweokKqhCn0wuJjy/G/n/g1Sb9/p4qZ4RBs6aY8Q5KAa2OhILIVkJxFhoNn58jaw==", + "requires": { + "@ant-design/cssinjs": "^1.0.0", + "@babel/runtime": "^7.18.0", + "@ctrl/tinycolor": "^3.4.0", + "rc-util": "^5.0.1", + "swr": "^2.0.0" + } + }, + "@ant-design/pro-skeleton": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@ant-design/pro-skeleton/-/pro-skeleton-2.0.7.tgz", + "integrity": "sha512-7RoCUVgWDTGrWeNuFlscsxrrXc5jshYXk6gjkQKospR0hQ1AK/aWlkttAAaqDFZlvPxSyLu8w11TmquRuYcNcg==", + "requires": { + "@babel/runtime": "^7.18.0", + "use-media-antd-query": "^1.1.0" + } + }, + "@ant-design/pro-table": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/@ant-design/pro-table/-/pro-table-3.2.7.tgz", + "integrity": "sha512-6NFIcwDyDso7rwIJdO1bNSqTA2sYwepvHRdbe/ceJAk5f8QTB4y81QDrifx6Cpdfj2PwGAU/9r7x5reuaYl4sQ==", + "requires": { + "@ant-design/icons": "^4.1.0", + "@ant-design/pro-card": "2.1.6", + "@ant-design/pro-field": "2.2.0", + "@ant-design/pro-form": "2.4.7", + "@ant-design/pro-provider": "2.2.0", + "@ant-design/pro-utils": "2.5.0", + "@babel/runtime": "^7.18.0", + "classnames": "^2.2.6", + "dayjs": "^1.11.4", + "omit.js": "^2.0.2", + "rc-util": "^5.0.1", + "react-sortable-hoc": "^2.0.0", + "unstated-next": "^1.1.0", + "use-json-comparison": "^1.0.5", + "use-media-antd-query": "^1.1.0" + }, + "dependencies": { + "react-sortable-hoc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/react-sortable-hoc/-/react-sortable-hoc-2.0.0.tgz", + "integrity": "sha512-JZUw7hBsAHXK7PTyErJyI7SopSBFRcFHDjWW5SWjcugY0i6iH7f+eJkY8cJmGMlZ1C9xz1J3Vjz0plFpavVeRg==", + "requires": { + "@babel/runtime": "^7.2.0", + "invariant": "^2.2.4", + "prop-types": "^15.5.7" + } + } + } + }, + "@ant-design/pro-utils": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@ant-design/pro-utils/-/pro-utils-2.5.0.tgz", + "integrity": "sha512-Wby8SCV+kUGi2Q8dAz+FD+UT5EtXAF3n+K3nB3qjosdvD6cvootlTOSj8qYL8GHPG2AjSBW2E51oh3L9D2r3kQ==", + "requires": { + "@ant-design/icons": "^4.3.0", + "@ant-design/pro-provider": "2.2.0", + "@babel/runtime": "^7.18.0", + "classnames": "^2.2.6", + "dayjs": "^1.11.4", + "rc-util": "^5.0.6", + "react-sortable-hoc": "^2.0.0", + "swr": "^2.0.0" + }, + "dependencies": { + "react-sortable-hoc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/react-sortable-hoc/-/react-sortable-hoc-2.0.0.tgz", + "integrity": "sha512-JZUw7hBsAHXK7PTyErJyI7SopSBFRcFHDjWW5SWjcugY0i6iH7f+eJkY8cJmGMlZ1C9xz1J3Vjz0plFpavVeRg==", + "requires": { + "@babel/runtime": "^7.2.0", + "invariant": "^2.2.4", + "prop-types": "^15.5.7" + } + } + } + }, "@ant-design/react-slick": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/@ant-design/react-slick/-/react-slick-1.0.0.tgz", @@ -18106,6 +18773,15 @@ "resolved": "https://registry.npmmirror.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" }, + "@chenshuai2144/sketch-color": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@chenshuai2144/sketch-color/-/sketch-color-1.0.8.tgz", + "integrity": "sha512-dPAzzWc+w7zyTAi71WXYZpiTYyIS80MxYyy2E/7jufhnJI1Z29wCPL35VvuJ/gs5zYpF2+w/B7BizWa2zKXpGw==", + "requires": { + "reactcss": "^1.2.3", + "tinycolor2": "^1.4.2" + } + }, "@csstools/normalize.css": { "version": "12.0.0", "resolved": "https://registry.npmmirror.com/@csstools/normalize.css/-/normalize.css-12.0.0.tgz", @@ -18920,6 +19596,11 @@ "source-map": "^0.7.3" } }, + "@qixian.cs/path-to-regexp": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@qixian.cs/path-to-regexp/-/path-to-regexp-6.1.0.tgz", + "integrity": "sha512-2jIiLiVZB1jnY7IIRQKtoV8Gnr7XIhk4mC88ONGunZE3hYt5IHUG4BE/6+JiTBjjEWQLBeWnZB8hGpppkufiVw==" + }, "@rc-component/mini-decimal": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/@rc-component/mini-decimal/-/mini-decimal-1.0.1.tgz", @@ -19779,6 +20460,23 @@ "eslint-visitor-keys": "^3.3.0" } }, + "@umijs/route-utils": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@umijs/route-utils/-/route-utils-2.2.2.tgz", + "integrity": "sha512-cMk6qizy0pfpiwpVCvNQB0BKBUJEH33pDv5q5k2tSleSDw2abkJkTu2Kd5hKzoESLuFK43oGeOfcplZqm2bRxw==", + "requires": { + "@qixian.cs/path-to-regexp": "^6.1.0", + "fast-deep-equal": "^3.1.3", + "lodash.isequal": "^4.5.0", + "memoize-one": "^5.1.1" + } + }, + "@umijs/use-params": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@umijs/use-params/-/use-params-1.0.9.tgz", + "integrity": "sha512-QlN0RJSBVQBwLRNxbxjQ5qzqYIGn+K7USppMoIOVlf7fxXHsnQZ2bEsa6Pm74bt6DVQxpUE8HqvdStn6Y9FV1w==", + "requires": {} + }, "@webassemblyjs/ast": { "version": "1.11.1", "resolved": "https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.11.1.tgz", @@ -19989,6 +20687,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", @@ -23257,6 +23963,14 @@ "side-channel": "^1.0.4" } }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "requires": { + "loose-envify": "^1.0.0" + } + }, "ipaddr.js": { "version": "2.0.1", "resolved": "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz", @@ -25209,6 +25923,11 @@ "resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz", "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" }, + "lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" + }, "lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmmirror.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -25224,6 +25943,11 @@ "resolved": "https://registry.npmmirror.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz", "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==" }, + "lodash.tonumber": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/lodash.tonumber/-/lodash.tonumber-4.0.3.tgz", + "integrity": "sha512-SY0SwuPOHRwKcCNTdsntPYb+Zddz5mDUIVFABzRMqmAiL41pMeyoQFGxYAw5zdc9NnH4pbJqiqqp5ckfxa+zSA==" + }, "lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmmirror.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz", @@ -25307,6 +26031,11 @@ "fs-monkey": "^1.0.3" } }, + "memoize-one": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", + "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==" + }, "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz", @@ -25629,6 +26358,11 @@ "resolved": "https://registry.npmmirror.com/obuf/-/obuf-1.1.2.tgz", "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" }, + "omit.js": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/omit.js/-/omit.js-2.0.2.tgz", + "integrity": "sha512-hJmu9D+bNB40YpL9jYebQl4lsTW6yEHRTroJzNLqQJYHm7c+NQnJGfZmIWh8S3q3KoaxV1aLhV6B3+0N0/kyJg==" + }, "on-finished": { "version": "2.4.1", "resolved": "https://registry.npmmirror.com/on-finished/-/on-finished-2.4.1.tgz", @@ -27283,6 +28017,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", @@ -27380,6 +28119,14 @@ "workbox-webpack-plugin": "^6.4.1" } }, + "reactcss": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/reactcss/-/reactcss-1.2.3.tgz", + "integrity": "sha512-KiwVUcFu1RErkI97ywr8nvx8dNOpT03rbnma0SSalTYjkrPYaEajR4a/MRt6DZ46K6arDRbWMNHF+xH7G7n/8A==", + "requires": { + "lodash": "^4.0.1" + } + }, "read-cache": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/read-cache/-/read-cache-1.0.0.tgz", @@ -28360,6 +29107,14 @@ } } }, + "swr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/swr/-/swr-2.0.0.tgz", + "integrity": "sha512-IhUx5yPkX+Fut3h0SqZycnaNLXLXsb2ECFq0Y29cxnK7d8r7auY2JWNbCW3IX+EqXUg3rwNJFlhrw5Ye/b6k7w==", + "requires": { + "use-sync-external-store": "^1.2.0" + } + }, "symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmmirror.com/symbol-tree/-/symbol-tree-3.2.4.tgz", @@ -28499,6 +29254,11 @@ "resolved": "https://registry.npmmirror.com/thunky/-/thunky-1.1.0.tgz", "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" }, + "tinycolor2": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.5.1.tgz", + "integrity": "sha512-BHlrsGeYN2OpkRpfAgkEwCMu6w8Quq8JkK/mp4c55NZP7OwceJObR1CPZt62TqiA0Y3J5pwuDX+fXDqc35REtg==" + }, "tmpl": { "version": "1.0.5", "resolved": "https://registry.npmmirror.com/tmpl/-/tmpl-1.0.5.tgz", @@ -28702,6 +29462,11 @@ "resolved": "https://registry.npmmirror.com/unquote/-/unquote-1.1.1.tgz", "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==" }, + "unstated-next": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unstated-next/-/unstated-next-1.1.0.tgz", + "integrity": "sha512-AAn47ZncPvgBGOvMcn8tSRxsrqwf2VdAPxLASTuLJvZt4rhKfDvUkmYZLGfclImSfTVMv7tF4ynaVxin0JjDCA==" + }, "upath": { "version": "1.2.0", "resolved": "https://registry.npmmirror.com/upath/-/upath-1.2.0.tgz", @@ -28733,6 +29498,18 @@ "requires-port": "^1.0.0" } }, + "use-json-comparison": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/use-json-comparison/-/use-json-comparison-1.0.6.tgz", + "integrity": "sha512-xPadt5yMRbEmVfOSGFSMqjjICrq7nLbfSH3rYIXsrtcuFX7PmbYDN/ku8ObBn3v8o/yZelO1OxUS5+5TI3+fUw==", + "requires": {} + }, + "use-media-antd-query": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/use-media-antd-query/-/use-media-antd-query-1.1.0.tgz", + "integrity": "sha512-B6kKZwNV4R+l4Rl11sWO7HqOay9alzs1Vp1b4YJqjz33YxbltBCZtt/yxXxkXN9rc1S7OeEL/GbwC30Wmqhw6Q==", + "requires": {} + }, "use-sync-external-store": { "version": "1.2.0", "resolved": "https://registry.npmmirror.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", @@ -28809,6 +29586,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 f4d66f5..3b50e96 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,7 @@ "version": "0.1.0", "private": true, "dependencies": { + "@ant-design/pro-components": "^2.3.47", "@reduxjs/toolkit": "^1.9.1", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", diff --git a/src/pages/reimbursement/mine/MyReimbursement.tsx b/src/pages/reimbursement/mine/MyReimbursement.tsx index 3ce04e8..e025809 100644 --- a/src/pages/reimbursement/mine/MyReimbursement.tsx +++ b/src/pages/reimbursement/mine/MyReimbursement.tsx @@ -1,6 +1,123 @@ +import { DownOutlined } from '@ant-design/icons'; +import type { ProColumns } from '@ant-design/pro-components'; +import { ProTable } from '@ant-design/pro-components'; +import { Button } from 'antd'; + +const valueEnum = { + 0: 'close', + 1: 'running', + 2: 'online', + 3: 'error', +}; + +export type TableListItem = { + id:string; + kind: string; + invoiceKind: string; + amount: number; + status: string; + department: string; + submitDateTime: string; +}; +const tableListDataSource: TableListItem[] = [ + { + id:"123", + kind: "string", + invoiceKind: "string", + amount: 1234, + status: "string", + department: "string", + submitDateTime: "string", + } +]; + + +const columns: ProColumns[] = [ + { + title: '报销单号', + width: 80, + dataIndex: 'id', + render: (_) => {_}, + }, + { + title: '申请事由', + width: 80, + dataIndex: 'kind', + render: (_) => {_}, + }, + { + title: '发票类型', + width: 80, + dataIndex: 'invoiceKind', + render: (_) => {_}, + }, + { + title: '金额', + width: 80, + dataIndex: 'amount', + render: (_) => {_}, + sorter:(a,b)=> a.amount - b.amount + }, + { + title: '状态', + width: 80, + dataIndex: 'status', + render: (_) => {_}, + }, + { + title: '申请部门', + width: 80, + dataIndex: 'department', + render: (_) => {_}, + }, + { + title: '申请时间', + width: 80, + dataIndex: 'submitDateTime', + render: (_) => {_}, + }, +]; + +function makeTable() { + return ( + + columns={columns} + request={(params, sorter, filter) => { + // 表单搜索项会从 params 传入,传递给后端接口。 + console.log(params, sorter, filter); + return Promise.resolve({ + data: tableListDataSource, + success: true, + }); + }} + rowKey="key" + pagination={{ + showQuickJumper: true, + }} + search={{ + optionRender: false, + collapsed: false, + }} + dateFormatter="string" + headerTitle="表格标题" + toolBarRender={() => [ + , + , + , + ]} + /> + ); +}; function MyReimbursement() { return( -
我的报销
+
我的报销 + {makeTable()} +
) } export default MyReimbursement \ No newline at end of file From 0d9e429d8660f8dc40b06bcf95ff98666318b43a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=B0=81=E7=BE=BD?= <2360164671@qq.com> Date: Wed, 28 Dec 2022 17:04:39 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E6=90=AD=E5=BB=BA=E8=A1=A8=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reimbursement/mine/MyReimbursement.tsx | 181 ++++++++++++++---- 1 file changed, 142 insertions(+), 39 deletions(-) diff --git a/src/pages/reimbursement/mine/MyReimbursement.tsx b/src/pages/reimbursement/mine/MyReimbursement.tsx index e025809..cb67d1c 100644 --- a/src/pages/reimbursement/mine/MyReimbursement.tsx +++ b/src/pages/reimbursement/mine/MyReimbursement.tsx @@ -1,34 +1,86 @@ import { DownOutlined } from '@ant-design/icons'; import type { ProColumns } from '@ant-design/pro-components'; import { ProTable } from '@ant-design/pro-components'; -import { Button } from 'antd'; +import {Button, Dropdown, Input, Space, Typography} from 'antd'; +import React from "react"; +import Search from "antd/es/input/Search"; const valueEnum = { - 0: 'close', - 1: 'running', - 2: 'online', - 3: 'error', + 0: 'success', + 1: 'wait1', + 2: 'wait2', + 3: 'wait3', + 4: 'wait4', + 5: 'failure' }; export type TableListItem = { id:string; kind: string; - invoiceKind: string; + amount: number; status: string; department: string; - submitDateTime: string; + submitDateTime: number; + detail: string; }; const tableListDataSource: TableListItem[] = [ + { id:"123", kind: "string", - invoiceKind: "string", - amount: 1234, - status: "string", + amount: 1200.0, + status: valueEnum[5], department: "string", - submitDateTime: "string", - } + submitDateTime: Date.now()-100000000, + detail: "查看详情", + }, + { + id:"123", + kind: "string", + detail: "查看详情", + amount: 1200.0, + status: valueEnum[4], + department: "string", + submitDateTime: Date.now()-100000000, + }, + + { + id:"123", + kind: "string", + detail: "查看详情", + amount: 1200.0, + status: valueEnum[3], + department: "string", + submitDateTime: Date.now()-100000000, + }, + { + id:"123", + kind: "string", + detail: "查看详情", + amount: 500, + status: valueEnum[2], + department: "string", + submitDateTime: Date.now(), + }, + { + id:"123", + kind: "string", + detail: "查看详情", + amount: 1200.0, + status: valueEnum[1], + department: "string", + submitDateTime: Date.now()-100000000, + }, + { + id:"123", + kind: "string", + detail: "查看详情", + amount: 1200.0, + status: valueEnum[0], + department: "string", + submitDateTime: Date.now()-100000000, + }, ]; @@ -37,43 +89,64 @@ const columns: ProColumns[] = [ title: '报销单号', width: 80, dataIndex: 'id', - render: (_) => {_}, + search:false, + //render: (_) => {_}, }, { - title: '申请事由', + title: '报销类型', width: 80, dataIndex: 'kind', - render: (_) => {_}, - }, - { - title: '发票类型', - width: 80, - dataIndex: 'invoiceKind', - render: (_) => {_}, + search:false, + //render: (_) => {_}, }, { title: '金额', width: 80, dataIndex: 'amount', - render: (_) => {_}, + search:false, + //render: (_) => {_}, sorter:(a,b)=> a.amount - b.amount }, { title: '状态', width: 80, dataIndex: 'status', - render: (_) => {_}, + filters: true, + onFilter: true, + search:false, + valueEnum: { + wait1: { text: '待主管审批', status: 'Processing' }, + wait2: { text: '待财务审批', status: 'Processing' }, + wait3: { text: '待财务主管审批', status: 'Processing' }, + wait4: { text: '待总经理审批', status: 'Processing' }, + success: { text: '已报销', status: 'Success' }, + failure: { text: '审批未通过', status: 'Error' }, + }, + + //render: (_) => {_}, }, { title: '申请部门', width: 80, + search:false, dataIndex: 'department', - render: (_) => {_}, + //render: (_) => {_}, }, { title: '申请时间', width: 80, dataIndex: 'submitDateTime', + valueType: 'dateTime', + search:false, + sorter:(a,b)=> a.submitDateTime-b.submitDateTime + //render: (_) => {_}, + }, + + { + title: '申请详情', + width: 80, + dataIndex: 'detail', + search:false, render: (_) => {_}, }, ]; @@ -92,32 +165,62 @@ function makeTable() { }} rowKey="key" pagination={{ + pageSize:5, showQuickJumper: true, }} + // toolbar={{ + // title: '这里是标题', + // subTitle: '这里是子标题', + // tooltip: '这是一个段描述', + // search: { + // onSearch: (value: string) => { + // alert(value); + // }, + // }, + // }} search={{ - optionRender: false, - collapsed: false, + defaultCollapsed: false, + labelWidth: 'auto', + resetText:" ", + optionRender: ({ searchText }, { form }) => { + // console.log(searchConfig, formProps, dom) + return [ + { + + }} + style={{width: 304,marginLeft:-30}} + enterButton + + />, + + ] + } }} dateFormatter="string" - headerTitle="表格标题" - toolBarRender={() => [ - , - , - , - ]} + // toolBarRender={() => [ + // , + // , + // , + // ]} /> ); }; function MyReimbursement() { return( -
我的报销 + <> {makeTable()} -
+ ) } export default MyReimbursement \ No newline at end of file From a0308dcd86f7db341a30ca0f6ac8926512d69f9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=B0=81=E7=BE=BD?= <2360164671@qq.com> Date: Thu, 29 Dec 2022 00:16:34 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E5=AE=8C=E6=88=90=E6=90=9C=E7=B4=A2,?= =?UTF-8?q?=E5=88=86=E9=A1=B5=E9=80=BB=E8=BE=91;=E5=BE=85=E6=8E=A5?= =?UTF-8?q?=E5=85=A5=E6=95=B0=E6=8D=AE=E9=80=9A=E4=BF=A1,=E6=96=B0?= =?UTF-8?q?=E5=BB=BA=E6=8A=A5=E9=94=80=E5=8D=95,=E6=9F=A5=E7=9C=8B?= =?UTF-8?q?=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/models/Staff.ts | 15 + .../reimbursement/mine/MyReimbursement.tsx | 395 +++++++++++------- 2 files changed, 259 insertions(+), 151 deletions(-) diff --git a/src/models/Staff.ts b/src/models/Staff.ts index 0384193..c4b2a03 100644 --- a/src/models/Staff.ts +++ b/src/models/Staff.ts @@ -123,4 +123,19 @@ export class InvoiceCommit { this.invoiceSellerTaxCode = props.get("invoiceSellerTaxCode")!.toString() //this.invoiceExtraInfo = props.get("invoiceExtraInfo")!. } +} +export interface Reimbursement { + reimbursementActualAmount: number; + reimbursementBillingTime: string; + reimbursementId: number; + reimbursementKindId: string; + reimbursementNote: string; + reimbursementSubmitDepartmentId: number; + reimbursementSubmitStaffId: string; + reimbursementSubmitTime: string; + approvalOpinion: string; + approvalResult: number; + approvalStaffId: string; + approvalStaffName: string; + processOrder: number; } \ No newline at end of file diff --git a/src/pages/reimbursement/mine/MyReimbursement.tsx b/src/pages/reimbursement/mine/MyReimbursement.tsx index cb67d1c..1277c75 100644 --- a/src/pages/reimbursement/mine/MyReimbursement.tsx +++ b/src/pages/reimbursement/mine/MyReimbursement.tsx @@ -1,9 +1,12 @@ -import { DownOutlined } from '@ant-design/icons'; -import type { ProColumns } from '@ant-design/pro-components'; -import { ProTable } from '@ant-design/pro-components'; +import {DownOutlined} from '@ant-design/icons'; +import type {ActionType, ProColumns, ProFormInstance} from '@ant-design/pro-components'; +import {ProTable} from '@ant-design/pro-components'; import {Button, Dropdown, Input, Space, Typography} from 'antd'; -import React from "react"; +import React, {ReactNode, useRef} from "react"; import Search from "antd/es/input/Search"; +import axiosInstance from "../../../utils/axiosInstance"; +import {FormProps} from "antd/es/form/Form"; +import {FormInstance} from "antd/es/form"; const valueEnum = { 0: 'success', @@ -15,7 +18,7 @@ const valueEnum = { }; export type TableListItem = { - id:string; + id: string; kind: string; amount: number; @@ -24,203 +27,293 @@ export type TableListItem = { submitDateTime: number; detail: string; }; -const tableListDataSource: TableListItem[] = [ +let fakeData: TableListItem[] = [ { - id:"123", + id: "123", kind: "string", - amount: 1200.0, + amount: 5.0, status: valueEnum[5], department: "string", - submitDateTime: Date.now()-100000000, + submitDateTime: Date.now() - 100000000, detail: "查看详情", }, { - id:"123", + id: "123", kind: "string", detail: "查看详情", - amount: 1200.0, + amount: 4.0, status: valueEnum[4], department: "string", - submitDateTime: Date.now()-100000000, + submitDateTime: Date.now() - 100000000, }, { - id:"123", + id: "123", kind: "string", detail: "查看详情", - amount: 1200.0, + amount: 3.0, status: valueEnum[3], department: "string", - submitDateTime: Date.now()-100000000, + submitDateTime: Date.now() - 100000000, }, { - id:"123", + id: "123", kind: "string", detail: "查看详情", - amount: 500, + amount: 2, status: valueEnum[2], department: "string", submitDateTime: Date.now(), }, { - id:"123", + id: "123", kind: "string", detail: "查看详情", - amount: 1200.0, + amount: 1, status: valueEnum[1], department: "string", - submitDateTime: Date.now()-100000000, + submitDateTime: Date.now() - 100000000, }, { - id:"123", + id: "123", kind: "string", detail: "查看详情", - amount: 1200.0, + amount: 0.0, status: valueEnum[0], department: "string", - submitDateTime: Date.now()-100000000, + submitDateTime: Date.now() - 100000000, }, ]; +for (let i = 0; i < 94; i++) + fakeData.push({ + id: "123", + kind: "string", + detail: "查看详情", + amount: i, + status: valueEnum[0], + department: "string", + submitDateTime: Date.now() - 100000000, + }) +for (let i = 0; i < fakeData.length; i++) + fakeData[i].amount = i + 1 -const columns: ProColumns[] = [ - { - title: '报销单号', - width: 80, - dataIndex: 'id', - search:false, - //render: (_) => {_}, - }, - { - title: '报销类型', - width: 80, - dataIndex: 'kind', - search:false, - //render: (_) => {_}, - }, - { - title: '金额', - width: 80, - dataIndex: 'amount', - search:false, - //render: (_) => {_}, - sorter:(a,b)=> a.amount - b.amount - }, - { - title: '状态', - width: 80, - dataIndex: 'status', - filters: true, - onFilter: true, - search:false, - valueEnum: { - wait1: { text: '待主管审批', status: 'Processing' }, - wait2: { text: '待财务审批', status: 'Processing' }, - wait3: { text: '待财务主管审批', status: 'Processing' }, - wait4: { text: '待总经理审批', status: 'Processing' }, - success: { text: '已报销', status: 'Success' }, - failure: { text: '审批未通过', status: 'Error' }, + + +function pullAll() { + let params + axiosInstance({ + url: 'reimbursement/list', + method: 'get', + params: params + }).then(response => { + console.log(response.data) + }).catch(function (error) { + console.log(error) + }) +} + +class Subpage extends React.Component { + tableAction = React.createRef(); + constructor(props: { }) { + super(props); + this.state={ + searchWord:"" + } + } + columns: ProColumns[] = [ + { + title: '报销单号', + width: 80, + dataIndex: 'id', + search: false, + //render: (_) => {_}, + }, + { + title: '报销类型', + width: 80, + dataIndex: 'kind', + search: false, + //render: (_) => {_}, + }, + { + title: '金额', + width: 80, + dataIndex: 'amount', + search: false, + //render: (_) => {_}, + sorter: (a, b) => a.amount - b.amount + }, + { + title: '状态', + width: 80, + dataIndex: 'status', + filters: true, + onFilter: true, + search: false, + valueEnum: { + wait1: {text: '待主管审批', status: 'Processing'}, + wait2: {text: '待财务审批', status: 'Processing'}, + wait3: {text: '待财务主管审批', status: 'Processing'}, + wait4: {text: '待总经理审批', status: 'Processing'}, + success: {text: '已报销', status: 'Success'}, + failure: {text: '审批未通过', status: 'Error'}, + }, + + //render: (_) => {_}, + }, + { + title: '申请部门', + width: 80, + search: false, + dataIndex: 'department', + //render: (_) => {_}, + }, + { + title: '申请时间', + width: 80, + dataIndex: 'submitDateTime', + valueType: 'dateTime', + search: false, + sorter: (a, b) => a.submitDateTime - b.submitDateTime + //render: (_) => {_}, }, - //render: (_) => {_}, - }, - { - title: '申请部门', - width: 80, - search:false, - dataIndex: 'department', - //render: (_) => {_}, - }, - { - title: '申请时间', - width: 80, - dataIndex: 'submitDateTime', - valueType: 'dateTime', - search:false, - sorter:(a,b)=> a.submitDateTime-b.submitDateTime - //render: (_) => {_}, - }, + { + title: '申请详情', + width: 80, + dataIndex: 'detail', + search: false, + render: (_, row, index, action) => [ + { + this.showDetail(row) + }} + > + 查看详情 + , + ], + }, + ]; + search(value: string, form: FormProps['form'], dom: ReactNode[]) { + this.setState({searchWord:value}); + if(value===""){ + // @ts-ignore + this.tableAction.current.reloadAndRest() + } + this.tableAction.current?.reload() + } - { - title: '申请详情', - width: 80, - dataIndex: 'detail', - search:false, - render: (_) => {_}, - }, -]; + create() { + alert("123") + } -function makeTable() { - return ( - - columns={columns} - request={(params, sorter, filter) => { - // 表单搜索项会从 params 传入,传递给后端接口。 - console.log(params, sorter, filter); - return Promise.resolve({ - data: tableListDataSource, - success: true, - }); - }} - rowKey="key" - pagination={{ - pageSize:5, - showQuickJumper: true, - }} - // toolbar={{ - // title: '这里是标题', - // subTitle: '这里是子标题', - // tooltip: '这是一个段描述', - // search: { - // onSearch: (value: string) => { - // alert(value); - // }, - // }, - // }} - search={{ - defaultCollapsed: false, - labelWidth: 'auto', - resetText:" ", - optionRender: ({ searchText }, { form }) => { - // console.log(searchConfig, formProps, dom) - return [ - { + showDetail(row: TableListItem) { + alert((new Date(row.submitDateTime))) + } - }} - style={{width: 304,marginLeft:-30}} - enterButton - />, - - ] - } - }} - dateFormatter="string" - // toolBarRender={() => [ - // , - // , - // , - // ]} - /> - ); -}; + + updateRequest(current: number | undefined, pageSize: number | undefined){ + // @ts-ignore + if(this.state.searchWord.trim()===""){ + current = (current === undefined ? 0 : current) + pageSize = (pageSize === undefined ? 5 : pageSize) + let tableListDataSource = fakeData.slice(pageSize * current - pageSize, pageSize * current) + console.log(current, pageSize, tableListDataSource.length) + let totalRecordLength = fakeData.length + return Promise.resolve({ + data: tableListDataSource, + success: true, + total: totalRecordLength, + pageSize: pageSize + }); + }else{ + let tableListDataSource = fakeData.slice(0,1) + return Promise.resolve({ + data: tableListDataSource, + success: true, + total: tableListDataSource.length, + }); + } + + } + render() { + return ( + + actionRef={this.tableAction} + columns={this.columns} + request={async (params, sorter, filter) => { + // 表单搜索项会从 params 传入,传递给后端接口。 + console.log(params, sorter, filter); + return this.updateRequest(params.current, params.pageSize) + + }} + rowKey="key" + pagination={{ + defaultPageSize: 5, + pageSizeOptions: [5, 10, 20, 50, 100], + showQuickJumper: true, + }} + // toolbar={{ + // title: '这里是标题', + // subTitle: '这里是子标题', + // tooltip: '这是一个段描述', + // search: { + // onSearch: (value: string) => { + // alert(value); + // }, + // }, + // }} + search={{ + defaultCollapsed: false, + labelWidth: 'auto', + optionRender: ({searchText}, {form}, dom) => { + // console.log(searchConfig, formProps, dom) + return [ +
+ { + this.search(value, form, dom) + }} + enterButton + + /> + +
+ ] + } + }} + + dateFormatter="string" + // toolBarRender={() => [ + // , + // , + // , + // ]} + /> + ); + } +} + function MyReimbursement() { - return( + return ( <> - {makeTable()} + ) } + export default MyReimbursement \ No newline at end of file