| | |
| | | redirect: '/publicMessage_tool', |
| | | meta: { |
| | | notCache: true, |
| | | access: ['no_admin',"publicMessage_tool", 'menuPublicInfo','attribute_report','publicSifa','publicJinyin','publicJinyinFengx'], |
| | | access: ['no_admin',"publicMessage_tool", 'menuPublicInfo','attribute_report','publicSifa','publicJinyin','publicJinyinFengx','relationDeep'], |
| | | icon: 'custom custom-waiBu', |
| | | title: '深度信息' |
| | | }, |
| | |
| | | import('@/view/diligenceTools/gongkaixinxi/publicJinyinFengx.vue') |
| | | // import('@/view/diligenceTools/publicMessage.vue') |
| | | }, |
| | | { |
| | | path: '/relationDeep', |
| | | name: 'relationDeep', |
| | | meta: { |
| | | access: ['no_admin', 'relationDeep'], |
| | | notCache: true, |
| | | icon: 'custom custom-gongkaixinxi2', |
| | | title: '关系发现' |
| | | }, |
| | | component: () => |
| | | import('@/view/diligenceTools/gongkaixinxi/relationDeep.vue') |
| | | // import('@/view/diligenceTools/publicMessage.vue') |
| | | }, |
| | | // { |
| | | // path: '/basicAttributes_tool', |
| | | // name: 'basicAttributes_tool', |
| New file |
| | |
| | | <template> |
| | | <div style="position: relative;"> |
| | | <!-- <Spin v-show="loading" fix>--> |
| | | <!-- <Icon type="ios-loading" size=18 class="demo-spin-icon-load"></Icon>--> |
| | | <!-- <div>Loading</div>--> |
| | | <!-- </Spin>--> |
| | | <p v-show="loading" style="width: 150px;margin: 0 auto;margin-bottom: 12px;"> |
| | | <Icon type="ios-loading" size=18 class="demo-spin-icon-load"></Icon> |
| | | 加载中,请稍后... |
| | | </p> |
| | | <div class="newTitle clearfix" style="line-height: 40px;" id="kongZhi"> |
| | | 实际控制人 |
| | | <Button style="float: right;" @click="toFcreenfull">全屏</Button> |
| | | </div> |
| | | <div class="itemTitle"> |
| | | {{ SuspectedActualControl.CompanyName }} |
| | | </div> |
| | | <div v-if="!isShow" style="text-align: center;margin: 20px 0;"> |
| | | <Icon custom="custom custom-kong" size="40" style="color: darkgray;"></Icon> |
| | | <p style="margin-top: 8px;">暂无数据</p> |
| | | </div> |
| | | <div v-if="isShow"> |
| | | <div class="clearfix cntrol-top"> |
| | | <div style="position: relative;padding-left: 228px;float: left;"> |
| | | <span style="text-align: right;width: 220px;position: absolute;top: 0;left: 0;color: #5c6b77;">疑似实际控制人为 |
| | | (大数据分析) :</span> |
| | | <span style="text-align: left;width: 100%;">{{ |
| | | SuspectedActualControl.ControllerData && SuspectedActualControl.ControllerData.Name ? |
| | | SuspectedActualControl.ControllerData.Name : '无实际控制人' |
| | | }}</span> |
| | | </div> |
| | | <div style="float: left;"> |
| | | <span style="color: #5c6b77;">总股权比例为 :</span> |
| | | <span>{{ |
| | | SuspectedActualControl.ControllerData && SuspectedActualControl.ControllerData.PercentTotal ? |
| | | SuspectedActualControl.ControllerData.PercentTotal : '无总股权比率' |
| | | }}</span> |
| | | </div> |
| | | </div> |
| | | <div></div> |
| | | <div class="control-chart"> |
| | | <div class="tuPu"> |
| | | <p>实际控制人</p> |
| | | <p>{{ |
| | | `受益股份${SuspectedActualControl.ControllerData ? SuspectedActualControl.ControllerData.PercentTotal : |
| | | ''}` |
| | | }}</p> |
| | | </div> |
| | | <div id="d3FullScreen" style="position: relative;background-color: #fff;overflow: hidden"> |
| | | <span v-if="isFullscreen" |
| | | style="position: absolute;top: 0;right: 0;padding: 8px;font-size: 16px;z-index:9;">按ESC退出全屏</span> |
| | | <div ref="echartsDOM" class="echartsDOM" id="echartsDOM" |
| | | style="background-color:white;cursor: pointer;margin:0 auto;"></div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <footer v-if="isShow">疑似实际控制人由维优信用基于公开信息利用大数据分析引擎独家生成</footer> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import $ from 'jquery' |
| | | import * as echarts from 'echarts' |
| | | import axios from '@/libs/api.request' |
| | | import * as screenfull from 'screenfull' |
| | | import * as vis from 'vis-network' |
| | | import G6 from "@antv/g6"; |
| | | |
| | | export default { |
| | | name: 'app', |
| | | props: { |
| | | |
| | | name: { |
| | | type: String, |
| | | default: '' |
| | | }, |
| | | tab: { |
| | | type: String, |
| | | default: 'tab2' |
| | | } |
| | | }, |
| | | components: {}, |
| | | data() { |
| | | return { |
| | | loading: true, // loading |
| | | SuspectedActualControl: {}, // 实际控制人信息 |
| | | nodes: [], |
| | | links: [], |
| | | isFullscreen: false,// 是否全屏 |
| | | maxLevel: 0,//最大层级 |
| | | widthLevel: 0,//最大横向宽度 |
| | | isShow: true,//是否展示图形 |
| | | } |
| | | }, |
| | | mounted() { |
| | | if (this.name) { |
| | | this.GetSuspectedActualControl() |
| | | } |
| | | window.addEventListener('fullscreenchange', (e) => { |
| | | if (screenfull.isFullscreen) { |
| | | this.initEcharts('fullscreen') |
| | | this.isFullscreen = true |
| | | } else { |
| | | this.initEcharts() |
| | | this.isFullscreen = false |
| | | } |
| | | }) |
| | | }, |
| | | updated() { |
| | | }, |
| | | methods: { |
| | | /** |
| | | * 跳转至详情页面 |
| | | * d : 当前点击的公司信息 |
| | | */ |
| | | showPublicMessage(name) { |
| | | if (name.indexOf('自动生成') == -1 && name.length > 4) { |
| | | window.open(`#/publicMessage_tool?name=${name}`, '_blank') |
| | | } |
| | | }, |
| | | /** |
| | | * 全屏事件 |
| | | */ |
| | | toFcreenfull() { |
| | | if (screenfull.isEnabled) { |
| | | screenfull.request(document.getElementById('d3FullScreen')) |
| | | } |
| | | }, |
| | | unScreenfull() { |
| | | if (screenfull.isEnabled) { |
| | | screenfull.exit() |
| | | this.init() |
| | | } |
| | | }, |
| | | /** |
| | | * 获取实际控制人 |
| | | */ |
| | | GetSuspectedActualControl() { |
| | | let data = { |
| | | name: this.name, |
| | | ev: 0, |
| | | iv: 0 |
| | | } |
| | | this.loading = true |
| | | axios.request({ |
| | | url: '/QiChaCha/GetSuspectedActualControl', |
| | | data, |
| | | method: 'post' |
| | | }).then((res) => { |
| | | if (res.data.Check) { |
| | | // res.data.Data.ControllerData.Paths[0].push({ |
| | | // KeyNo: "p0b1f20c4c28963ace6eff596cbb7215", |
| | | // Level: "2", |
| | | // Name: "74.8619%", |
| | | // Percent: "74.8619%", |
| | | // PercentTotal: "0.0291%", |
| | | // }) |
| | | this.SuspectedActualControl = res.data.Data |
| | | if (this.SuspectedActualControl.ControllerData && this.SuspectedActualControl.ControllerData.Paths) { |
| | | this.isShow = true |
| | | let list = [] |
| | | let nodes = [] |
| | | let links = [] |
| | | this.maxLevel = 0 |
| | | for (let i = 0; i < this.SuspectedActualControl.ControllerData.Paths.length; i++) { |
| | | let level = 1 |
| | | for (let k = this.SuspectedActualControl.ControllerData.Paths[i].length - 1; k >= 0; k--) { |
| | | let name = this.SuspectedActualControl.ControllerData.Paths[i][k].Name |
| | | let id = this.SuspectedActualControl.ControllerData.Paths[i][k].KeyNo |
| | | if (list.indexOf(name) == -1) { |
| | | list.push(name) |
| | | nodes.push({ |
| | | group: 'Event', |
| | | id: id, |
| | | label: name, |
| | | level: level, |
| | | color: { |
| | | background: "white", |
| | | } |
| | | }) |
| | | } |
| | | level++ |
| | | this.maxLevel = this.maxLevel > level ? this.maxLevel : level |
| | | if (k >= 1) { |
| | | links.push({ |
| | | from: id, |
| | | label: this.SuspectedActualControl.ControllerData.Paths[i][k].Percent, |
| | | to: this.SuspectedActualControl.ControllerData.Paths[i][k - 1].KeyNo |
| | | }) |
| | | } else { |
| | | links.push({ |
| | | from: id, |
| | | label: this.SuspectedActualControl.ControllerData.Paths[i][k].Percent, |
| | | to: this.SuspectedActualControl.KeyNo, |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | if (list.indexOf(this.SuspectedActualControl.CompanyName) == -1) { |
| | | nodes.push({ |
| | | group: 'Event', |
| | | id: this.SuspectedActualControl.KeyNo, |
| | | label: this.SuspectedActualControl.CompanyName, |
| | | level: this.maxLevel + 1, |
| | | color: { |
| | | background: "white", |
| | | } |
| | | }) |
| | | } |
| | | this.nodes = nodes |
| | | this.links = links |
| | | console.log(this.nodes, this.links); |
| | | this.$nextTick(() => { |
| | | this.initEcharts() |
| | | }) |
| | | } else { |
| | | this.isShow = false |
| | | } |
| | | } else { |
| | | this.isShow = false |
| | | } |
| | | this.loading = false |
| | | }, (err) => { |
| | | this.isShow = false |
| | | this.loading = false |
| | | }) |
| | | }, |
| | | GetTycActualControl() { |
| | | let data = { |
| | | name: this.name, |
| | | } |
| | | this.loading = true |
| | | axios.request({ |
| | | url: '/QiChaCha/GetTycActualControl', |
| | | data, |
| | | method: 'post' |
| | | }).then((res) => { |
| | | if (res.data.Check) { |
| | | // res.data.Data.ControllerData.Paths[0].push({ |
| | | // KeyNo: "p0b1f20c4c28963ace6eff596cbb7215", |
| | | // Level: "2", |
| | | // Name: "74.8619%", |
| | | // Percent: "74.8619%", |
| | | // PercentTotal: "0.0291%", |
| | | // }) |
| | | this.SuspectedActualControl = res.data.Data |
| | | if (this.SuspectedActualControl.actualControllerList && this.SuspectedActualControl.pathMap) { |
| | | this.isShow = true |
| | | let list = [] |
| | | let nodes = [] |
| | | let links = [] |
| | | this.maxLevel = 0 |
| | | let num=0 |
| | | let arr=[] |
| | | for (let item in this.SuspectedActualControl.pathMap) { |
| | | if(num<Number(item.split('p_')[1])){ |
| | | num=Number(item.split('p_')[1]) |
| | | } |
| | | } |
| | | for (let item in this.SuspectedActualControl.pathMap) { |
| | | if(num==Number(item.split('p_')[1])){ |
| | | arr.push(this.SuspectedActualControl.pathMap[item]) |
| | | } |
| | | } |
| | | console.log(arr); |
| | | |
| | | for (let i = 0; i < arr.length; i++) { |
| | | let level = 1 |
| | | for (let k = arr[i].relationships.length - 1; k >= 0; k--) { |
| | | console.log(arr[i].relationships[k]); |
| | | let name = arr[i].nodes[k].properties.name |
| | | let id = arr[i].nodes[k].id |
| | | if (list.indexOf(name) == -1) { |
| | | list.push(name) |
| | | nodes.push({ |
| | | group: 'Event', |
| | | id: id, |
| | | label: name, |
| | | level: level, |
| | | color: { |
| | | background: "white", |
| | | } |
| | | }) |
| | | } |
| | | level++ |
| | | this.maxLevel = this.maxLevel > level ? this.maxLevel : level |
| | | if (k >= 1) { |
| | | |
| | | links.push({ |
| | | from: id, |
| | | label: arr[i].relationships[k].properties.percentStr, |
| | | to: arr[i].nodes[k - 1].id |
| | | }) |
| | | } else { |
| | | links.push({ |
| | | from: id, |
| | | label: arr[i].relationships[k].properties.percentStr, |
| | | to: this.SuspectedActualControl.hId, |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | if (list.indexOf(this.SuspectedActualControl.CompanyName) == -1) { |
| | | nodes.push({ |
| | | group: 'Event', |
| | | id: this.SuspectedActualControl.hId, |
| | | label: this.SuspectedActualControl.CompanyName, |
| | | level: this.maxLevel + 1, |
| | | color: { |
| | | background: "white", |
| | | } |
| | | }) |
| | | } |
| | | this.nodes = nodes |
| | | this.links = links |
| | | console.log(this.nodes, this.links); |
| | | |
| | | this.$nextTick(() => { |
| | | this.initEcharts() |
| | | }) |
| | | } |
| | | |
| | | } else { |
| | | |
| | | } |
| | | |
| | | }, (err) => { |
| | | |
| | | }) |
| | | }, |
| | | /** |
| | | * 初始化echarts |
| | | * @param type fullscreen : 全屏 |
| | | */ |
| | | initEcharts(type) { |
| | | if (type == 'fullscreen') { |
| | | $('#echartsDOM').css('height', window.screen.height) |
| | | } else { |
| | | $('#echartsDOM').css('height', this.maxLevel > 5 ? `${this.maxLevel * 120}px` : '500px') |
| | | } |
| | | |
| | | let container = document.getElementById('echartsDOM') |
| | | let data = { |
| | | nodes: this.nodes, |
| | | edges: this.links, |
| | | } |
| | | let maxWidthLevel = 0 |
| | | for (let i = 1; i < this.maxLevel; i++) { |
| | | let maxWidthLevel_current = 0 |
| | | for (let k = 0, item; item = this.nodes[k]; k++) { |
| | | if (item.level == i) { |
| | | maxWidthLevel_current++ |
| | | } |
| | | } |
| | | maxWidthLevel = maxWidthLevel < maxWidthLevel_current ? maxWidthLevel_current : maxWidthLevel |
| | | } |
| | | // if (this.SuspectedActualControl.ControllerData.Paths.length >= 6) { |
| | | if (this.links.length >= 6) { |
| | | $('#echartsDOM').css({ 'width': `${maxWidthLevel * 220}px` }) |
| | | } else { |
| | | $('#echartsDOM').css('width', '100%') |
| | | } |
| | | let option = { |
| | | autoResize: true, |
| | | nodes: {//节点 |
| | | borderWidth: 1, |
| | | borderWidthSelected: 2, |
| | | size: 14, |
| | | shape: 'box', |
| | | margin: 10, |
| | | color: '#2d8bef', |
| | | |
| | | font: { |
| | | color: '#343434', |
| | | size: 14, // px |
| | | background: '#ffffff', |
| | | strokeWidth: 0, // px |
| | | strokeColor: '#ffffff', |
| | | align: 'center', |
| | | } |
| | | }, |
| | | edges: {//连线 |
| | | font: { |
| | | size: 14, |
| | | background: 'white', |
| | | }, |
| | | arrows: { |
| | | to: { enabled: true, scaleFactor: 1 } |
| | | }, |
| | | smooth: { enabled: false }, |
| | | }, |
| | | layout: {//布局 |
| | | randomSeed: undefined, |
| | | improvedLayout: true, |
| | | clusterThreshold: 150, |
| | | hierarchical: { |
| | | enabled: true, |
| | | levelSeparation: 100, |
| | | nodeSpacing: 300, |
| | | treeSpacing: 200, |
| | | blockShifting: true, |
| | | edgeMinimization: true, |
| | | parentCentralization: true, |
| | | direction: 'UD', // UD, DU, LR, RL |
| | | sortMethod: 'hubsize', // hubsize, directed |
| | | shakeTowards: 'leaves', // roots, leaves |
| | | } |
| | | }, |
| | | physics: { |
| | | enabled: false, |
| | | } |
| | | } |
| | | let network = new vis.Network(container, data, option) |
| | | network.on('click', (properties) => { |
| | | if (properties.nodes.length == 1) { |
| | | let keyNo = properties.nodes[0] |
| | | for (let i = 0, item; item = this.nodes[i]; i++) { |
| | | if (item.id == keyNo) { |
| | | this.showPublicMessage(item.label) |
| | | break |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | // if (this.SuspectedActualControl.ControllerData.Paths.length >= 6) { |
| | | if (this.links.length >= 6) { |
| | | $('#echartsDOM .vis-network').css('left', '0%') |
| | | } else { |
| | | $('#echartsDOM .vis-network').css('left', '0%') |
| | | } |
| | | } |
| | | }, |
| | | watch: { |
| | | name: { |
| | | handler(newValue, oldValue) { |
| | | // this.GetSuspectedActualControl() |
| | | this.GetTycActualControl() |
| | | } |
| | | }, |
| | | tab: { |
| | | handler(newValue, oldValue) { |
| | | if (this.tab == 'tab1') { |
| | | // this.GetSuspectedActualControl() |
| | | this.GetTycActualControl() |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | computed: {} |
| | | } |
| | | </script> |
| | | |
| | | <style scoped lang="less"> |
| | | #echartsDOM { |
| | | min-width: 600px; |
| | | min-height: 600px; |
| | | } |
| | | |
| | | .echartsDOM { |
| | | /*width: ~"calc(100% - 230px)";*/ |
| | | width: 900px; |
| | | height: 700px; |
| | | margin: 0 auto; |
| | | } |
| | | |
| | | .echartsDOM>div { |
| | | margin: 0 auto !important; |
| | | } |
| | | |
| | | .cntrol-top { |
| | | padding: 20px 10px; |
| | | } |
| | | |
| | | .cntrol-top div { |
| | | width: 50%; |
| | | //text-align: right; |
| | | padding: 0 30px; |
| | | display: inline-block; |
| | | } |
| | | |
| | | .cntrol-top div:last-child { |
| | | text-align: left; |
| | | } |
| | | |
| | | .cntrol-top div span { |
| | | color: #2d8bef; |
| | | padding: 0 5px; |
| | | } |
| | | |
| | | footer { |
| | | text-align: center; |
| | | padding: 10px 0; |
| | | margin-top: 20px; |
| | | font-size: 12px; |
| | | color: #5c6b77; |
| | | } |
| | | |
| | | .control-chart { |
| | | text-align: center; |
| | | } |
| | | |
| | | .control-chart div.box { |
| | | margin: 0 auto; |
| | | background-color: #f3f3f3; |
| | | width: 328px; |
| | | height: 40px; |
| | | line-height: 40px; |
| | | box-shadow: 1px 2px rgba(100, 100, 100, .2); |
| | | } |
| | | |
| | | .control-chart div.line { |
| | | width: 3px; |
| | | height: 90px; |
| | | margin: 0 auto; |
| | | background-color: #dbdbdb; |
| | | } |
| | | |
| | | .percent-box { |
| | | position: absolute; |
| | | left: 50%; |
| | | bottom: 45px; |
| | | margin-left: -30px; |
| | | width: 60px; |
| | | background-color: white; |
| | | height: 18px; |
| | | line-height: 18px; |
| | | } |
| | | |
| | | .icon { |
| | | position: absolute; |
| | | bottom: -20px; |
| | | left: 50%; |
| | | color: #dbdbdb; |
| | | margin-left: -18px; |
| | | width: 36px; |
| | | font-size: 36px; |
| | | text-align: center; |
| | | } |
| | | |
| | | .tuPu { |
| | | width: 328px; |
| | | height: 67px; |
| | | padding-top: 5px; |
| | | margin: 10px auto; |
| | | margin-bottom: 0; |
| | | background-image: url('../../../../assets/images/tuPu.png'); |
| | | background-repeat: no-repeat; |
| | | background-size: 100% 100%; |
| | | color: white; |
| | | text-align: center; |
| | | } |
| | | </style> |
| | | |
| New file |
| | |
| | | <template> |
| | | <div class="penetrate-chart clearfix" style="position: relative;"> |
| | | <!-- <Spin v-show="loading" fix>--> |
| | | <!-- <Icon type="ios-loading" size=18 class="demo-spin-icon-load"></Icon>--> |
| | | <!-- <div>Loading</div>--> |
| | | <!-- </Spin>--> |
| | | <p v-show="loading" style="width: 150px;margin: 0 auto;margin-bottom: 12px;"> |
| | | <Icon type="ios-loading" size=18 class="demo-spin-icon-load"></Icon> |
| | | 加载中,请稍后... |
| | | </p> |
| | | <div class="newTitle clearfix" style="line-height: 40px;" id="jieGou"> |
| | | 股权穿透图 |
| | | <Button style="float: right;" @click="toFcreenfull">全屏</Button> |
| | | </div> |
| | | <div class="itemTitle"> |
| | | {{ this.name }} |
| | | </div> |
| | | <div id="screenfullDOM" style="background-color:white;position: relative;"> |
| | | <Spin v-show="loading && isFullscreen" fix> |
| | | <Icon type="ios-loading" size=18 class="demo-spin-icon-load"></Icon> |
| | | <div>Loading</div> |
| | | </Spin> |
| | | <span v-if="isFullscreen" |
| | | style="position: absolute;top: 0;right: 0;padding: 8px;font-size: 16px;">按ESC退出全屏</span> |
| | | <div id="textBox_2"></div> |
| | | <div id="rightSide"> |
| | | <div> |
| | | <span style="display: inline-block;width: 110px;">只查看持股股东</span> |
| | | <span style="margin-right: 10px;">>=</span> |
| | | <Input v-model="ev" :class="ev.match(/^100$|^(\d|[1-9]\d)(\.\d+)*$/) ? '' : 'ErrorTip'" |
| | | style="width: 90px;"></Input> % |
| | | </div> |
| | | <div style="margin-top: 10px;"> |
| | | <span style="display: inline-block;width: 110px;">只查看对外投资</span> |
| | | <span style="margin-right: 10px;">>=</span> |
| | | <Input v-model="iv" :class="iv.match(/^100$|^(\d|[1-9]\d)(\.\d+)*$/) ? '' : 'ErrorTip'" |
| | | style="width: 90px;"></Input> % |
| | | </div> |
| | | <div class="clearfix" style="width: 183px;margin: 10px auto 0;"> |
| | | <Button style="width: 80px;float: left;" type="primary" @click="getEquityThroughAndInvest">查询 |
| | | </Button> |
| | | <Button style="width: 80px;float: right;" type="default" @click="reset">重置 |
| | | </Button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | <!--股权穿透图--> |
| | | <script> |
| | | import $ from 'jquery' |
| | | import axios from '@/libs/api.request' |
| | | import * as screenfull from 'screenfull' |
| | | // 过渡时间 |
| | | const DURATION = 0 |
| | | // 加减符号半径 |
| | | const SYMBOLA_S_R = 9 |
| | | // 公司 |
| | | const COMPANY = 0 |
| | | // 人 |
| | | const PERSON = 1 |
| | | export default { |
| | | props: { |
| | | name: { |
| | | type: String, |
| | | default: '' |
| | | }, |
| | | tab: { |
| | | type: String, |
| | | default: 'tab1' |
| | | } |
| | | }, |
| | | components: {}, |
| | | data() { |
| | | return { |
| | | loading: true, |
| | | layoutTree: '', |
| | | diamonds: '', |
| | | i: 0, |
| | | hasChildNodeArr: [], |
| | | originDiamonds: '', |
| | | diagonalUp: '', |
| | | diagonalDown: '', |
| | | tree: { |
| | | 'Name': '', |
| | | 'Children': [], |
| | | 'Parents': [] |
| | | }, |
| | | rootUp: '', |
| | | rootDown: '', |
| | | svg: '', |
| | | ev: '0', |
| | | iv: '0', |
| | | ratio: 1, // 浏览器缩放比例 |
| | | isFullscreen: false// 是否全屏 |
| | | } |
| | | }, |
| | | |
| | | mounted() { |
| | | if (this.name) { |
| | | this.getEquityThroughAndInvest() |
| | | } |
| | | this.ratio = this.CustomMethods.getRatio() |
| | | if (this.ratio < 125) { |
| | | this.ratio = 125 |
| | | } |
| | | window.addEventListener('fullscreenchange', (e) => { |
| | | if (screenfull.isFullscreen) { |
| | | this.init(window.screen.width * this.ratio / 100, window.screen.height * this.ratio / 100) |
| | | $('#textBox_2').css('height', (window.screen.height - 20) * this.ratio / 100) |
| | | $('#rightSide').css('height', (window.screen.height - 20) * this.ratio / 100) |
| | | $('#rightSide').css('paddingTop', (window.screen.height - 120) * this.ratio / 100 * 0.5) |
| | | this.isFullscreen = true |
| | | } else { |
| | | this.init() |
| | | $('#textBox_2').css('height', 500) |
| | | $('#rightSide').css('height', 500) |
| | | $('#rightSide').css('paddingTop', 10) |
| | | this.isFullscreen = false |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | methods: { |
| | | /** |
| | | * 跳转至详情页面 |
| | | * d : 当前点击的公司信息 |
| | | */ |
| | | showPublicMessage(d) { |
| | | if (d.data.Name.indexOf('自动生成') == -1 && d.data.Name.length > 4) { |
| | | window.open(`#/publicMessage_tool?name=${d.data.Name}`, '_blank') |
| | | } |
| | | }, |
| | | /** |
| | | * 全屏事件 |
| | | */ |
| | | toFcreenfull() { |
| | | if (screenfull.isEnabled) { |
| | | screenfull.request(document.getElementById('screenfullDOM')) |
| | | } |
| | | }, |
| | | unScreenfull() { |
| | | if (screenfull.isEnabled) { |
| | | screenfull.exit() |
| | | this.init() |
| | | } |
| | | }, |
| | | init(w, h) { |
| | | let svgW = w || document.body.clientWidth |
| | | let svgH = h || 500 |
| | | // 方块形状 |
| | | this.diamonds = { |
| | | w: 250, |
| | | h: 75, |
| | | intervalW: 300, |
| | | intervalH: 150 |
| | | } |
| | | // 源头对象 |
| | | this.originDiamonds = { |
| | | w: 300, |
| | | h: 75 |
| | | } |
| | | this.layoutTree = this.d3.tree().nodeSize([this.diamonds.intervalW, this.diamonds.intervalH]).separation(() => 1) |
| | | // 主图 |
| | | if (document.getElementById('textBox_2')) { |
| | | document.getElementById('textBox_2').innerHTML = '' |
| | | } |
| | | this.svg = this.d3.select('#textBox_2').append('svg').attr('width', svgW).attr('height', svgH).attr('id', 'treesvg_2') |
| | | .call(this.d3.zoom().scaleExtent([0, 5]).on('zoom', () => { |
| | | // 设置缩放位置以及平移初始位置 |
| | | this.svg.attr('transform', this.d3.event.transform.translate(svgW / 2, svgH / 2)) |
| | | })) |
| | | .attr('style', 'position: relative;z-index: 2;') |
| | | .append('g').attr('id', 'g').attr('transform', 'translate(' + (svgW / 2) + ',' + (svgH / 2) + ')') |
| | | let upTree = null |
| | | let downTree = null |
| | | // 拷贝树的数据 |
| | | Object.keys(this.tree).map(item => { |
| | | if (item === 'Parents') { |
| | | upTree = JSON.parse(JSON.stringify(this.tree)) |
| | | upTree.Children = this.tree[item] |
| | | upTree.Parents = null |
| | | } else if (item === 'Children') { |
| | | downTree = JSON.parse(JSON.stringify(this.tree)) |
| | | downTree.Children = this.tree[item] |
| | | downTree.Parents = null |
| | | } |
| | | }) |
| | | // hierarchy 返回新的结构 x0,y0初始化起点坐标 |
| | | this.rootUp = this.d3.hierarchy(upTree, d => d.Children) |
| | | this.rootUp.x0 = 0 |
| | | this.rootUp.y0 = 0 |
| | | |
| | | this.rootDown = this.d3.hierarchy(downTree, d => d.Children) |
| | | this.rootDown.x0 = 0 |
| | | this.rootDown.y0 = 0 |
| | | // 上 和 下 结构 |
| | | let treeArr = [ |
| | | { |
| | | data: this.rootUp, |
| | | Category: 'up' |
| | | }, |
| | | { |
| | | data: this.rootDown, |
| | | Category: 'down' |
| | | } |
| | | ] |
| | | treeArr.map(item => { |
| | | if (item.data.children) { |
| | | item.data.children.forEach(this.collapse) |
| | | } |
| | | this.update(item.data, item.Category, item.data) |
| | | }) |
| | | }, |
| | | |
| | | /* |
| | | *[update 函数描述], [click 函数描述] |
| | | * @param {[Object]} source 第一次是初始源对象,后面是点击的对象 |
| | | * @param {[String]} showtype up表示向上 down表示向下 |
| | | * @param {[Object]} sourceTree 初始源对象 |
| | | */ |
| | | update(source, showtype, sourceTree) { |
| | | let _this = this |
| | | if (source.parents === null) { |
| | | source.isOpen = !source.isOpen |
| | | } |
| | | let nodes |
| | | if (showtype === 'up') { |
| | | nodes = this.layoutTree(this.rootUp).descendants() |
| | | } else { |
| | | nodes = this.layoutTree(this.rootDown).descendants() |
| | | } |
| | | let links = nodes.slice(1) |
| | | nodes.forEach(d => { |
| | | d.y = d.depth * this.diamonds.intervalH |
| | | }) |
| | | |
| | | let node = this.svg.selectAll('g.node' + showtype) |
| | | .data(nodes, d => d.id || (d.id = showtype + ++this.i)) |
| | | |
| | | let nodeEnter = node.enter().append('g') |
| | | .attr('class', d => showtype === 'up' && !d.depth ? 'hide-node' : 'node' + showtype) |
| | | .attr('transform', d => { |
| | | let str = showtype === 'up' ? 'translate(' + d.x + ',' + -(d.y) + ')' : 'translate(' + d.x + ',' + d.y + ')' |
| | | return str |
| | | }) |
| | | |
| | | // 创建矩形 |
| | | nodeEnter.append('rect') |
| | | .attr('type', d => { |
| | | return d.id |
| | | }) |
| | | .attr('width', d => d.depth ? this.diamonds.w : this.originDiamonds.w) |
| | | .attr('height', d => d.depth ? (d.Category === COMPANY ? this.diamonds.h : this.diamonds.h) : this.originDiamonds.h) |
| | | .attr('x', d => d.depth ? -this.diamonds.w / 2 : -this.originDiamonds.w / 2) |
| | | .attr('y', d => d.depth ? -35 : -35) |
| | | .attr('stroke', d => d._children ? '#60e897' : (d.depth ? '#2d8bef' : '#2d8bef')) |
| | | .attr('stroke-width', 1) |
| | | .attr('rx', 5) |
| | | .attr('ry', 5) |
| | | .style('fill', d => { |
| | | return d._children ? '#fff' : (d.depth ? '#fff' : '#2d8bef') |
| | | }) |
| | | .on('click', (d) => { |
| | | this.showPublicMessage(d) |
| | | }) |
| | | |
| | | // 创建圆 加减 |
| | | nodeEnter.append('circle') |
| | | .attr('type', d => d.id || (d.id = showtype + 'text' + ++this.i)) |
| | | .attr('r', (d) => d.depth ? (this.hasChildNodeArr.indexOf(d) === -1 ? 0 : SYMBOLA_S_R) : 0) |
| | | .attr('cy', d => d.depth ? showtype === 'up' ? -45 : 45 : 0) |
| | | .attr('cx', 0) |
| | | .attr('fill', d => d.children ? '#fff' : '#60e897') |
| | | .attr('stroke', d => d._children || d.children ? '#60e897' : '') |
| | | .on('click', function (d) { |
| | | _this.click(d, showtype, sourceTree) |
| | | setTimeout(() => { |
| | | if (document.querySelector(`text[type="${d.id}"]`).innerHTML === '-') { |
| | | d.isOpen = false |
| | | this.innerHTML = '+' |
| | | this.setAttribute('fill', '#60e897') |
| | | document.querySelector(`text[type="${d.id}"]`).setAttribute('fill', '#fff') |
| | | document.querySelector(`rect[type="${d.id}"]`).setAttribute('style', 'fill:#fff') |
| | | document.querySelector(`text[type="${d.id}"]`).innerHTML = '+' |
| | | } else { |
| | | d.isOpen = true |
| | | this.setAttribute('fill', '#fff') |
| | | document.querySelector(`text[type="${d.id}"]`).setAttribute('fill', '#60e897') |
| | | document.querySelector(`rect[type="${d.id}"]`).setAttribute('style', 'fill:#fff') |
| | | document.querySelector(`text[type="${d.id}"]`).innerHTML = '-' |
| | | } |
| | | }, DURATION) |
| | | }) |
| | | |
| | | // 持股比例 |
| | | nodeEnter.append('g') |
| | | .attr('transform', () => 'translate(0,0)') |
| | | .append('text') |
| | | .attr('class', d => !d.depth ? 'proportion-hide' : 'proportion') |
| | | .attr('x', d => d.x > 0 ? (showtype === 'up' ? -40 : 40) : 40) |
| | | .attr('y', showtype === 'up' ? 60 : -50) |
| | | .attr('text-anchor', 'middle') |
| | | .attr('fill', d => d.data.Category === COMPANY ? '#333333' : '#333333') |
| | | .text((d) => { |
| | | let str = '' |
| | | if (d.data.FundedRatio) { |
| | | str = `持股 ${d.data.FundedRatio}` |
| | | } else if (d.data.Percent) { |
| | | str = `持股 ${d.data.Percent}` |
| | | } |
| | | return str |
| | | }) |
| | | |
| | | // 公司名称 |
| | | // y轴 否表源头的字体距离 |
| | | // 名称过长 第一段 |
| | | nodeEnter.append('text') |
| | | .attr('class', 'text-style-name') |
| | | .attr('x', 0) |
| | | .attr('y', d => { |
| | | if (d.data.Name == this.tree.Name && d.x === 0 && d.y === 0) { |
| | | if (d.data.Name.length <= 20) { |
| | | return 3 |
| | | } else { |
| | | return -7 |
| | | } |
| | | } else { |
| | | if (showtype === 'up') { |
| | | return -35 |
| | | } else { |
| | | if (d.data.Name.length <= 20) { |
| | | return -11 |
| | | } else if (d.data.Name.length <= 40) { |
| | | return -21 |
| | | } else { |
| | | return -31 |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | .attr('dy', d => d.depth ? '1.5em' : '.3em') |
| | | .attr('text-anchor', 'middle') |
| | | .attr('fill', d => d.depth ? '#465166' : '#fff') |
| | | .text(d => { |
| | | let str = (d.data.Name.length > 20) ? d.data.Name.substr(0, 20) : d.data.Name |
| | | return str |
| | | }) |
| | | .on('click', (d) => { |
| | | this.showPublicMessage(d) |
| | | }) |
| | | // 名称过长 第二段 |
| | | nodeEnter.append('text') |
| | | .attr('class', 'text-style-name') |
| | | .attr('x', 0) |
| | | .attr('y', d => { |
| | | if (d.data.Name == this.tree.Name && d.x === 0 && d.y === 0) { |
| | | if (d.data.Name.length <= 20) { |
| | | return 3 |
| | | } else { |
| | | return -7 |
| | | } |
| | | } else { |
| | | if (showtype === 'up') { |
| | | return -35 |
| | | } else { |
| | | if (d.data.Name.length <= 20) { |
| | | return -11 |
| | | } else if (d.data.Name.length <= 40) { |
| | | return -21 |
| | | } else { |
| | | return -31 |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | .attr('dy', d => d.depth ? '3em' : '2.3em') |
| | | .attr('text-anchor', 'middle') |
| | | .attr('fill', d => d.depth ? '#465166' : '#fff') |
| | | .text(d => { |
| | | let str = '' |
| | | if (d.data.Name.length <= 20) { |
| | | str = '' |
| | | } else { |
| | | str = d.data.Name.substr(20, 20) |
| | | } |
| | | return str |
| | | }) |
| | | .on('click', (d) => { |
| | | this.showPublicMessage(d) |
| | | }) |
| | | // 名称过长 第三段 |
| | | nodeEnter.append('text') |
| | | .attr('class', 'text-style-name') |
| | | .attr('x', 0) |
| | | .attr('y', d => { |
| | | if (d.data.Name == this.tree.Name && d.x === 0 && d.y === 0) { |
| | | if (d.data.Name.length <= 40) { |
| | | return 3 |
| | | } else { |
| | | return -7 |
| | | } |
| | | } else { |
| | | if (showtype === 'up') { |
| | | return -35 |
| | | } else { |
| | | if (d.data.Name.length <= 20) { |
| | | return -11 |
| | | } else if (d.data.Name.length <= 40) { |
| | | return -21 |
| | | } else { |
| | | return -31 |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | .attr('dy', d => d.depth ? '4.5em' : '4.3em') |
| | | .attr('text-anchor', 'middle') |
| | | .attr('fill', d => d.depth ? '#465166' : '#fff') |
| | | .text(d => { |
| | | let str = '' |
| | | if (d.data.Name.length <= 40) { |
| | | str = '' |
| | | } else { |
| | | str = d.data.Name.substr(40, d.data.Name.length) |
| | | } |
| | | return str |
| | | }) |
| | | .on('click', (d) => { |
| | | this.showPublicMessage(d) |
| | | }) |
| | | // 持股数 |
| | | nodeEnter.append('text') |
| | | .attr('class', 'num-style-name') |
| | | .attr('x', showtype === 'up' ? 0 : 45) |
| | | .attr('y', d => { |
| | | if (d.data.Name == this.tree.Name && d.x === 0 && d.y === 0) { |
| | | return -20 |
| | | } else { |
| | | return -35 |
| | | } |
| | | }) |
| | | .attr('dy', d => d.depth ? '5.7em' : '.3em') |
| | | .attr('text-anchor', 'middle') |
| | | .attr('fill', d => d.depth ? '#465166' : '#fff') |
| | | .text(d => { |
| | | let str = '' |
| | | if (d.data.StockRightNum) { |
| | | str = `持股数: ${d.data.StockRightNum}股` |
| | | } else if (d.data.ShouldCapi) { |
| | | str = `认缴金额: ${this.CustomMethods.numTo$_NaN(d.data.ShouldCapi)}` |
| | | } |
| | | // if(d.data.DetailInfoList && d.data.DetailInfoList.length == 1){ |
| | | // if (d.data.DetailInfoList[0].StockType) { |
| | | // str += `持股类型: ${d.data.DetailInfoList[0].StockType}` |
| | | // } |
| | | // if (d.data.DetailInfoList[0].ShouldCapi) { |
| | | // str += `认缴金额: ${this.CustomMethods.numTo$_NaN(d.data.DetailInfoList[0].ShouldCapi)} 万元` |
| | | // } |
| | | // } |
| | | if (d.data.Name == this.name) { |
| | | str = '' |
| | | } |
| | | return str |
| | | }) |
| | | .on('click', (d) => { |
| | | this.showPublicMessage(d) |
| | | }) |
| | | // nodeEnter.append('text') |
| | | // .attr('class', 'num-style-name') |
| | | // .attr('x', -80) |
| | | // .attr('y', d => { |
| | | // if (d.data.Name == this.tree.Name && d.x === 0 && d.y === 0) { |
| | | // return -20 |
| | | // } else { |
| | | // return -35 |
| | | // } |
| | | // }) |
| | | // .attr('dy', d => d.depth ? '5.7em' : '.3em') |
| | | // .attr('text-anchor', 'middle') |
| | | // .attr('fill', d => d.depth ? '#465166' : '#fff') |
| | | // .text(d => { |
| | | // let str = '' |
| | | // if (d.data.StockType) { |
| | | // str += `持股类型: ${d.data.StockType}` |
| | | // } |
| | | // if (d.data.Name == this.name) { |
| | | // str = '' |
| | | // } |
| | | // return str |
| | | // }) |
| | | |
| | | // nodeEnter.append('text') |
| | | // .attr('class', 'num-style-name') |
| | | // .attr('x', 45) |
| | | // .attr('y', d => { |
| | | // if (d.data.Name == this.tree.Name && d.x === 0 && d.y === 0) { |
| | | // return -20 |
| | | // } else { |
| | | // return -35 |
| | | // } |
| | | // }) |
| | | // .attr('dy', d => d.depth ? '5.7em' : '.3em') |
| | | // .attr('text-anchor', 'middle') |
| | | // .attr('fill', d => d.depth ? '#465166' : '#fff') |
| | | // .text(d => { |
| | | // let str = '' |
| | | // if (d.data.ShouldCapi) { |
| | | // str += `认缴金额: ${this.CustomMethods.numTo$_NaN(d.data.ShouldCapi)} 万元` |
| | | // } |
| | | // if (d.data.Name == this.name) { |
| | | // str = '' |
| | | // } |
| | | // return str |
| | | // }) |
| | | // title |
| | | nodeEnter.append('title') |
| | | .text(d => { |
| | | let str = '' |
| | | if (d.data.DetailInfoList && d.data.DetailInfoList.length > 0) { |
| | | let list = d.data.DetailInfoList[0].Path.split('->') |
| | | str = list.join('-->\n') |
| | | } |
| | | return str |
| | | }) |
| | | .on('click', (d) => { |
| | | this.showPublicMessage(d) |
| | | }) |
| | | // 认缴金额 |
| | | // nodeEnter.append('text') |
| | | // .attr('class', 'text-style-money') |
| | | // .attr('x', 0) |
| | | // .attr('y', showtype === 'up' ? -this.diamonds.h / 2 : 0) |
| | | // .attr('dy', d => d.data.Name.substr(9, d.data.Name.length).length ? '5em' : '4em') |
| | | // .attr('text-anchor', 'middle') |
| | | // .attr('fill', d => d.depth ? '#465166' : '#fff') |
| | | // .text(d => d.data.money) |
| | | /* |
| | | * 绘制箭头 |
| | | * @param {string} markerUnits [设置为strokeWidth箭头会随着线的粗细发生变化] |
| | | * @param {string} viewBox 坐标系的区域 |
| | | * @param {number} markerWidth,markerHeight 标识的大小 |
| | | * @param {string} orient 绘制方向,可设定为:auto(自动确认方向)和 角度值 |
| | | * @param {number} stroke-width 箭头宽度 |
| | | * @param {string} d 箭头的路径 |
| | | * @param {string} fill 箭头颜色 |
| | | * @param {string} id resolved0表示公司 resolved1表示个人 |
| | | * 直接用一个marker达不到两种颜色都展示的效果 |
| | | */ |
| | | nodeEnter.append('marker') |
| | | .attr('id', showtype + 'resolved1') |
| | | .attr('markerUnits', 'strokeWidth') |
| | | .attr('markerUnits', 'userSpaceOnUse') |
| | | .attr('viewBox', '0 -5 10 10') |
| | | .attr('markerWidth', 12) |
| | | .attr('markerHeight', 12) |
| | | .attr('orient', '90') |
| | | .attr('refX', () => { |
| | | return showtype === 'up' ? '-45' : '50' |
| | | }) |
| | | .attr('stroke-width', 2) |
| | | .append('path') |
| | | .attr('d', 'M0,-5L10,0L0,5') |
| | | .attr('fill', '#dbdbdb') |
| | | |
| | | // 将节点转换到它们的新位置。 |
| | | let nodeUpdate = node.transition() |
| | | .duration(DURATION) |
| | | .attr('transform', d => showtype === 'up' ? 'translate(' + d.x + ',' + -(d.y) + ')' : 'translate(' + d.x + ',' + (d.y) + ')') |
| | | |
| | | // 代表是否展开的+-号,function this指向当前dom |
| | | nodeEnter.append('svg:text') |
| | | .attr('type', d => d.id || (d.id = showtype + 'text' + ++this.i)) |
| | | .on('click', function (d) { |
| | | _this.click(d, showtype, sourceTree) |
| | | setTimeout(() => { |
| | | if (this.innerHTML === '-') { |
| | | d.isOpen = false |
| | | this.innerHTML = '+' |
| | | this.setAttribute('fill', '#fff') |
| | | document.querySelector(`circle[type="${d.id}"]`).setAttribute('fill', '#60e897') |
| | | document.querySelector(`rect[type="${d.id}"]`).setAttribute('style', 'fill:#fff') |
| | | } else { |
| | | d.isOpen = true |
| | | this.innerHTML = '-' |
| | | this.setAttribute('fill', '#2d8bef') |
| | | document.querySelector(`circle[type="${d.id}"]`).setAttribute('fill', '#fff') |
| | | document.querySelector(`rect[type="${d.id}"]`).setAttribute('style', 'fill:#fff') |
| | | } |
| | | }, DURATION) |
| | | }) |
| | | .attr('x', 0) |
| | | .attr('dy', d => d.depth ? (showtype === 'up' ? -41 : 49) : 0) |
| | | .attr('text-anchor', 'middle') |
| | | .attr('fill', d => d._children ? '#fff' : '#2d8bef') |
| | | .text(d => this.hasChildNodeArr.indexOf(d) !== -1 ? (source.depth && d.isOpen ? '-' : '+') : '') |
| | | |
| | | // 将退出节点转换到父节点的新位置. |
| | | let nodeExit = node.exit().transition() |
| | | .duration(DURATION) |
| | | .attr('transform', () => showtype === 'up' ? 'translate(' + source.x + ',' + -(source.y) + ')' : 'translate(' + source.x + ',' + (parseInt(source.y)) + ')') |
| | | .remove() |
| | | |
| | | nodeExit.select('rect') |
| | | .attr('width', this.diamonds.w) |
| | | .attr('height', this.diamonds.h) |
| | | .attr('stroke', 'black') |
| | | .attr('stroke-width', 1) |
| | | |
| | | // 修改线条 |
| | | let link = this.svg.selectAll('path.link' + showtype) |
| | | .data(links, d => d.id) |
| | | |
| | | // 在父级前的位置画线。 |
| | | let linkEnter = link.enter().insert('path', 'g') |
| | | .attr('class', 'link' + showtype) |
| | | .attr('marker-start', d => `url(#${showtype}resolved1)`)// 根据箭头标记的id号标记箭头 |
| | | .attr('stroke', d => d.data.Category === COMPANY ? '#dbdbdb' : '#dbdbdb') |
| | | .style('fill-opacity', 1) |
| | | .attr('d', () => { |
| | | let o = { x: source.x0, y: source.y0 } |
| | | return _this.diagonal(o, o, showtype) |
| | | }) |
| | | |
| | | let linkUpdate = linkEnter.merge(link) |
| | | // 过渡更新位置. |
| | | linkUpdate.transition() |
| | | .duration(DURATION) |
| | | .attr('d', d => _this.diagonal(d, d.parent, showtype)) |
| | | |
| | | // 将退出节点转换到父节点的新位置 |
| | | link.exit().transition() |
| | | .duration(DURATION) |
| | | .attr('d', () => { |
| | | let o = { |
| | | x: source.x, |
| | | y: source.y |
| | | } |
| | | return _this.diagonal(o, o, showtype) |
| | | }).remove() |
| | | |
| | | // 隐藏旧位置方面过渡. |
| | | nodes.forEach(d => { |
| | | d.x0 = d.x |
| | | d.y0 = d.y |
| | | }) |
| | | }, |
| | | |
| | | // 拷贝到_children 隐藏1排以后的树 |
| | | collapse(source) { |
| | | if (source.children) { |
| | | source._children = source.children |
| | | source._children.forEach(this.collapse) |
| | | source.children = null |
| | | this.hasChildNodeArr.push(source) |
| | | } |
| | | }, |
| | | |
| | | click(source, showType, sourceTree) { |
| | | // 不是起点才能点 |
| | | if (source.depth) { |
| | | if (source.children) { |
| | | source._children = source.children |
| | | source.children = null |
| | | } else { |
| | | source.children = source._children |
| | | source._children = null |
| | | } |
| | | this.update(source, showType, sourceTree) |
| | | } |
| | | }, |
| | | diagonal(s, d, showtype) { |
| | | let path |
| | | if (showtype === 'up') { |
| | | path = `M ${s.x} ${-s.y} |
| | | L ${s.x} ${parseFloat(-s.y + 80)} |
| | | L ${d.x} ${parseFloat(-s.y + 80)} |
| | | L ${d.x} ${parseFloat(-d.y - 30)}` |
| | | } else { |
| | | path = `M ${s.x} ${s.y} |
| | | L ${s.x} ${s.y - 80} |
| | | L ${d.x} ${s.y - 80} |
| | | L ${d.x} ${d.y + 30}` |
| | | } |
| | | return path |
| | | }, |
| | | |
| | | saveImg() { |
| | | alert('保存') |
| | | }, |
| | | |
| | | resetSvg() { |
| | | this.d3.select('#treesvg_2').remove() |
| | | this.init() |
| | | }, |
| | | reset() { |
| | | this.ev = '0' |
| | | this.iv = '0' |
| | | this.getEquityThroughAndInvest() |
| | | }, |
| | | /** |
| | | * 获取股权穿透信息 |
| | | */ |
| | | getEquityThroughAndInvest() { |
| | | if ($('#rightSide .ErrorTip').length > 0) { |
| | | this.$Message.error('请修改标红部分!') |
| | | return false |
| | | } |
| | | let data = { |
| | | name: this.name, |
| | | ev: this.ev, |
| | | iv: this.iv, |
| | | ispro: false |
| | | } |
| | | this.loading = true |
| | | axios.request({ |
| | | url: '/QiChaCha/GetEquityThroughAndInvestV2', |
| | | data, |
| | | method: 'post' |
| | | }).then((res) => { |
| | | if (res.data.Check) { |
| | | let list = [] |
| | | this.tree.Name = res.data.Data.Name |
| | | this.tree.Parents = res.data.Data.Children |
| | | this.tree.Children = res.data.Data.PathTree[0] ? res.data.Data.PathTree[0].Children : [] |
| | | if (this.isFullscreen) { |
| | | this.init(window.screen.width * this.ratio / 100, window.screen.height * this.ratio / 100) |
| | | $('#textBox_2').css('height', (window.screen.height - 20) * this.ratio / 100) |
| | | $('#rightSide').css('height', (window.screen.height - 20) * this.ratio / 100) |
| | | $('#rightSide').css('paddingTop', (window.screen.height - 120) * this.ratio / 100 * 0.5) |
| | | } else { |
| | | this.init() |
| | | $('#textBox_2').css('height', 500) |
| | | $('#rightSide').css('height', 500) |
| | | $('#rightSide').css('paddingTop', 10) |
| | | } |
| | | } else { |
| | | |
| | | } |
| | | this.loading = false |
| | | }, (err) => { |
| | | this.loading = false |
| | | }) |
| | | } |
| | | }, |
| | | watch: { |
| | | name: { |
| | | handler(newValue) { |
| | | this.getEquityThroughAndInvest() |
| | | } |
| | | }, |
| | | tab: { |
| | | handler(newValue) { |
| | | if (this.tab == 'tab2') { |
| | | this.getEquityThroughAndInvest() |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less"> |
| | | .penetrate-chart { |
| | | .bt-group { |
| | | position: fixed; |
| | | z-index: 999; |
| | | right: 15px; |
| | | bottom: 15px; |
| | | |
| | | button { |
| | | width: 88px; |
| | | height: 32px; |
| | | display: block; |
| | | border-radius: 18px; |
| | | font-size: 14px; |
| | | font-family: PingFangSC-Medium; |
| | | font-weight: 500; |
| | | line-height: 20px; |
| | | } |
| | | |
| | | .save { |
| | | background: rgba(255, 168, 9, 1); |
| | | color: rgba(255, 255, 255, 1); |
| | | } |
| | | |
| | | .reset { |
| | | margin-top: 8px; |
| | | color: rgba(255, 168, 9, 1); |
| | | background: white; |
| | | border: 1px solid rgba(255, 168, 9, 1); |
| | | } |
| | | } |
| | | } |
| | | |
| | | #textBox_2 { |
| | | width: ~"calc(100% - 300px)"; |
| | | height: 500px; |
| | | cursor: pointer; |
| | | border: 1px solid darkgray; |
| | | float: left; |
| | | margin-top: 10px; |
| | | } |
| | | |
| | | #rightSide { |
| | | width: 290px; |
| | | height: 500px; |
| | | padding: 10px; |
| | | border: 1px solid darkgray; |
| | | float: right; |
| | | margin-top: 10px; |
| | | } |
| | | |
| | | #treesvg_2 { |
| | | width: 100%; |
| | | display: block; |
| | | margin: auto; |
| | | |
| | | #g { |
| | | |
| | | .linkup, |
| | | .linkdown { |
| | | fill: none; |
| | | stroke-width: 1px; |
| | | } |
| | | |
| | | .text-style-name { |
| | | font-size: 12px; |
| | | /*no*/ |
| | | font-family: PingFangSC-Medium; |
| | | font-weight: 600; |
| | | } |
| | | |
| | | .num-style-name { |
| | | font-size: 12px; |
| | | /*no*/ |
| | | font-family: PingFangSC-Medium; |
| | | font-weight: 500; |
| | | } |
| | | |
| | | .text-style-money { |
| | | font-size: 10px; |
| | | /*no*/ |
| | | font-family: PingFangSC-Regular; |
| | | font-weight: 400; |
| | | color: rgba(70, 81, 102, 1) |
| | | } |
| | | |
| | | .proportion { |
| | | font-size: 10px; |
| | | font-family: PingFangSC-Regular; |
| | | font-weight: 400; |
| | | } |
| | | } |
| | | |
| | | .proportion-hide, |
| | | .hide-node { |
| | | display: none; |
| | | } |
| | | }</style> |
| | |
| | | <td style="width: 25%;font-weight: normal;text-align: left;background-color: #fff;"> |
| | | {{ |
| | | this.getType(baseInfo.Type) |
| | | |
| | | |
| | | }} |
| | | </td> |
| | | <td style="width: 10%;font-weight: normal;text-align: center;background-color: #f8f8f9;"> |
| | |
| | | </tbody> |
| | | </table> |
| | | </TabPane> |
| | | <TabPane label="企业股东" name="tab2" :index="2"></TabPane> |
| | | <TabPane label="企业股东" name="tab2" :index="2"> |
| | | <Table :data="PartnerCase" :columns="PartnerCaseColumns" transfer border> |
| | | <template slot="Name" slot-scope="params" style="display: flex;"> |
| | | <img v-if="params.row.logo" :src="params.row.logo" style="height: 60px;" /> |
| | | <span style="display:inline-block;">{{ |
| | | params.row.Name ? |
| | | params.row.Name : '--' |
| | | }}</span> |
| | | </template> |
| | | </Table> |
| | | <div style="margin-top: 12px"> |
| | | <Page :current="pageIndex" :total="TotalItems" :page-size="pageSize" style="text-align: right" |
| | | @on-change="changePageIndex" ref="pagesChange1" show-elevator /> |
| | | </div> |
| | | </TabPane> |
| | | </Tabs> |
| | | </Card> |
| | | </div> |
| | |
| | | pageSize: 10, |
| | | loadingTable: false, |
| | | baseInfo: {}, |
| | | |
| | | holderList: {}, |
| | | PartnerCase: [] |
| | | } |
| | | }, |
| | | mounted() { |
| | |
| | | if (this.tab == 'tab1') { |
| | | this.GetTycTaxCredit() |
| | | } else if (this.tab == 'tab2') { |
| | | // this.GetTycPurchaseLand() |
| | | this.GetHolderList() |
| | | } |
| | | }, |
| | | changePageIndex(e) { |
| | | this.pageIndex = e |
| | | if (this.tab == 'tab1') { |
| | | this.GetTycTaxCredit() |
| | | } else if (this.tab == 'tab2') { |
| | | // this.GetTycPurchaseLand() |
| | | } |
| | | this.GetHolderList() |
| | | |
| | | }, |
| | | // 获取历史记录 |
| | | getSearchInfoList() { |
| | |
| | | this.baseInfo = {} |
| | | }) |
| | | }, |
| | | // 获取企业股东 |
| | | GetHolderList() { |
| | | this.PartnerCase = [] |
| | | let data = { |
| | | name: this.searchName, |
| | | pageIndex: this.pageIndex, |
| | | pageSize: this.pageSize |
| | | } |
| | | axios.request({ |
| | | url: '/QiChaCha/GetHolderList', |
| | | data, |
| | | method: 'post' |
| | | }).then(res => { |
| | | if (res.data.Check) { |
| | | this.holderList = res.data.Data |
| | | this.TotalItems = res.data.Data.TotalItems |
| | | |
| | | |
| | | |
| | | |
| | | if (this.holderList.Items) { |
| | | for (let i = 0; i < this.holderList.Items.length; i++) { |
| | | if (this.holderList.Items[i].CapitalActl.length > 0) { |
| | | let obj = {} |
| | | if (this.holderList.Items[i].Capital.length > 0) { |
| | | console.log(this.holderList.Items[i].Capital); |
| | | obj = { |
| | | Name: this.holderList.Items[i].Name, |
| | | ItemIndex: this.holderList.Items[i].ItemIndex, |
| | | logo: this.holderList.Items[i].Logo, |
| | | type: this.holderList.Items[i].Type, |
| | | CapitalPaymet: this.holderList.Items[i].Capital[0].Paymet, |
| | | CapitalAmomon: this.holderList.Items[i].Capital[0].Amomon, |
| | | CapitalTime: this.holderList.Items[i].Capital[0].Time, |
| | | CapitalPercent:this.holderList.Items[i].Capital[0].Percent, |
| | | CapitalActlPaymet: '', CapitalActlAmomon: '', CapitalActlTime: '',CapitalActlPercent:'' |
| | | } |
| | | } else { |
| | | obj = { |
| | | Name: this.holderList.Items[i].Name, |
| | | ItemIndex: this.holderList.Items[i].ItemIndex, |
| | | logo: this.holderList.Items[i].Logo, |
| | | type: this.holderList.Items[i].Type, |
| | | CapitalPaymet: '', CapitalAmomon: '', CapitalTime: '', CapitalPercent: '', |
| | | CapitalActlPaymet: '', CapitalActlAmomon: '', CapitalActlTime: '',CapitalActlPercent:'' |
| | | } |
| | | } |
| | | let data = this.holderList.Items[i].CapitalActl |
| | | for (let k = 0; k < data.length; k++) { |
| | | |
| | | obj.CapitalActlPaymet += `${data[k].Paymet};` |
| | | obj.CapitalActlAmomon += `${data[k].Amomon};` |
| | | obj.CapitalActlTime += `${data[k].Time};` |
| | | obj.CapitalActlPercent += `${data[k].Percent};` |
| | | // CapitalActlPaymet:data[k].Paymet,CapitalActlAmomon:data[k].Amomon,CapitalActlTime:data[k].Time,Percent:data[k].Percent, |
| | | } |
| | | this.PartnerCase.push(obj) |
| | | } else { |
| | | console.log(this.holderList.Items[i]); |
| | | this.PartnerCase.push({ |
| | | Name: this.holderList.Items[i].Name, |
| | | ItemIndex: this.holderList.Items[i].ItemIndex, |
| | | logo: this.holderList.Items[i].Logo, |
| | | type: this.holderList.Items[i].Type, |
| | | CapitalPaymet: this.holderList.Items[i].Capital.length > 0 ? (this.holderList.Items[i].Capital[0].Paymet ? this.holderList.Items[i].Capital[0].Paymet : '') : '', CapitalAmomon: this.holderList.Items[i].Capital.length > 0 ? (this.holderList.Items[i].Capital[0].Amomon ? this.holderList.Items[i].Capital[0].Amomon : '') : '', CapitalTime: this.holderList.Items[i].Capital.length > 0 ? (this.holderList.Items[i].Capital[0].Time ? this.holderList.Items[i].Capital[0].Time : '') : '', CapitalPercent: this.holderList.Items[i].Capital.length > 0 ? (this.holderList.Items[i].Capital[0].Percent ? this.holderList.Items[i].Capital[0].Percent : '') : '', |
| | | // CapitalPaymet: this.holderList.Items[i].Capital[0].Paymet, CapitalAmomon:this.holderList.Items[i].Capital[0].Amomon , CapitalTime:this.holderList.Items[i].Capital[0].Time , Percent:this.holderList.Items[i].Capital[0].Percent, |
| | | CapitalActlPaymet: '', CapitalActlAmomon: '', CapitalActlTime: '',CapitalActlPercent:'' |
| | | }) |
| | | } |
| | | } |
| | | console.log(this.PartnerCase); |
| | | } |
| | | } else { |
| | | this.holderList = {} |
| | | this.TotalItems = 0 |
| | | } |
| | | |
| | | |
| | | }, res => { |
| | | this.holderList = {} |
| | | this.TotalItems = 0 |
| | | }) |
| | | }, |
| | | |
| | | |
| | | |
| | |
| | | return now; |
| | | } |
| | | }, |
| | | getType(item){ |
| | | if(item==1){ |
| | | getType(item) { |
| | | if (item == 1) { |
| | | return '人' |
| | | }else if(item==2){ |
| | | } else if (item == 2) { |
| | | return '公司' |
| | | }else { |
| | | } else { |
| | | return '其它' |
| | | } |
| | | |
| | |
| | | |
| | | }, |
| | | computed: { |
| | | SWPJColumns() { // 税务评级 |
| | | let columns = [] |
| | | columns.push({ |
| | | title: '序号', |
| | | width: 80, |
| | | align: 'center', |
| | | render: (h, params) => { |
| | | return h( |
| | | 'span', |
| | | params.row.ItemIndex |
| | | ) |
| | | }, |
| | | fixed: 'left' |
| | | }) |
| | | columns.push({ |
| | | title: '评价年度', |
| | | key: 'year', |
| | | render: (h, params) => { |
| | | return h('span', params.row.year ? params.row.year : '--') |
| | | }, |
| | | align: 'center', |
| | | // minWidth: 200 |
| | | }) |
| | | columns.push({ |
| | | title: '纳税人信用级别', |
| | | key: 'grade', |
| | | render: (h, params) => { |
| | | return h('span', params.row.grade ? params.row.grade : '--') |
| | | }, |
| | | align: 'center', |
| | | // minWidth: 200 |
| | | }) |
| | | columns.push({ |
| | | title: '类型', |
| | | key: 'type ', |
| | | render: (h, params) => { |
| | | return h('span', params.row.type ? params.row.type : '--') |
| | | }, |
| | | align: 'center', |
| | | // width: 120 |
| | | }) |
| | | columns.push({ |
| | | title: '纳税人识别号', |
| | | key: 'idNumber', |
| | | render: (h, params) => { |
| | | return h('span', params.row.idNumber ? params.row.idNumber : '--') |
| | | }, |
| | | // width: 120, |
| | | align: 'center', |
| | | }) |
| | | |
| | | columns.push({ |
| | | title: '评价单位', |
| | | key: 'evalDepartment', |
| | | render: (h, params) => { |
| | | return h('span', params.row.evalDepartment ? params.row.evalDepartment : '--') |
| | | }, |
| | | minWidth: 120 |
| | | }) |
| | | |
| | | return columns |
| | | }, |
| | | GDXXColumns() { // 购地信息 |
| | | PartnerCaseColumns() { // 股东出资信息 |
| | | let columns = [] |
| | | columns.push({ |
| | | title: '序号', |
| | |
| | | ) |
| | | } |
| | | }) |
| | | |
| | | columns.push({ |
| | | title: '土地坐落', |
| | | key: 'projectLocation', |
| | | render: (h, params) => { |
| | | return h('span', params.row.projectLocation ? params.row.projectLocation : '--') |
| | | }, |
| | | title: '股东名称', |
| | | slot: 'Name', |
| | | // render: (h, params) => { |
| | | // return h('span', params.row.Name ? params.row.Name : '--') |
| | | // }, |
| | | align: 'center', |
| | | // width: 130 |
| | | minWidth: 120, |
| | | }) |
| | | |
| | | columns.push({ |
| | | title: '土地用途', |
| | | key: 'landUseType', |
| | | title: '股东类型', |
| | | key: 'type', |
| | | render: (h, params) => { |
| | | return h('span', params.row.landUseType ? params.row.landUseType : '--') |
| | | if (params.row.type == 1) { |
| | | return h('span', '公司') |
| | | } else if (params.row.type == 2) { |
| | | return h('span', '⼈') |
| | | } else if (params.row.type == 3) { |
| | | return h('span', '其它') |
| | | }else { |
| | | return h('span', '--') |
| | | } |
| | | // return h('span', params.row.Percent ? params.row.Percent : '--') |
| | | }, |
| | | align: 'center', |
| | | // width: 130 |
| | | |
| | | }) |
| | | |
| | | columns.push({ |
| | | title: '总面积(公顷)', |
| | | key: 'area', |
| | | render: (h, params) => { |
| | | return h('span', params.row.area ? params.row.area : '--') |
| | | } |
| | | |
| | | }) |
| | | columns.push({ |
| | | title: '行政区', |
| | | key: 'district', |
| | | render: (h, params) => { |
| | | return h('span', params.row.district ? params.row.district : '--') |
| | | } |
| | | |
| | | }) |
| | | columns.push({ |
| | | title: '供应方式', |
| | | key: 'landSupplyMethod', |
| | | render: (h, params) => { |
| | | return h('span', params.row.landSupplyMethod ? params.row.landSupplyMethod : '--') |
| | | } |
| | | |
| | | }) |
| | | columns.push({ |
| | | title: '签订日期', |
| | | key: 'contractDate', |
| | | render: (h, params) => { |
| | | return h('span', params.row.contractDate ? this.getDate(params.row.contractDate) : '--') |
| | | } |
| | | }) |
| | | columns.push({ |
| | | title: '操作', |
| | | slot: 'action', |
| | | width: 100, |
| | | width:120, |
| | | align: 'center' |
| | | }) |
| | | return columns |
| | | }, |
| | | getTycBidsColumns() { // 企业招投标信息 |
| | | let columns = [] |
| | | // columns.push({ |
| | | // title: '出资比例(%)', |
| | | // key: 'Percent', |
| | | // render: (h, params) => { |
| | | // return h('span', params.row.Percent ? params.row.Percent : '--') |
| | | // }, |
| | | // minWidth: 120, |
| | | // align: 'center' |
| | | // }) |
| | | columns.push({ |
| | | title: '序号', |
| | | width: 90, |
| | | title: '认缴明细', |
| | | align: 'center', |
| | | render: (h, params) => { |
| | | return h( |
| | | 'span', |
| | | params.row.ItemIndex |
| | | ) |
| | | } |
| | | key: 'capital', |
| | | children: [ |
| | | { |
| | | title: '出资金额(万元)', |
| | | key: 'CapitalAmomon', |
| | | render: (h, params) => { |
| | | return h('span', params.row.CapitalAmomon ? params.row.CapitalAmomon : '--') |
| | | }, |
| | | width: 100, |
| | | align: 'center' |
| | | }, |
| | | { |
| | | title: '认缴方式', |
| | | key: 'CapitalPaymet', |
| | | render: (h, params) => { |
| | | return h('span', params.row.CapitalPaymet ? params.row.CapitalPaymet : '--') |
| | | }, |
| | | width: 100, |
| | | align: 'center' |
| | | }, |
| | | |
| | | { |
| | | title: '出资时间', |
| | | key: 'CapitalTime', |
| | | render: (h, params) => { |
| | | return h('span', params.row.CapitalTime ? params.row.CapitalTime : '--') |
| | | }, |
| | | width: 105, |
| | | align: 'center' |
| | | }, |
| | | { |
| | | title: '占比', |
| | | key: 'CapitalPercent', |
| | | render: (h, params) => { |
| | | return h('span', params.row.CapitalPercent ? params.row.CapitalPercent : '--') |
| | | }, |
| | | width: 105, |
| | | align: 'center' |
| | | } |
| | | ] |
| | | }) |
| | | columns.push({ |
| | | title: '实缴明细', |
| | | key: 'capitalActl', |
| | | align: 'center', |
| | | children: [ |
| | | { |
| | | title: '出资金额(万元)', |
| | | key: 'CapitalActlAmomon', |
| | | align: 'center', |
| | | width:100, |
| | | className: 'CapitalActl', |
| | | render: (h, params) => { |
| | | if (params.row.CapitalActlAmomon) { |
| | | let html = ""; |
| | | let list = params.row.CapitalActlAmomon.split(';'); |
| | | for (let index in list) { |
| | | if (list[index]) { |
| | | html += "<span>" + list[index] + "</span>"; |
| | | html += "</br>"; |
| | | } |
| | | } |
| | | return h("span", { |
| | | domProps: { |
| | | innerHTML: html |
| | | } |
| | | }); |
| | | |
| | | columns.push({ |
| | | title: '标题', |
| | | key: 'title', |
| | | render: (h, params) => { |
| | | return h('span', params.row.title ? params.row.title : '--') |
| | | }, |
| | | minWidth: 200 |
| | | }) |
| | | columns.push({ |
| | | title: '采购人', |
| | | key: 'purchaser', |
| | | render: (h, params) => { |
| | | return h('span', params.row.purchaser ? params.row.purchaser : '--') |
| | | } |
| | | }) |
| | | } else { |
| | | return h('span', '--') |
| | | } |
| | | } |
| | | }, |
| | | { |
| | | title: '实缴方式', |
| | | key: 'CapitalActlPaymet', |
| | | |
| | | render: (h, params) => { |
| | | if (params.row.CapitalActlPaymet) { |
| | | let html = ""; |
| | | let list = params.row.CapitalActlPaymet.split(';'); |
| | | for (let index in list) { |
| | | if (list[index]) { |
| | | html += "<span>" + list[index] ? list[index].indexOf('1') > -1 || list[index].indexOf('货币') > -1 ? '货币' : '其它' : '' + "</span>"; |
| | | html += "</br>"; |
| | | } |
| | | |
| | | columns.push({ |
| | | title: '发布日期', |
| | | key: 'publishTime', |
| | | render: (h, params) => { |
| | | return h('span', params.row.publishTime ? this.getDate(params.row.publishTime) : '--') |
| | | }, |
| | | width: 120 |
| | | }) |
| | | columns.push({ |
| | | title: '操作', |
| | | slot: 'action', |
| | | width: 100, |
| | | align: 'center' |
| | | }) |
| | | return columns |
| | | }, |
| | | GetTycLandPublicityColumns() { // 地块公示 |
| | | let columns = [] |
| | | columns.push({ |
| | | title: '序号', |
| | | width: 90, |
| | | align: 'center', |
| | | render: (h, params) => { |
| | | return h( |
| | | 'span', |
| | | params.row.ItemIndex |
| | | ) |
| | | } |
| | | }) |
| | | } |
| | | return h("span", { |
| | | domProps: { |
| | | innerHTML: html == '' ? '--' : html |
| | | } |
| | | }); |
| | | } else { |
| | | return h('span', '--') |
| | | } |
| | | |
| | | columns.push({ |
| | | title: '地块位置', |
| | | key: 'land_location', |
| | | render: (h, params) => { |
| | | return h('span', params.row.land_location ? params.row.land_location : '--') |
| | | }, |
| | | minWidth: 130 |
| | | }) |
| | | columns.push({ |
| | | title: '行政区', |
| | | key: 'administrative_district', |
| | | render: (h, params) => { |
| | | return h('span', params.row.administrative_district ? params.row.administrative_district : '--') |
| | | }, |
| | | minWidth: 130 |
| | | }) |
| | | columns.push({ |
| | | title: '土地面积(公顷)', |
| | | key: 'land_area', |
| | | render: (h, params) => { |
| | | return h('span', params.row.land_area ? params.row.land_area : '--') |
| | | }, |
| | | minWidth: 130 |
| | | }) |
| | | columns.push({ |
| | | title: '土地用途', |
| | | key: 'land_usefulness', |
| | | render: (h, params) => { |
| | | return h('span', params.row.land_usefulness ? params.row.land_usefulness : '--') |
| | | }, |
| | | minWidth: 130 |
| | | }) |
| | | columns.push({ |
| | | title: '发布机关', |
| | | key: 'publication_organize', |
| | | render: (h, params) => { |
| | | return h('span', params.row.publication_organize ? params.row.publication_organize : '--') |
| | | }, |
| | | minWidth: 130 |
| | | }) |
| | | columns.push({ |
| | | title: '发布日期', |
| | | key: 'publication_date', |
| | | render: (h, params) => { |
| | | return h('span', params.row.publication_date ? params.row.publication_date : '--') |
| | | }, |
| | | width: 120 |
| | | }) |
| | | columns.push({ |
| | | title: '操作', |
| | | slot: 'action', |
| | | width: 100, |
| | | align: 'center' |
| | | }) |
| | | return columns |
| | | }, |
| | | GetTycLandTransferColumns() { // 土地转让 |
| | | let columns = [] |
| | | columns.push({ |
| | | title: '序号', |
| | | width: 90, |
| | | align: 'center', |
| | | render: (h, params) => { |
| | | return h( |
| | | 'span', |
| | | params.row.ItemIndex |
| | | ) |
| | | } |
| | | }) |
| | | columns.push({ |
| | | title: '土地坐落', |
| | | key: 'location', |
| | | render: (h, params) => { |
| | | return h('span', params.row.location ? params.row.location : '--') |
| | | } |
| | | }) |
| | | columns.push({ |
| | | title: '土地面积(公顷)', |
| | | key: 'area', |
| | | render: (h, params) => { |
| | | return h('span', params.row.area ? params.row.area : '--') |
| | | } |
| | | }) |
| | | columns.push({ |
| | | title: '原土地使用权人', |
| | | key: 'user_change_pre_clean', |
| | | render: (h, params) => { |
| | | return h('span', params.row.user_change_pre_clean ? params.row.user_change_pre_clean : '--') |
| | | } |
| | | }) |
| | | columns.push({ |
| | | title: '现土地使用权人', |
| | | key: 'user_change_now_clean', |
| | | render: (h, params) => { |
| | | return h('span', params.row.user_change_now_clean ? params.row.user_change_now_clean : '--') |
| | | } |
| | | }) |
| | | columns.push({ |
| | | title: '转让价格(万元)', |
| | | key: 'merchandise_price', |
| | | render: (h, params) => { |
| | | return h('span', params.row.merchandise_price ? params.row.merchandise_price : '--') |
| | | } |
| | | }) |
| | | columns.push({ |
| | | title: '成交日期', |
| | | key: 'merchandise_time', |
| | | render: (h, params) => { |
| | | return h('span', params.row.merchandise_time ? params.row.merchandise_time : '--') |
| | | }, |
| | | width: 130 |
| | | }) |
| | | columns.push({ |
| | | title: '操作', |
| | | slot: 'action', |
| | | width: 100, |
| | | align: 'center' |
| | | }) |
| | | return columns |
| | | }, |
| | | GetTycPsNewsColumns() { // 新闻舆情 |
| | | let columns = [] |
| | | columns.push({ |
| | | title: '序号', |
| | | width: 90, |
| | | align: 'center', |
| | | render: (h, params) => { |
| | | return h( |
| | | 'span', |
| | | params.row.ItemIndex |
| | | ) |
| | | } |
| | | }) |
| | | columns.push({ |
| | | title: '数据来源', |
| | | key: 'website', |
| | | render: (h, params) => { |
| | | return h('span', params.row.website ? params.row.website : '--') |
| | | }, |
| | | width: 120 |
| | | }) |
| | | columns.push({ |
| | | title: '简介', |
| | | key: 'abstracts', |
| | | render: (h, params) => { |
| | | return h('span', params.row.abstracts ? params.row.abstracts : '--') |
| | | }, |
| | | align: 'right', |
| | | minWidth: 400 |
| | | }) |
| | | }, |
| | | // return h('span', params.row.CapitalActlPaymet ? params.row.CapitalActlPaymet.indexOf('1')>-1||params.row.CapitalActlPaymet.indexOf('货币')>-1?'货币':'其它' : '--') |
| | | width: 100, |
| | | align: 'center', |
| | | }, |
| | | { |
| | | title: '出资时间', |
| | | key: 'CapitalActlTime', |
| | | width: 105, |
| | | align: 'center', |
| | | className: 'CapitalActl', |
| | | render: (h, params) => { |
| | | if (params.row.CapitalActlAmomon) { |
| | | let html = ""; |
| | | let list = params.row.CapitalActlTime.split(';'); |
| | | for (let index in list) { |
| | | if (list[index]) { |
| | | html += "<span>" + list[index] + "</span>"; |
| | | html += "</br>"; |
| | | } |
| | | } |
| | | return h("span", { |
| | | domProps: { |
| | | innerHTML: html |
| | | } |
| | | }); |
| | | } else { |
| | | return h('span', '--') |
| | | } |
| | | } |
| | | }, |
| | | { |
| | | title: '占比', |
| | | key: 'CapitalActlPercent', |
| | | width: 105, |
| | | align: 'center', |
| | | className: 'CapitalActl', |
| | | render: (h, params) => { |
| | | if (params.row.CapitalActlAmomon) { |
| | | let html = ""; |
| | | let list = params.row.CapitalActlPercent.split(';'); |
| | | for (let index in list) { |
| | | if (list[index]) { |
| | | html += "<span>" + list[index] + "</span>"; |
| | | html += "</br>"; |
| | | } |
| | | } |
| | | return h("span", { |
| | | domProps: { |
| | | innerHTML: html |
| | | } |
| | | }); |
| | | } else { |
| | | return h('span', '--') |
| | | } |
| | | |
| | | columns.push({ |
| | | title: '标题', |
| | | key: 'title', |
| | | render: (h, params) => { |
| | | return h('span', params.row.title ? params.row.title : '--') |
| | | }, |
| | | minWidth: 200 |
| | | }) |
| | | columns.push({ |
| | | title: '标签', |
| | | key: 'tags', |
| | | render: (h, params) => { |
| | | return h('span', params.row.tags ? params.row.tags : '--') |
| | | }, |
| | | minWidth: 200 |
| | | }) |
| | | columns.push({ |
| | | title: '标签分类', |
| | | key: 'emotion', |
| | | render: (h, params) => { |
| | | return h('span', params.row.emotion ? params.row.emotion : '--') |
| | | }, |
| | | minWidth: 200 |
| | | }) |
| | | columns.push({ |
| | | title: '发布时间', |
| | | key: 'ExecutiveCourt', |
| | | render: (h, params) => { |
| | | return h('span', params.row.ExecutiveCourt ? this.getDate(params.row.ExecutiveCourt) : '--') |
| | | }, |
| | | width: 120 |
| | | }) |
| | | columns.push({ |
| | | title: '新闻链接', |
| | | slot: 'action', |
| | | width: 100, |
| | | align: 'center' |
| | | }) |
| | | return columns |
| | | }, |
| | | pochanListColumns() { // 破产重整 |
| | | let columns = [] |
| | | columns.push({ |
| | | title: '序号', |
| | | width: 90, |
| | | align: 'center', |
| | | render: (h, params) => { |
| | | return h( |
| | | 'span', |
| | | params.row.ItemIndex |
| | | ) |
| | | } |
| | | }) |
| | | columns.push({ |
| | | title: '案号', |
| | | key: 'caseNo', |
| | | render: (h, params) => { |
| | | return h('span', params.row.caseNo ? params.row.caseNo : '--') |
| | | } |
| | | }) |
| | | columns.push({ |
| | | title: '案件类型', |
| | | key: 'caseType', |
| | | render: (h, params) => { |
| | | return h('span', params.row.caseType ? params.row.caseType : '--') |
| | | } |
| | | }) |
| | | columns.push({ |
| | | title: '被申请人', |
| | | key: 'respondent', |
| | | render: (h, params) => { |
| | | return h('span', params.row.respondent ? params.row.respondent : '--') |
| | | } |
| | | }) |
| | | columns.push({ |
| | | title: '公开时间', |
| | | key: 'submitTime', |
| | | render: (h, params) => { |
| | | return h('span', params.row.submitTime ? params.row.submitTime : '--') |
| | | } |
| | | }) |
| | | columns.push({ |
| | | title: '操作', |
| | | slot: 'action', |
| | | width: 100, |
| | | align: 'center' |
| | | }) |
| | | return columns |
| | | }, |
| | | zhiXingColumns() { // 被执行人 |
| | | let columns = [] |
| | | columns.push({ |
| | | title: '序号', |
| | | width: 90, |
| | | align: 'center', |
| | | render: (h, params) => { |
| | | return h( |
| | | 'span', |
| | | params.row.ItemIndex |
| | | ) |
| | | } |
| | | }) |
| | | columns.push({ |
| | | title: '案号', |
| | | key: 'caseCode', |
| | | render: (h, params) => { |
| | | return h('span', params.row.caseCode ? params.row.caseCode : '--') |
| | | } |
| | | }) |
| | | columns.push({ |
| | | title: '被执行人', |
| | | key: 'pname', |
| | | render: (h, params) => { |
| | | return h('span', params.row.pname ? params.row.pname : '--') |
| | | } |
| | | }) |
| | | columns.push({ |
| | | title: '身份证号/组织机构代码', |
| | | key: 'partyCardNum', |
| | | render: (h, params) => { |
| | | return h('span', params.row.partyCardNum ? params.row.partyCardNum : '--') |
| | | } |
| | | }) |
| | | |
| | | |
| | | columns.push({ |
| | | title: '执行标的(元)', |
| | | key: 'execMoney', |
| | | render: (h, params) => { |
| | | return h('span', params.row.execMoney ? this.CustomMethods.numTo$(params.row.execMoney) : '--') |
| | | }, |
| | | align: 'right' |
| | | }) |
| | | columns.push({ |
| | | title: '执行法院', |
| | | key: 'execCourtName', |
| | | render: (h, params) => { |
| | | return h('span', params.row.execCourtName ? params.row.execCourtName : '--') |
| | | } |
| | | }) |
| | | columns.push({ |
| | | title: '立案日期', |
| | | key: 'caseCreateTime', |
| | | render: (h, params) => { |
| | | return h('span', params.row.caseCreateTime ? this.getDate(params.row.caseCreateTime) : '--') |
| | | }, |
| | | width: 130 |
| | | }) |
| | | return columns |
| | | }, |
| | | shixinListColumns() { //失信被执行 |
| | | let columns = [] |
| | | columns.push({ |
| | | title: '序号', |
| | | width: 90, |
| | | align: 'center', |
| | | render: (h, params) => { |
| | | return h( |
| | | 'span', |
| | | params.row.ItemIndex |
| | | ) |
| | | } |
| | | }) |
| | | columns.push({ |
| | | title: '案号', |
| | | key: 'casecode', |
| | | render: (h, params) => { |
| | | return h('span', params.row.casecode ? params.row.casecode : '--') |
| | | } |
| | | }) |
| | | columns.push({ |
| | | title: '执行法院', |
| | | key: 'courtname', |
| | | render: (h, params) => { |
| | | return h('span', params.row.courtname ? params.row.courtname : '--') |
| | | } |
| | | }) |
| | | columns.push({ |
| | | title: '履行情况', |
| | | key: 'performance', |
| | | render: (h, params) => { |
| | | return h('span', params.row.performance ? params.row.performance : '--') |
| | | } |
| | | }) |
| | | columns.push({ |
| | | title: '执行依据文号', |
| | | key: 'gistid', |
| | | render: (h, params) => { |
| | | return h('span', params.row.gistid ? params.row.gistid : '--') |
| | | } |
| | | }) |
| | | columns.push({ |
| | | title: '发布日期', |
| | | key: 'publishdate', |
| | | render: (h, params) => { |
| | | return h('span', params.row.publishdate ? this.getDate(params.row.publishdate) : '--') |
| | | } |
| | | }) |
| | | columns.push({ |
| | | title: '立案日期', |
| | | key: 'regdate', |
| | | render: (h, params) => { |
| | | return h('span', params.row.regdate ? this.getDate(params.row.regdate) : '--') |
| | | } |
| | | }) |
| | | columns.push({ |
| | | title: '操作', |
| | | slot: 'action', |
| | | width: 100, |
| | | align: 'center' |
| | | } |
| | | } |
| | | ] |
| | | }) |
| | | return columns |
| | | }, |
| | | |
| | | xianzhixiaofeiColumns() { //限制消费 |
| | | let columns = [] |
| | | columns.push({ |
| | | title: '序号', |
| | | width: 90, |
| | | align: 'center', |
| | | render: (h, params) => { |
| | | return h( |
| | | 'span', |
| | | params.row.ItemIndex |
| | | ) |
| | | } |
| | | }) |
| | | columns.push({ |
| | | title: '案号', |
| | | key: 'CaseCode', |
| | | render: (h, params) => { |
| | | return h('span', params.row.CaseCode ? params.row.CaseCode : '--') |
| | | } |
| | | }) |
| | | columns.push({ |
| | | title: '企业名称', |
| | | key: 'Qyinfo', |
| | | render: (h, params) => { |
| | | return h('span', params.row.Qyinfo ? params.row.Qyinfo : '--') |
| | | }, |
| | | minWidth: 200 |
| | | }) |
| | | columns.push({ |
| | | title: '立案时间', |
| | | key: 'CreateTime', |
| | | render: (h, params) => { |
| | | return h('span', params.row.CreateTime ? params.row.CreateTime : '--') |
| | | } |
| | | }) |
| | | columns.push({ |
| | | title: '限制消费者名称', |
| | | key: 'Xname', |
| | | render: (h, params) => { |
| | | return h('span', params.row.Xname ? params.row.Xname : '--') |
| | | } |
| | | }) |
| | | columns.push({ |
| | | title: '申请人', |
| | | key: 'applicant', |
| | | render: (h, params) => { |
| | | return h('span', params.row.applicant ? params.row.applicant : '--') |
| | | } |
| | | }) |
| | | columns.push({ |
| | | title: '发布日期', |
| | | key: 'publishDate', |
| | | render: (h, params) => { |
| | | return h('span', params.row.publishDate ? this.getDate(params.row.publishDate) : '--') |
| | | } |
| | | }) |
| | | |
| | | columns.push({ |
| | | title: '文件', |
| | | slot: 'action', |
| | | minWidth: 200, |
| | | align: 'center' |
| | | }) |
| | | return columns |
| | | }, |
| | | zbajColumns() { //终本案件 |
| | | let columns = [] |
| | | columns.push({ |
| | | title: '序号', |
| | | width: 90, |
| | | align: 'center', |
| | | render: (h, params) => { |
| | | return h( |
| | | 'span', |
| | | params.row.ItemIndex |
| | | ) |
| | | } |
| | | }) |
| | | columns.push({ |
| | | title: '案号', |
| | | key: 'CaseCode', |
| | | render: (h, params) => { |
| | | return h('span', params.row.CaseCode ? params.row.CaseCode : '--') |
| | | } |
| | | }) |
| | | columns.push({ |
| | | title: '终本日期', |
| | | key: 'CaseFinalTime', |
| | | render: (h, params) => { |
| | | return h('span', params.row.CaseFinalTime ? this.getDate(params.row.CaseFinalTime) : '--') |
| | | }, |
| | | // minWidth:200 |
| | | }) |
| | | columns.push({ |
| | | title: '立案时间', |
| | | key: 'CaseCreateTime', |
| | | render: (h, params) => { |
| | | return h('span', params.row.CaseCreateTime ? params.row.CaseCreateTime.split('00:00:00')[0] : '--') |
| | | } |
| | | }) |
| | | columns.push({ |
| | | title: '执行法院', |
| | | key: 'ExecCourtName', |
| | | render: (h, params) => { |
| | | return h('span', params.row.ExecCourtName ? params.row.ExecCourtName : '--') |
| | | } |
| | | }) |
| | | columns.push({ |
| | | title: '执行标的', |
| | | key: 'ExecMoney', |
| | | render: (h, params) => { |
| | | return h('span', params.row.ExecMoney ? params.row.ExecMoney : '--') |
| | | } |
| | | }) |
| | | columns.push({ |
| | | title: '未履行金额', |
| | | key: 'NoExecMoney', |
| | | render: (h, params) => { |
| | | return h('span', params.row.NoExecMoney ? this.getDate(params.row.NoExecMoney) : '--') |
| | | } |
| | | }) |
| | | columns.push({ |
| | | title: '被执行人名称', |
| | | key: 'Zname', |
| | | render: (h, params) => { |
| | | return h('span', params.row.Zname ? params.row.Zname : '--') |
| | | } |
| | | }) |
| | | return columns |
| | | }, |
| | | }, |
| | | destroyed() { |
| | | this.checkCityInvestmentZone = '' |
| | |
| | | color: #FFF; |
| | | } |
| | | |
| | | }</style> |
| | | } |
| | | .CapitalActl { |
| | | padding-bottom: 0; |
| | | margin-bottom: 0 |
| | | } |
| | | </style> |
| | | |
| New file |
| | |
| | | <template> |
| | | <div id="topId"> |
| | | <div v-show="scrollTop < -200" @click="backTop" |
| | | style="width: 20px;height: 20px;position: fixed;bottom: 45px;right: 22px; |
| | | z-index: 99999;cursor: pointer;text-align: center;line-height: 18px;background-color: darkgray;color: white;"> |
| | | <Icon type="md-arrow-round-up" size="18" /> |
| | | </div> |
| | | <Card id="backTop"> |
| | | <div class="customTitle"> |
| | | <Icon custom="custom custom-gongkaixinxi2"></Icon> |
| | | <span style="margin-left: 6px;">关系发现</span> |
| | | </div> |
| | | </Card> |
| | | <Card style="position: relative;margin-top: 12px;"> |
| | | <Spin v-show="loading" fix></Spin> |
| | | <ul class="lists_readAndEdit clearfix" style="margin-top: 0;padding-bottom: 6px;"> |
| | | <li class="list" style="width: 100%;"> |
| | | <span class="list_name">企业名称</span> |
| | | <div class="list_value"> |
| | | <Poptip trigger="focus" placement="bottom-start" transfer class="node_poptip" |
| | | style="width: 400px;float: left;margin-right: 10px;"> |
| | | <Input v-model="searchName" size="large" @on-change="remoteMethod" @on-enter="mergeRequest" |
| | | placeholder="请输入企业名称"></Input> |
| | | <ul slot="content" style="width: 500px;"> |
| | | <li v-if="optionsList && optionsList.length == 0">无匹配结果</li> |
| | | <li v-for="(item, index) in optionsList" :key="index" @click="changeBelongLtdId(item.Name)" |
| | | class="clearfix" style="cursor:pointer;padding: 4px 2px;"> |
| | | <span style="float: left;">{{ item.Name }}</span> |
| | | <span |
| | | style="float: right;display: inline-block;border-radius: 4px;background-color: #e5f7fa;padding: 1px 4px;color: #05b6d0;">{{ |
| | | item.IsOriginalNameMatch ? '历史名称匹配' : '企业名称匹配' |
| | | }}</span> |
| | | </li> |
| | | </ul> |
| | | </Poptip> |
| | | <Button size="large" icon="ios-search" style="float: left;" type="primary" @click="mergeRequest">搜索 |
| | | </Button> |
| | | </div> |
| | | </li> |
| | | <li v-if="historyList.length > 0" class="list" style="width: 100%;margin-top: 2px;"> |
| | | <span class="list_name" style="top: 5px;">历史记录</span> |
| | | <div class="list_value"> |
| | | <Tag v-for="(item, index) in historyList" type="border" style="cursor:pointer;" |
| | | @click.native="quickSearch(item)">{{ item }} |
| | | </Tag> |
| | | </div> |
| | | </li> |
| | | </ul> |
| | | <Tabs :value="tab" @on-click="changeTab" type="card" style="margin-top:8px;"> |
| | | <TabPane label="疑似实际控制人" name="tab1" :index="1"> |
| | | <tab1 :name="searchName" :tab="tab"></tab1> |
| | | </TabPane> |
| | | <TabPane label="股权穿透图" name="tab2" :index="2"> |
| | | <tab2 :name="searchName" :tab="tab"></tab2> |
| | | </TabPane> |
| | | </Tabs> |
| | | </Card> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import $ from 'jquery' |
| | | import axios from '@/libs/api.request' |
| | | import tab1 from './components/tab1.vue' |
| | | import tab2 from './components/tab2.vue' |
| | | |
| | | |
| | | export default { |
| | | name: 'publicInformation', |
| | | components: { |
| | | tab1, |
| | | tab2 |
| | | }, |
| | | props: { |
| | | |
| | | }, |
| | | |
| | | data() { |
| | | return { |
| | | scrollTop: 0,// 距离顶部距离 |
| | | topTrue: false, |
| | | tab: 'tab1', |
| | | searchName: '', |
| | | selectedName: '', |
| | | optionsList: [], |
| | | historyList: [], |
| | | loading: false, |
| | | pageIndex: 1, |
| | | TotalItems: 0, |
| | | pageSize: 10, |
| | | loadingTable: false, |
| | | baseInfo: {}, |
| | | holderList: {}, |
| | | PartnerCase: [] |
| | | } |
| | | }, |
| | | mounted() { |
| | | window.addEventListener('scroll', this.scrollListen, true) |
| | | |
| | | this.ProjId = localStorage.getItem('RiskProjectId') |
| | | this.CompanyId = localStorage.getItem('RiskCompanyId') |
| | | this.accessParams = this.$store.state.user.access |
| | | if (this.accessParams.indexOf('enterpriseControl') >= 0) { |
| | | this.accessShow = true |
| | | } else { |
| | | this.accessShow = false |
| | | } |
| | | // if (this.$route.query.name) { |
| | | // this.searchName = this.$route.query.name |
| | | // this.selectedName = this.$route.query.name |
| | | // // this.changeTab('tab1') |
| | | this.getSearchInfoList2() |
| | | // } else { |
| | | // // this.getSearchInfoList() |
| | | // } |
| | | |
| | | // console.log(this.searchName, this.selectedName, this.$route.query.name); |
| | | // this.changeTab('tab1') |
| | | }, |
| | | beforeRouteLeave(to, from, next) { |
| | | this.clearMyInterval = true |
| | | window.removeEventListener('scroll', this.scrollListen, true) |
| | | next() |
| | | }, |
| | | deactivated() { |
| | | |
| | | }, |
| | | watch: { |
| | | '$route': { |
| | | handler(to, from) { |
| | | if (to.name === 'publicMessage_tool') { |
| | | this.topTrue = true |
| | | } else { |
| | | this.topTrue = false |
| | | } |
| | | }, |
| | | deep: true, // 深度监听 |
| | | immediate: true, // 第一次初始化渲染就可以监听到 |
| | | } |
| | | }, |
| | | methods: { |
| | | scrollListen() { |
| | | if (this.topTrue) { |
| | | if ($('#topId').offset().top) { |
| | | this.scrollTop = $('#topId').offset().top |
| | | } |
| | | } |
| | | }, |
| | | backTop() { |
| | | document.getElementById('backTop').scrollIntoView() |
| | | }, |
| | | /** |
| | | * 远程搜索主体名称 |
| | | */ |
| | | remoteMethod() { |
| | | // this.TypeAdd = 1 |
| | | if (this.searchName !== '') { |
| | | this.searchLoading = true |
| | | let data = { keyword: this.searchName } |
| | | axios.request({ |
| | | url: '/qichacha/FuzzySearch', |
| | | data, |
| | | method: 'post' |
| | | }).then(res => { |
| | | if (res.data.Check) { |
| | | this.optionsList = JSON.parse(JSON.stringify(res.data.Data)) |
| | | } else { |
| | | this.optionsList = [] |
| | | } |
| | | this.searchLoading = false |
| | | }, res => { |
| | | this.optionsList = [] |
| | | this.searchLoading = false |
| | | }) |
| | | } else { |
| | | this.optionsList = [] |
| | | } |
| | | }, |
| | | mergeRequest() { |
| | | // this.pageIndex = 1 |
| | | // this.changeTab('tab1') |
| | | }, |
| | | changeBelongLtdId(item) { |
| | | this.searchName = item |
| | | }, |
| | | quickSearch(item) { |
| | | this.searchName = item |
| | | this.selectedName = item |
| | | this.pageIndex = 1 |
| | | this.changeTab('tab1') |
| | | |
| | | }, |
| | | changeTab(e) { |
| | | this.tab = e |
| | | // this.pageIndex = 1 |
| | | // if (this.tab == 'tab1') { |
| | | // this.GetTycTaxCredit() |
| | | // } else if (this.tab == 'tab2') { |
| | | // this.GetHolderList() |
| | | // } |
| | | }, |
| | | changePageIndex(e) { |
| | | this.pageIndex = e |
| | | this.GetHolderList() |
| | | |
| | | }, |
| | | // 获取历史记录 |
| | | getSearchInfoList() { |
| | | axios.request({ |
| | | url: '/SearchInfo/GetSearchInfoList', |
| | | method: 'post' |
| | | }).then(res => { |
| | | if (res.data.Check) { |
| | | this.historyList = res.data.Data |
| | | if (this.historyList.length > 0 && this.selectedName === '') { |
| | | this.searchName = this.historyList[0] |
| | | this.selectedName = this.historyList[0] |
| | | console.log(this.searchName, this.selectedName, this.$route.query.name); |
| | | if (this.optionsList.length == 0) { |
| | | this.remoteMethod() |
| | | } |
| | | this.changeTab('tab1') |
| | | // this.mergeRequest(this.selectedName) |
| | | } else { |
| | | this.loading = false |
| | | } |
| | | } else { |
| | | |
| | | } |
| | | }, res => { |
| | | |
| | | }) |
| | | }, |
| | | getSearchInfoList2() { |
| | | axios.request({ |
| | | url: '/SearchInfo/GetSearchInfoList', |
| | | method: 'post' |
| | | }).then(res => { |
| | | if (res.data.Check) { |
| | | this.historyList = res.data.Data |
| | | if (this.historyList.length > 0 && this.selectedName === '') { |
| | | this.searchName = this.historyList[0] |
| | | this.selectedName = this.historyList[0] |
| | | console.log(this.searchName, this.selectedName, this.$route.query.name); |
| | | if (this.optionsList.length == 0) { |
| | | this.remoteMethod() |
| | | } |
| | | // this.mergeRequest(this.selectedName) |
| | | } else { |
| | | this.loading = false |
| | | } |
| | | } else { |
| | | |
| | | } |
| | | }, res => { |
| | | |
| | | }) |
| | | }, |
| | | // 获取企业基本信息 |
| | | GetTycTaxCredit() { |
| | | let data = { |
| | | name: this.searchName, |
| | | searchType: 1 |
| | | } |
| | | axios.request({ |
| | | url: '/QiChaCha/GetBaseinfoV3', |
| | | data, |
| | | method: 'post' |
| | | }).then(res => { |
| | | if (res.data.Check) { |
| | | this.baseInfo = res.data.Data |
| | | } else { |
| | | this.baseInfo = {} |
| | | } |
| | | |
| | | |
| | | }, res => { |
| | | this.baseInfo = {} |
| | | }) |
| | | }, |
| | | // 获取企业股东 |
| | | GetHolderList() { |
| | | this.PartnerCase = [] |
| | | let data = { |
| | | name: this.searchName, |
| | | pageIndex: this.pageIndex, |
| | | pageSize: this.pageSize |
| | | } |
| | | axios.request({ |
| | | url: '/QiChaCha/GetHolderList', |
| | | data, |
| | | method: 'post' |
| | | }).then(res => { |
| | | if (res.data.Check) { |
| | | this.holderList = res.data.Data |
| | | this.TotalItems = res.data.Data.TotalItems |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } else { |
| | | this.holderList = {} |
| | | this.TotalItems = 0 |
| | | } |
| | | |
| | | |
| | | }, res => { |
| | | this.holderList = {} |
| | | this.TotalItems = 0 |
| | | }) |
| | | }, |
| | | |
| | | |
| | | |
| | | |
| | | // 获取当前日期 |
| | | getDate(date1) { |
| | | if (date1 == 0) { |
| | | return '--' |
| | | } else { |
| | | var myDate = new Date(Number(date1)); |
| | | var year = myDate.getFullYear(); //获取当前年 |
| | | var mon = myDate.getMonth() + 1; //获取当前月 |
| | | var date = myDate.getDate(); //获取当前日 |
| | | var now = year + "-" + mon + "-" + date |
| | | return now; |
| | | } |
| | | }, |
| | | |
| | | |
| | | |
| | | }, |
| | | computed: { |
| | | |
| | | |
| | | |
| | | }, |
| | | destroyed() { |
| | | this.checkCityInvestmentZone = '' |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less"> |
| | | [v-cloak] { |
| | | display: none !important; |
| | | } |
| | | |
| | | .ztb { |
| | | table { |
| | | border-top: 1px solid #dcdee2; |
| | | border-right: 1px solid #dcdee2; |
| | | } |
| | | } |
| | | |
| | | .node_poptip { |
| | | .ivu-poptip-arrow:after { |
| | | border-right-color: #93b3a5 !important; //根据气泡框的箭头进行调整 |
| | | } |
| | | |
| | | .ivu-poptip-inner { |
| | | background-color: #93b3a5; |
| | | color: #FFF; |
| | | } |
| | | |
| | | } |
| | | .CapitalActl { |
| | | padding-bottom: 0; |
| | | margin-bottom: 0 |
| | | } |
| | | </style> |
| | | |