mode
This commit is contained in:
parent
6a86d7a3e4
commit
241c346ef5
|
@ -3858,6 +3858,12 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"base16": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/base16/-/base16-1.0.0.tgz",
|
||||
"integrity": "sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ==",
|
||||
"dev": true
|
||||
},
|
||||
"base64-js": {
|
||||
"version": "1.5.1",
|
||||
"resolved": "https://registry.npm.taobao.org/base64-js/download/base64-js-1.5.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbase64-js%2Fdownload%2Fbase64-js-1.5.1.tgz",
|
||||
|
@ -4745,6 +4751,15 @@
|
|||
"sha.js": "^2.4.8"
|
||||
}
|
||||
},
|
||||
"cross-fetch": {
|
||||
"version": "3.1.5",
|
||||
"resolved": "https://registry.npmmirror.com/cross-fetch/-/cross-fetch-3.1.5.tgz",
|
||||
"integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"node-fetch": "2.6.7"
|
||||
}
|
||||
},
|
||||
"cross-spawn": {
|
||||
"version": "6.0.5",
|
||||
"resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz",
|
||||
|
@ -6984,6 +6999,47 @@
|
|||
"bser": "2.1.1"
|
||||
}
|
||||
},
|
||||
"fbemitter": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/fbemitter/-/fbemitter-3.0.0.tgz",
|
||||
"integrity": "sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"fbjs": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"fbjs": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmmirror.com/fbjs/-/fbjs-3.0.4.tgz",
|
||||
"integrity": "sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"cross-fetch": "^3.1.5",
|
||||
"fbjs-css-vars": "^1.0.0",
|
||||
"loose-envify": "^1.0.0",
|
||||
"object-assign": "^4.1.0",
|
||||
"promise": "^7.1.1",
|
||||
"setimmediate": "^1.0.5",
|
||||
"ua-parser-js": "^0.7.30"
|
||||
},
|
||||
"dependencies": {
|
||||
"promise": {
|
||||
"version": "7.3.1",
|
||||
"resolved": "https://registry.npmmirror.com/promise/-/promise-7.3.1.tgz",
|
||||
"integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"asap": "~2.0.3"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"fbjs-css-vars": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmmirror.com/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz",
|
||||
"integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==",
|
||||
"dev": true
|
||||
},
|
||||
"figgy-pudding": {
|
||||
"version": "3.5.2",
|
||||
"resolved": "https://registry.npm.taobao.org/figgy-pudding/download/figgy-pudding-3.5.2.tgz",
|
||||
|
@ -7133,6 +7189,16 @@
|
|||
"readable-stream": "^2.3.6"
|
||||
}
|
||||
},
|
||||
"flux": {
|
||||
"version": "4.0.3",
|
||||
"resolved": "https://registry.npmmirror.com/flux/-/flux-4.0.3.tgz",
|
||||
"integrity": "sha512-yKAbrp7JhZhj6uiT1FTuVMlIAT1J4jqEyBpFApi1kxpGZCvacMVc/t1pMQyotqHhAgvoE3bNvAykhCo2CLjnYw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"fbemitter": "^3.0.0",
|
||||
"fbjs": "^3.0.1"
|
||||
}
|
||||
},
|
||||
"follow-redirects": {
|
||||
"version": "1.14.1",
|
||||
"resolved": "https://registry.nlark.com/follow-redirects/download/follow-redirects-1.14.1.tgz",
|
||||
|
@ -10387,11 +10453,23 @@
|
|||
"resolved": "https://registry.npm.taobao.org/lodash.clonedeep/download/lodash.clonedeep-4.5.0.tgz",
|
||||
"integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8="
|
||||
},
|
||||
"lodash.curry": {
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmmirror.com/lodash.curry/-/lodash.curry-4.1.1.tgz",
|
||||
"integrity": "sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA==",
|
||||
"dev": true
|
||||
},
|
||||
"lodash.debounce": {
|
||||
"version": "4.0.8",
|
||||
"resolved": "https://registry.npm.taobao.org/lodash.debounce/download/lodash.debounce-4.0.8.tgz",
|
||||
"integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168="
|
||||
},
|
||||
"lodash.flow": {
|
||||
"version": "3.5.0",
|
||||
"resolved": "https://registry.npmmirror.com/lodash.flow/-/lodash.flow-3.5.0.tgz",
|
||||
"integrity": "sha512-ff3BX/tSioo+XojX4MOsOMhJw0nZoUEF011LX8g8d3gvjVbxd89cCio4BCXronjxcTUIJUoqKEUA+n4CqvvRPw==",
|
||||
"dev": true
|
||||
},
|
||||
"lodash.memoize": {
|
||||
"version": "4.1.2",
|
||||
"resolved": "https://registry.npm.taobao.org/lodash.memoize/download/lodash.memoize-4.1.2.tgz",
|
||||
|
@ -10962,6 +11040,39 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"node-fetch": {
|
||||
"version": "2.6.7",
|
||||
"resolved": "https://registry.npmmirror.com/node-fetch/-/node-fetch-2.6.7.tgz",
|
||||
"integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"whatwg-url": "^5.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"tr46": {
|
||||
"version": "0.0.3",
|
||||
"resolved": "https://registry.npmmirror.com/tr46/-/tr46-0.0.3.tgz",
|
||||
"integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
|
||||
"dev": true
|
||||
},
|
||||
"webidl-conversions": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
|
||||
"integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
|
||||
"dev": true
|
||||
},
|
||||
"whatwg-url": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-5.0.0.tgz",
|
||||
"integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"tr46": "~0.0.3",
|
||||
"webidl-conversions": "^3.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"node-forge": {
|
||||
"version": "0.10.0",
|
||||
"resolved": "https://registry.npm.taobao.org/node-forge/download/node-forge-0.10.0.tgz?cache=0&sync_timestamp=1599010730303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-forge%2Fdownload%2Fnode-forge-0.10.0.tgz",
|
||||
|
@ -12949,6 +13060,12 @@
|
|||
"resolved": "https://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz",
|
||||
"integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew="
|
||||
},
|
||||
"pure-color": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmmirror.com/pure-color/-/pure-color-1.3.0.tgz",
|
||||
"integrity": "sha512-QFADYnsVoBMw1srW7OVKEYjG+MbIa49s54w1MA1EDY6r2r/sTcKKYqRX1f4GYvnXP7eN/Pe9HFcX+hwzmrXRHA==",
|
||||
"dev": true
|
||||
},
|
||||
"q": {
|
||||
"version": "1.5.1",
|
||||
"resolved": "https://registry.npm.taobao.org/q/download/q-1.5.1.tgz",
|
||||
|
@ -13446,6 +13563,18 @@
|
|||
"whatwg-fetch": "^3.4.1"
|
||||
}
|
||||
},
|
||||
"react-base16-styling": {
|
||||
"version": "0.6.0",
|
||||
"resolved": "https://registry.npmmirror.com/react-base16-styling/-/react-base16-styling-0.6.0.tgz",
|
||||
"integrity": "sha512-yvh/7CArceR/jNATXOKDlvTnPKPmGZz7zsenQ3jUwLzHkNUR0CvY3yGYJbWJ/nnxsL8Sgmt5cO3/SILVuPO6TQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"base16": "^1.0.0",
|
||||
"lodash.curry": "^4.0.1",
|
||||
"lodash.flow": "^3.3.0",
|
||||
"pure-color": "^1.2.0"
|
||||
}
|
||||
},
|
||||
"react-dev-utils": {
|
||||
"version": "11.0.4",
|
||||
"resolved": "https://registry.nlark.com/react-dev-utils/download/react-dev-utils-11.0.4.tgz?cache=0&sync_timestamp=1630532138318&other_urls=https%3A%2F%2Fregistry.nlark.com%2Freact-dev-utils%2Fdownload%2Freact-dev-utils-11.0.4.tgz",
|
||||
|
@ -13664,6 +13793,24 @@
|
|||
"resolved": "https://registry.npmmirror.com/react-is/download/react-is-16.13.1.tgz?cache=0&sync_timestamp=1632500152465&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Freact-is%2Fdownload%2Freact-is-16.13.1.tgz",
|
||||
"integrity": "sha1-eJcppNw23imZ3BVt1sHZwYzqVqQ="
|
||||
},
|
||||
"react-json-view": {
|
||||
"version": "1.21.3",
|
||||
"resolved": "https://registry.npmmirror.com/react-json-view/-/react-json-view-1.21.3.tgz",
|
||||
"integrity": "sha512-13p8IREj9/x/Ye4WI/JpjhoIwuzEgUAtgJZNBJckfzJt1qyh24BdTm6UQNGnyTq9dapQdrqvquZTo3dz1X6Cjw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"flux": "^4.0.1",
|
||||
"react-base16-styling": "^0.6.0",
|
||||
"react-lifecycles-compat": "^3.0.4",
|
||||
"react-textarea-autosize": "^8.3.2"
|
||||
}
|
||||
},
|
||||
"react-lifecycles-compat": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmmirror.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
|
||||
"integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==",
|
||||
"dev": true
|
||||
},
|
||||
"react-pdf": {
|
||||
"version": "5.6.0",
|
||||
"resolved": "https://registry.npmmirror.com/react-pdf/download/react-pdf-5.6.0.tgz",
|
||||
|
@ -13750,6 +13897,17 @@
|
|||
"tiny-warning": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"react-textarea-autosize": {
|
||||
"version": "8.3.4",
|
||||
"resolved": "https://registry.npmmirror.com/react-textarea-autosize/-/react-textarea-autosize-8.3.4.tgz",
|
||||
"integrity": "sha512-CdtmP8Dc19xL8/R6sWvtknD/eCXkQr30dtvC4VmGInhRsfF8X/ihXCq6+9l9qbxmKRiq407/7z5fxE7cVWQNgQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/runtime": "^7.10.2",
|
||||
"use-composed-ref": "^1.3.0",
|
||||
"use-latest": "^1.2.1"
|
||||
}
|
||||
},
|
||||
"read-pkg": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.nlark.com/read-pkg/download/read-pkg-3.0.0.tgz?cache=0&sync_timestamp=1628984606195&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fread-pkg%2Fdownload%2Fread-pkg-3.0.0.tgz",
|
||||
|
@ -15987,6 +16145,12 @@
|
|||
"is-typedarray": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"ua-parser-js": {
|
||||
"version": "0.7.31",
|
||||
"resolved": "https://registry.npmmirror.com/ua-parser-js/-/ua-parser-js-0.7.31.tgz",
|
||||
"integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==",
|
||||
"dev": true
|
||||
},
|
||||
"unbox-primitive": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npm.taobao.org/unbox-primitive/download/unbox-primitive-1.0.1.tgz?cache=0&sync_timestamp=1616706302651&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funbox-primitive%2Fdownload%2Funbox-primitive-1.0.1.tgz",
|
||||
|
@ -16248,6 +16412,27 @@
|
|||
"resolved": "https://registry.npm.taobao.org/use/download/use-3.1.1.tgz",
|
||||
"integrity": "sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8="
|
||||
},
|
||||
"use-composed-ref": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmmirror.com/use-composed-ref/-/use-composed-ref-1.3.0.tgz",
|
||||
"integrity": "sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==",
|
||||
"dev": true
|
||||
},
|
||||
"use-isomorphic-layout-effect": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmmirror.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz",
|
||||
"integrity": "sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==",
|
||||
"dev": true
|
||||
},
|
||||
"use-latest": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmmirror.com/use-latest/-/use-latest-1.2.1.tgz",
|
||||
"integrity": "sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"use-isomorphic-layout-effect": "^1.1.1"
|
||||
}
|
||||
},
|
||||
"util": {
|
||||
"version": "0.11.1",
|
||||
"resolved": "https://registry.nlark.com/util/download/util-0.11.1.tgz?cache=0&sync_timestamp=1622213047493&other_urls=https%3A%2F%2Fregistry.nlark.com%2Futil%2Fdownload%2Futil-0.11.1.tgz",
|
||||
|
|
|
@ -106,7 +106,8 @@
|
|||
]
|
||||
},
|
||||
"devDependencies": {
|
||||
"axios": "^0.21.1"
|
||||
"axios": "^0.21.1",
|
||||
"react-json-view": "^1.21.3"
|
||||
},
|
||||
"jest": {
|
||||
"roots": [
|
||||
|
|
|
@ -4,6 +4,7 @@ import "echarts/lib/chart/line";
|
|||
import "echarts/lib/chart/pie";
|
||||
import 'echarts/lib/component/grid'
|
||||
import "echarts/lib/component/tooltip"
|
||||
import "echarts/lib/component/dataZoom"
|
||||
import { Card, Row, Col, } from 'antd';
|
||||
import api from "@/api/request"
|
||||
import { connect } from 'react-redux';
|
||||
|
@ -90,7 +91,7 @@ class Dashboard extends Component {
|
|||
showContent: true,
|
||||
borderColor: "#fff",
|
||||
formatter: (params) => {
|
||||
return `<span>${params.data}</span>`
|
||||
return `<span>日期:${this.state.rating['日期'][params.dataIndex]}</span><br/><span>次数:${params.data}</span>`
|
||||
}
|
||||
},
|
||||
grid: {
|
||||
|
@ -99,6 +100,13 @@ class Dashboard extends Component {
|
|||
right: '50px',
|
||||
bottom: '20px',
|
||||
},
|
||||
dataZoom: [
|
||||
{
|
||||
type: 'slider',
|
||||
start: 0,
|
||||
end: 10,
|
||||
},
|
||||
],
|
||||
xAxis: {
|
||||
type: 'category',
|
||||
boundaryGap: false,
|
||||
|
@ -108,7 +116,7 @@ class Dashboard extends Component {
|
|||
},
|
||||
axisTick: {
|
||||
show: false
|
||||
},
|
||||
}
|
||||
},
|
||||
yAxis: {
|
||||
type: 'value',
|
||||
|
@ -289,7 +297,7 @@ class Dashboard extends Component {
|
|||
</Card>
|
||||
</Col>
|
||||
<Col span={16}>
|
||||
<Card title="新增企业信息" style={{ height: 575 }}>
|
||||
<Card title="新增企业信息" style={{ height: 575 }} bodyStyle={{height:'100%'}}>
|
||||
<FeTable minHeight={350} defaultPageSize={5} data={this.state.company} columns={this.state.columns} current={this.state.form.page_no} callback={this.callback.bind(this)} total={this.state.total} pageChange={this.pageChange.bind(this)} onShowSizeChange={this.onShowSizeChange.bind(this)}></FeTable>
|
||||
</Card>
|
||||
</Col>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import React, { useState, useEffect } from 'react'
|
||||
import { Card, Tabs, Row, Layout, Descriptions, Checkbox, Radio,Tag } from 'antd'
|
||||
import { Card, Tabs, Row, Layout, Descriptions, Checkbox, Radio, Tag, message } from 'antd'
|
||||
import api from "@/api/request"
|
||||
import BusinessInformation from './businessInformation';
|
||||
import FinancialData from "./financialData"
|
||||
|
@ -64,29 +64,45 @@ function CompanyDetails(props) {
|
|||
setUpdateTimeArray(e)
|
||||
}
|
||||
|
||||
function copyTxt(value) {
|
||||
const oInput = document.createElement('input');
|
||||
oInput.value = value;
|
||||
document.body.appendChild(oInput);
|
||||
oInput.select();
|
||||
const success = document.execCommand('Copy');
|
||||
if(success){
|
||||
message.info("复制成功")
|
||||
}else{
|
||||
message.warning("复制失败")
|
||||
}
|
||||
oInput.className = 'oInput';
|
||||
oInput.style.display = 'none';
|
||||
document.body.removeChild(oInput);
|
||||
}
|
||||
|
||||
return (
|
||||
<Card>
|
||||
<p style={{ fontWeight: 800 }} >{value['企业名称']}</p>
|
||||
<Descriptions>
|
||||
<Descriptions.Item>
|
||||
<Tag color="#108ee9">企业ID:{props.cid}</Tag>
|
||||
<Tag color="#108ee9">企业ID:<span onClick={()=>copyTxt(props.cid)}>{props.cid}</span></Tag>
|
||||
</Descriptions.Item>
|
||||
<Descriptions.Item>
|
||||
<Tag color="#108ee9">账户邮箱:{value['账户邮箱']}</Tag>
|
||||
<Tag color="#108ee9">账户邮箱:<span onClick={()=>copyTxt(value['账户邮箱'])}>{value['账户邮箱']}</span></Tag>
|
||||
</Descriptions.Item>
|
||||
<Descriptions.Item>
|
||||
<Tag color="#108ee9">所属行业:{value['所属行业']}</Tag>
|
||||
<Tag color="#108ee9">所属行业:<span onClick={()=>copyTxt(value['所属行业'])}>{value['所属行业']}</span></Tag>
|
||||
</Descriptions.Item>
|
||||
</Descriptions>
|
||||
<Tabs defaultActiveKey="0" onChange={callback}>
|
||||
{tab.map(item => {
|
||||
return <TabPane tab={item.title} key={item.key}>
|
||||
<Layout style={{ background: '#fff',minHeight:500 }}>
|
||||
<Content style={{ background: '#fff', margin: "0 0 40px 0", padding: "20px 20px 20px 0",height:'100%' }}>{tabPane === '财务数据' ? item.content(props.cid, updateTimeArray, tabPane) : item.content(props.cid, targetUpdateTime, tabPane)}</Content>
|
||||
<Layout style={{ background: '#fff', minHeight: 500 }}>
|
||||
<Content style={{ background: '#fff', margin: "0 0 40px 0", padding: "20px 20px 20px 0", height: '100%' }}>{tabPane === '财务数据' ? item.content(props.cid, updateTimeArray, tabPane) : item.content(props.cid, targetUpdateTime, tabPane)}</Content>
|
||||
<Sider style={{ background: '#fff', padding: 20 }} className='sider-box'>
|
||||
<p>更新日期</p>
|
||||
<p>{
|
||||
tabPane === '财务数据' ? <Checkbox.Group options={updateTime} onChange={setTargetUpdateArray} value={updateTimeArray}/> : <Radio.Group onChange={setTargetUpdate} value={targetUpdateTime}>{updateTime.map(item => {
|
||||
tabPane === '财务数据' ? <Checkbox.Group options={updateTime} onChange={setTargetUpdateArray} value={updateTimeArray} /> : <Radio.Group onChange={setTargetUpdate} value={targetUpdateTime}>{updateTime.map(item => {
|
||||
return <Radio value={item.value}>{item.label}</Radio>
|
||||
})}</Radio.Group>
|
||||
}</p>
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
.popConfirm {
|
||||
padding: 20px;
|
||||
max-width: 500px;
|
||||
max-height: 500px;
|
||||
background-color: #fff;
|
||||
border-radius: 6px;
|
||||
position: absolute;
|
||||
z-index: 9999;
|
||||
box-shadow: 0px 12px 48px 16px rgba(0, 0, 0, 0.03);
|
||||
overflow: auto;
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
import React, { useEffect } from 'react';
|
||||
import React, { useState, useEffect } from 'react';
|
||||
import ReactFlow, {
|
||||
addEdge,
|
||||
Controls,
|
||||
|
@ -6,172 +6,141 @@ import ReactFlow, {
|
|||
useNodesState,
|
||||
useEdgesState,
|
||||
} from 'react-flow-renderer';
|
||||
import api from "@/api/request"
|
||||
import api from "@/api/request";
|
||||
import "./index.css"
|
||||
import ReactJson from 'react-json-view'
|
||||
|
||||
const onInit = (reactFlowInstance) => console.log('flow loaded:', reactFlowInstance);
|
||||
|
||||
function RateProcess1(props) {
|
||||
const [nodes, setNodes, onNodesChange] = useNodesState([]);
|
||||
const [edges, setEdges, onEdgesChange] = useEdgesState([]);
|
||||
const [target, setTarget] = useState({})
|
||||
const [visible, setVisible] = useState("none")
|
||||
const [position, setPosition] = useState({ x: 0, y: 0 })
|
||||
const onConnect = (params) => setEdges((eds) => addEdge(params, eds));
|
||||
|
||||
useEffect(() => {
|
||||
api.post("/admin/rating/get_company_process", props.value)
|
||||
.then(res => {
|
||||
let count = 1
|
||||
let scroll = 1
|
||||
const nodes = []
|
||||
const edges_1 = [
|
||||
{
|
||||
"id": "e1-2",
|
||||
"source": "1",
|
||||
"target": "2",
|
||||
"animated": true
|
||||
},
|
||||
{
|
||||
"id": "e1-3",
|
||||
"source": "1",
|
||||
"target": "3",
|
||||
"animated": true
|
||||
},
|
||||
{
|
||||
"id": "e1-4",
|
||||
"source": "1",
|
||||
"target": "4",
|
||||
"animated": true
|
||||
},
|
||||
{
|
||||
"id": "e2-5",
|
||||
"source": "2",
|
||||
"target": "5",
|
||||
"animated": true
|
||||
},
|
||||
{
|
||||
"id": "e3-5",
|
||||
"source": "3",
|
||||
"target": "5",
|
||||
"animated": true
|
||||
},
|
||||
{
|
||||
"id": "e4-5",
|
||||
"source": "4",
|
||||
"target": "5",
|
||||
"animated": true
|
||||
},
|
||||
{
|
||||
"id": "e5-6",
|
||||
"source": "5",
|
||||
"target": "6",
|
||||
"animated": true,
|
||||
},
|
||||
{
|
||||
"id": "e6-7",
|
||||
"source": "6",
|
||||
"target": "7",
|
||||
"animated": true
|
||||
},
|
||||
{
|
||||
"id": "e7-8",
|
||||
"source": "7",
|
||||
"target": "8",
|
||||
"animated": true
|
||||
},
|
||||
{
|
||||
"id": "e7-9",
|
||||
"source": "7",
|
||||
"target": "9",
|
||||
"animated": true
|
||||
},
|
||||
{
|
||||
"id": "e7-10",
|
||||
"source": "7",
|
||||
"target": "10",
|
||||
"animated": true
|
||||
},
|
||||
{
|
||||
"id": "e7-11",
|
||||
"source": "7",
|
||||
"target": "11",
|
||||
"animated": true
|
||||
}
|
||||
]
|
||||
const edges_2 = [
|
||||
{
|
||||
"id": "e1-2",
|
||||
"source": "1",
|
||||
"target": "2",
|
||||
"animated": true
|
||||
},
|
||||
{
|
||||
"id": "e1-3",
|
||||
"source": "1",
|
||||
"target": "3",
|
||||
"animated": true
|
||||
},
|
||||
{
|
||||
"id": "e2-4",
|
||||
"source": "2",
|
||||
"target": "4",
|
||||
"animated": true
|
||||
},
|
||||
{
|
||||
"id": "e3-4",
|
||||
"source": "3",
|
||||
"target": "4",
|
||||
"animated": true
|
||||
},
|
||||
{
|
||||
"id": "e4-5",
|
||||
"source": "4",
|
||||
"target": "5",
|
||||
"animated": true
|
||||
},
|
||||
{
|
||||
"id": "e5-6",
|
||||
"source": "5",
|
||||
"target": "6",
|
||||
"animated": true
|
||||
},
|
||||
{
|
||||
"id": "e6-7",
|
||||
"source": "6",
|
||||
"target": "7",
|
||||
"animated": true
|
||||
},
|
||||
]
|
||||
console.log(res.info['评价流程'])
|
||||
Object.keys(res.info['评价流程']).forEach((item, index) => {
|
||||
console.log(item,index)
|
||||
Object.keys(res.info['评价流程'][item]).forEach((key, i) => {
|
||||
const edges = []
|
||||
res.info['评价流程'].forEach((item, index) => {
|
||||
let source = count
|
||||
Object.keys(item).forEach((key, i) => {
|
||||
const status = Object.keys(item[key]).every(e => {
|
||||
return item[key][e] === 1
|
||||
})
|
||||
nodes.push({
|
||||
id: count.toString(),
|
||||
data: { label: key },
|
||||
type: index === 0 ? "input" : index === res.info.length - 1 ? "output" : "default",
|
||||
position: { x: (i + 1) * 200, y: (index + 1) * 100 },
|
||||
style: res.info['评价流程'][item][key] === 1 ? {
|
||||
type: index === 0 ? "input" : "default",
|
||||
position: { x: 0, y: scroll * 70 },
|
||||
style: status ? {
|
||||
background: '#87d068',
|
||||
color: '#fff',
|
||||
border: '1px solid #87d068',
|
||||
width: 180,
|
||||
} : {
|
||||
background: '#f5f5f5',
|
||||
color: '#000',
|
||||
border: '1px solid #f5f5f5',
|
||||
width: 180,
|
||||
},
|
||||
})
|
||||
count++
|
||||
Object.keys(item[key]).forEach((k, j) => {
|
||||
nodes.push({
|
||||
id: count.toString(),
|
||||
data: { label: k },
|
||||
type: index === res.info['评价流程'].length - 1 ? "output" : "default",
|
||||
position: { x: j * 200, y: (scroll + 1) * 70 },
|
||||
style: item[key][k] === 1 ? {
|
||||
background: '#87d068',
|
||||
color: '#fff',
|
||||
border: '1px solid #87d068',
|
||||
} : {
|
||||
background: '#f5f5f5',
|
||||
color: '#000',
|
||||
border: '1px solid #f5f5f5',
|
||||
},
|
||||
})
|
||||
edges.push({
|
||||
id: `e${source}-${count}`,
|
||||
source: source.toString(),
|
||||
target: count.toString(),
|
||||
animated: true
|
||||
})
|
||||
edges.push({
|
||||
id: `e${count}-${source + Object.keys(item[key]).length + 1}`,
|
||||
source: count.toString(),
|
||||
target: (source + Object.keys(item[key]).length + 1).toString(),
|
||||
animated: true
|
||||
})
|
||||
count++
|
||||
})
|
||||
scroll += 2
|
||||
})
|
||||
})
|
||||
console.log(nodes)
|
||||
// setNodes(nodes)
|
||||
if (props.value.type === "ESG评价流程") {
|
||||
setEdges(edges_2)
|
||||
} else {
|
||||
setEdges(edges_1)
|
||||
}
|
||||
setNodes(nodes)
|
||||
setEdges(edges)
|
||||
})
|
||||
}, [props.value])
|
||||
|
||||
|
||||
const onNodesClick = e => {
|
||||
if (e.target.innerText) {
|
||||
setVisible("block")
|
||||
setPosition({
|
||||
x: e.clientX - 180,
|
||||
y: e.clientY - 180
|
||||
})
|
||||
} else {
|
||||
setVisible("none")
|
||||
}
|
||||
var url
|
||||
switch (e.target.innerText) {
|
||||
case "填报数据":
|
||||
url = "/admin/rating/details"
|
||||
break;
|
||||
case "风险数据":
|
||||
url = "/admin/rating/risk"
|
||||
break;
|
||||
case "评价结果":
|
||||
url = "/admin/rating/rating_result"
|
||||
break;
|
||||
case "财指结果":
|
||||
url = "/admin/rating/financial_index"
|
||||
break;
|
||||
case "报告数据":
|
||||
url = "/admin/rating/report_data"
|
||||
break;
|
||||
case "综合信用分析":
|
||||
url = "/admin/rating/comprehensive_credit_analysis"
|
||||
break;
|
||||
case "经营风险分析":
|
||||
url = "/admin/rating/business_risk_analysis"
|
||||
break;
|
||||
case "财务数据分析":
|
||||
url = "/admin/rating/financial_elements_analysis"
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (url) {
|
||||
api.post(url, { rid: props.value.rid }).then(res => {
|
||||
setTarget(res)
|
||||
})
|
||||
}else{
|
||||
setTarget({})
|
||||
}
|
||||
}
|
||||
|
||||
return (
|
||||
<div style={{ width: "100%", height: 600 }}>
|
||||
<div style={{ width: "100%", height: 800 }}>
|
||||
<div className='popConfirm' style={{ display: visible, left: position.x, top: position.y }}>
|
||||
<ReactJson src={target} />
|
||||
</div>
|
||||
<ReactFlow
|
||||
nodes={nodes}
|
||||
edges={edges}
|
||||
|
@ -179,7 +148,8 @@ function RateProcess1(props) {
|
|||
onEdgesChange={onEdgesChange}
|
||||
onConnect={onConnect}
|
||||
fitView
|
||||
attributionPosition="top-right"
|
||||
onInit={onInit}
|
||||
onClick={onNodesClick}
|
||||
>
|
||||
<Controls />
|
||||
<Background color="#aaa" gap={16} />
|
||||
|
|
Loading…
Reference in New Issue