diff --git a/.DS_Store b/.DS_Store index efd6a62..5aa1738 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/.env b/.env index 9a0ce4d..0e43446 100644 --- a/.env +++ b/.env @@ -1,2 +1,3 @@ -REACT_APP_BASE_URL=http://162.254.37.253:8082/api/v1 -SKIP_PREFLIGHT_CHECK=true \ No newline at end of file +SKIP_PREFLIGHT_CHECK=true +REACT_APP_BASE_URL=https://matontrading.com +REACT_APP_ORIGIN_URL=https://matontrading.com \ No newline at end of file diff --git a/env b/env deleted file mode 100644 index 1a6f907..0000000 --- a/env +++ /dev/null @@ -1 +0,0 @@ -REACT_APP_BASE_URL=http://14.29.101.215:30303/api/v1 \ No newline at end of file diff --git a/env-temp b/env-temp new file mode 100644 index 0000000..2ae76de --- /dev/null +++ b/env-temp @@ -0,0 +1,9 @@ +SKIP_PREFLIGHT_CHECK=true +REACT_APP_BASE_URL=https://matontrading.com +REACT_APP_ORIGIN_URL=https://matontrading.com + +# Prod +SKIP_PREFLIGHT_CHECK=true +REACT_APP_BASE_URL=http://203.161.61.234:8082 +REACT_APP_ORIGIN_URL=http://162.254.37.253:8086 + diff --git a/package-lock.json b/package-lock.json index 2606c96..9df4552 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,6 +36,7 @@ "react-canvas-nest": "^1.0.10", "react-dom": "^16.13.1", "react-flow-renderer": "^10.3.17", + "react-quill": "^2.0.0", "react-redux": "^7.1.3", "react-router-breadcrumbs-hoc": "^3.2.4", "react-router-dom": "^5.1.2", @@ -3889,6 +3890,14 @@ "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.8.tgz", "integrity": "sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw==" }, + "node_modules/@types/quill": { + "version": "1.3.10", + "resolved": "https://registry.npmjs.org/@types/quill/-/quill-1.3.10.tgz", + "integrity": "sha512-IhW3fPW+bkt9MLNlycw8u8fWb7oO7W5URC9MfZYHBlA24rex9rs23D5DETChu1zvgVdc5ka64ICjJOgQMr6Shw==", + "dependencies": { + "parchment": "^1.1.2" + } + }, "node_modules/@types/react": { "version": "16.14.60", "resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.60.tgz", @@ -17303,6 +17312,11 @@ "no-case": "^2.2.0" } }, + "node_modules/parchment": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/parchment/-/parchment-1.1.4.tgz", + "integrity": "sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg==" + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -19031,6 +19045,42 @@ } ] }, + "node_modules/quill": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/quill/-/quill-1.3.7.tgz", + "integrity": "sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g==", + "dependencies": { + "clone": "^2.1.1", + "deep-equal": "^1.0.1", + "eventemitter3": "^2.0.3", + "extend": "^3.0.2", + "parchment": "^1.1.4", + "quill-delta": "^3.6.2" + } + }, + "node_modules/quill-delta": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/quill-delta/-/quill-delta-3.6.3.tgz", + "integrity": "sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg==", + "dependencies": { + "deep-equal": "^1.0.1", + "extend": "^3.0.2", + "fast-diff": "1.1.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/quill-delta/node_modules/fast-diff": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.1.2.tgz", + "integrity": "sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig==" + }, + "node_modules/quill/node_modules/eventemitter3": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz", + "integrity": "sha512-jLN68Dx5kyFHaePoXWPsCGW5qdyZQtLYHkxkg02/Mz6g0kYpDx4FyP6XfArhQdlOC4b8Mv+EMxPo/8La7Tzghg==" + }, "node_modules/raf": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", @@ -20499,6 +20549,20 @@ "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" }, + "node_modules/react-quill": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/react-quill/-/react-quill-2.0.0.tgz", + "integrity": "sha512-4qQtv1FtCfLgoD3PXAur5RyxuUbPXQGOHgTlFie3jtxp43mXDtzCKaOgQ3mLyZfi1PUlyjycfivKelFhy13QUg==", + "dependencies": { + "@types/quill": "^1.3.10", + "lodash": "^4.17.4", + "quill": "^1.3.7" + }, + "peerDependencies": { + "react": "^16 || ^17 || ^18", + "react-dom": "^16 || ^17 || ^18" + } + }, "node_modules/react-redux": { "version": "7.2.9", "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.9.tgz", @@ -29884,6 +29948,14 @@ "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.8.tgz", "integrity": "sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw==" }, + "@types/quill": { + "version": "1.3.10", + "resolved": "https://registry.npmjs.org/@types/quill/-/quill-1.3.10.tgz", + "integrity": "sha512-IhW3fPW+bkt9MLNlycw8u8fWb7oO7W5URC9MfZYHBlA24rex9rs23D5DETChu1zvgVdc5ka64ICjJOgQMr6Shw==", + "requires": { + "parchment": "^1.1.2" + } + }, "@types/react": { "version": "16.14.60", "resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.60.tgz", @@ -40441,6 +40513,11 @@ "no-case": "^2.2.0" } }, + "parchment": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/parchment/-/parchment-1.1.4.tgz", + "integrity": "sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg==" + }, "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -41797,6 +41874,43 @@ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true }, + "quill": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/quill/-/quill-1.3.7.tgz", + "integrity": "sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g==", + "requires": { + "clone": "^2.1.1", + "deep-equal": "^1.0.1", + "eventemitter3": "^2.0.3", + "extend": "^3.0.2", + "parchment": "^1.1.4", + "quill-delta": "^3.6.2" + }, + "dependencies": { + "eventemitter3": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz", + "integrity": "sha512-jLN68Dx5kyFHaePoXWPsCGW5qdyZQtLYHkxkg02/Mz6g0kYpDx4FyP6XfArhQdlOC4b8Mv+EMxPo/8La7Tzghg==" + } + } + }, + "quill-delta": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/quill-delta/-/quill-delta-3.6.3.tgz", + "integrity": "sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg==", + "requires": { + "deep-equal": "^1.0.1", + "extend": "^3.0.2", + "fast-diff": "1.1.2" + }, + "dependencies": { + "fast-diff": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.1.2.tgz", + "integrity": "sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig==" + } + } + }, "raf": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", @@ -43026,6 +43140,16 @@ "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" }, + "react-quill": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/react-quill/-/react-quill-2.0.0.tgz", + "integrity": "sha512-4qQtv1FtCfLgoD3PXAur5RyxuUbPXQGOHgTlFie3jtxp43mXDtzCKaOgQ3mLyZfi1PUlyjycfivKelFhy13QUg==", + "requires": { + "@types/quill": "^1.3.10", + "lodash": "^4.17.4", + "quill": "^1.3.7" + } + }, "react-redux": { "version": "7.2.9", "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.9.tgz", diff --git a/package.json b/package.json index d0ae962..dc84d8a 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,7 @@ "react-canvas-nest": "^1.0.10", "react-dom": "^16.13.1", "react-flow-renderer": "^10.3.17", + "react-quill": "^2.0.0", "react-redux": "^7.1.3", "react-router-breadcrumbs-hoc": "^3.2.4", "react-router-dom": "^5.1.2", @@ -44,7 +45,7 @@ "start": "cross-env PORT=3000 react-app-rewired start", "test": "react-app-rewired test", "build": "react-app-rewired build", - "deploy": "npm run build && scp -r ./build/* dcfilefast_prod:/data/wwwroot/tarder-admin", + "deploy:dev": "npm run build && scp -r ./build/* dcfilefast_prod:/data/wwwroot/tarder-admin", "deploy:prod": "npm run build && scp -r ./build/* metatrader_prod:/data/wwwroot/admin-matontrading.com" }, "eslintConfig": { diff --git a/src/api/index.ts b/src/api/index.ts index 0ac0afd..d212055 100644 --- a/src/api/index.ts +++ b/src/api/index.ts @@ -147,7 +147,7 @@ export default { return $axios.post('/admin/emailRecords', data) }, get_operationRecord(data: object) { - return $axios.post('/admin/emailRecords', data) + return $axios.post('/admin/operationLog', data) }, get_walletRecord(data: object) { return $axios.post('/admin/walletDetails', data) @@ -161,5 +161,8 @@ export default { verify_googleCode(data: object) { return $axios.post('/admin/verifyAuthenticator', data) }, + copy_tradeapi(data: object) { + return $axios.post('/admin/copytradeapi', data) + }, } diff --git a/src/pages/manage/deposit.tsx b/src/pages/manage/deposit.tsx index 60cf9a8..b5aa16e 100644 --- a/src/pages/manage/deposit.tsx +++ b/src/pages/manage/deposit.tsx @@ -8,6 +8,7 @@ const DepositManage = () => { const columns = [ { "dataIndex": "account", "title": "MT账户", width: 200 }, { "dataIndex": "deposit_method", "title": "存款方式", width: 240 }, + { "dataIndex": "amount", "title": "存款金额", width: 200 }, { "dataIndex": "time", "title": "时间", render: (time) => (
{getTime(time * 1000)}
diff --git a/src/pages/review/deposit.tsx b/src/pages/review/deposit.tsx index 857b850..f747c6f 100644 --- a/src/pages/review/deposit.tsx +++ b/src/pages/review/deposit.tsx @@ -34,6 +34,11 @@ const DepositReview = () => { dataIndex: 'status', width: 150, }, + { + title: '存款金额', + dataIndex: 'amount', + width: 150, + }, { title: '存款方式', dataIndex: 'deposit_method', diff --git a/src/pages/system-log/operationLog.tsx b/src/pages/system-log/operationLog.tsx index 0b8f7e3..831f520 100644 --- a/src/pages/system-log/operationLog.tsx +++ b/src/pages/system-log/operationLog.tsx @@ -6,39 +6,24 @@ const OperationLog = () => { const columns = [ { - title: '接受帐号', - dataIndex: 'account', - width: 260 - }, - { - title: '详细', - dataIndex: 'detail', + dataIndex: 'id', + title: 'id', width: 200 }, { - title: 'ID', - dataIndex: 'id', - width: 200 + dataIndex: 'operator', + title: '操作人', + width: 260 }, { - title: '状态', - dataIndex: 'status', + dataIndex: 'operator_type', + title: '操作类型', width: 200 }, { title: '时间', dataIndex: 'time', render: (text) => new Date(text * 1000).toLocaleString(), // 将时间戳转换为人类可读的格式 - width: 200 - }, - { - title: '标题', - dataIndex: 'title', - width: 200 - }, - { - title: '类型', - dataIndex: 'type', }, ]; diff --git a/src/pages/system/notify.tsx b/src/pages/system/notify.tsx index 650f62c..a468af0 100644 --- a/src/pages/system/notify.tsx +++ b/src/pages/system/notify.tsx @@ -3,7 +3,10 @@ import MyTable from "@/components/MyTable" import { getTime } from "@/utils" import { DeleteFilled, EditOutlined } from "@ant-design/icons" import { Button, Form, Input, Modal, Popconfirm, Switch, Tooltip, notification } from "antd" +import TextArea from "antd/lib/input/TextArea" import React, { useEffect, useRef, useState } from "react" +import ReactQuill from 'react-quill'; +import 'react-quill/dist/quill.snow.css'; const SystemNofify = () => { @@ -12,6 +15,7 @@ const SystemNofify = () => { const [form] = Form.useForm() const currentType = useRef('') const currentItem = useRef({} as any) + const [value, setValue] = useState(''); const columns = [ { @@ -37,8 +41,8 @@ const SystemNofify = () => { }, { "dataIndex": "content", "title": "内容", width: 340, render: (text) => ( - -
{text}
+ }> +
) }, @@ -119,18 +123,19 @@ const SystemNofify = () => { setVisibleModal(false) }} footer={() => null} + width="50%" >
- - - - +