scout chart data
by Shang-De You
HTML
<input type="button" value="取得資料" onClick="getChartData()">
JavaScript
const uniID = '12652575'
function getChartData () {
fetchData(uniID, (data) => {
/* console.log(data) */
const formatedData = to_old_format(data)
const chartData = makeChartData(formatedData.d3.nodes, formatedData.d3.edges, uniID)
console.log(chartData)
})
}
function fetchData (uniID, callback) {
fetch('https://scout.blueplanet.com.tw/search/api/v3/go', {
method: 'POST', // or 'PUT'
body: JSON.stringify({
'force_split': 1,
'format': "json",
'mode': "up",
'scope': "classic",
'uniid': uniID
}), // data can be `string` or {object}!
headers: new Headers({ 'Content-Type': 'application/json' })
})
.then(function(response) {
return response.json();
})
.then(function(json) {
callback(json)
});
}
function makeChartData (sourceNodes, sourceEdges, rootID) {
const roleStyleMap = {
政府機關: {
circle: 'circleGov',
circleText: 'circleTextGov',
pathTop: 'pathTopGov',
pathDown: 'pathDownGov',
arrow: 'arrowGov'
},
外資法人: {
circle: 'circleForeign',
circleText: 'circleTextForeign',
pathTop: 'pathTopForeign',
pathDown: 'pathDownForeign',
arrow: 'arrowForeign'
},
自然人: {
circle: 'circlePerson',
circleText: 'circleTextPerson',
pathTop: 'pathTopPerson',
pathDown: 'pathDownPerson',
arrow: 'arrowPerson'
},
法人: {
circle: 'circleCompany',
circleText: 'circleTextCompany',
pathTop: 'pathTopCompany',
pathDown: 'pathDownCompany',
arrow: 'arrowCompany'
}
}
const formatNumberWithComma = (num) => {
if (num == null || num == '' || isNaN(num) == true) {
return num
}
var parts = num.toString().split('.')
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ',')
return parts.join('.')
}
const isCompanyClosed = (company_state) => {
if (company_state && company_state !== '核准設立') {
if (company_state === '歇業'
||...