{"remainingRequest":"D:\\jenkins\\workspace\\ljzc-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\ljzc-fvue\\src\\views\\InvestmentFinancingAssets\\InvestmentFinancingEnter\\EquityRelationshipMap\\index.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\ljzc-fvue\\src\\views\\InvestmentFinancingAssets\\InvestmentFinancingEnter\\EquityRelationshipMap\\index.vue","mtime":1701770513400},{"path":"D:\\jenkins\\workspace\\ljzc-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\ljzc-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\ljzc-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":["//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport * as echarts from 'echarts'\r\nconsole.log(echarts)\r\nimport pagination from '@/components/pagination'\r\nimport {TableMixin} from '@/mixins/tableMixin'\r\nimport utils from '@/utils.js'\r\nimport SuperSearch from '@/components/SuperSearch/index.vue'\r\nimport api from '@/api/InvestmentFinancingAssets/InvestmentFinancingEnter/EquityRelationshipMap.js'\r\nimport treeSide from '@/components/treeSide/index.vue'\r\nexport default {\r\n name: 'EquityRelationshipMap', // 股权关系图谱\r\n components: {\r\n SuperSearch,\r\n pagination,\r\n treeSide,\r\n },\r\n mixins: [TableMixin],\r\n data() {\r\n return {\r\n tableLoading: false,\r\n tabList: ['单位'], //左边tab\r\n defaultProps: {\r\n children: 'children',\r\n label: 'name',\r\n },\r\n dataList: [],\r\n nodeList: [],\r\n linkList: [],\r\n treeData: [],\r\n loading: false,\r\n queryParams: {\r\n orgId: null,\r\n orgName: null,\r\n },\r\n }\r\n },\r\n created() {\r\n // let curUserDetail = this.$store.state.user.currentUserDetail\r\n // this.queryParams.orgId = curUserDetail.org[0].orgId\r\n // this.queryParams.orgName = curUserDetail.org[0].orgName\r\n this.getUserOrgTree()\r\n },\r\n mounted() {\r\n this.loadData()\r\n },\r\n methods: {\r\n // node数据处理\r\n nodeProcessing(data) {\r\n const result = []\r\n function traverse(node, level) {\r\n const name = node.name\r\n const id = node.id\r\n result.push({name, level, id})\r\n if (node.list && node.list.length > 0) {\r\n node.list.forEach((childNode) => {\r\n traverse(childNode, childNode.level)\r\n })\r\n }\r\n }\r\n traverse(data, data.level)\r\n return result\r\n },\r\n // link数据处理\r\n linkProcessing(data) {\r\n const result = []\r\n function traverse(node, parentId) {\r\n const id = node.id\r\n const type = node.type\r\n const equityRatio = node.equityRatio\r\n\r\n if (type === 2) {\r\n result.push({\r\n source: parentId,\r\n target: id,\r\n eq: `持股${equityRatio}%`,\r\n })\r\n } else if (type === 1) {\r\n result.push({\r\n source: id,\r\n target: parentId,\r\n eq: `持股${equityRatio}%`,\r\n })\r\n }\r\n\r\n if (node.list && node.list.length > 0) {\r\n node.list.forEach((childNode) => {\r\n traverse(childNode, id)\r\n })\r\n }\r\n }\r\n traverse(data, '')\r\n return result\r\n },\r\n initChat() {\r\n let chartDom = echarts.init(document.getElementById('chartDom'))\r\n const color1 = '#006acc'\r\n const color2 = '#e7b178'\r\n const color3 = '#96e9be'\r\n\r\n this.nodeList.forEach((node) => {\r\n if (node.level === 1) {\r\n node.symbolSize = 140\r\n node.itemStyle = {\r\n color: color1,\r\n }\r\n } else if (node.level === 2) {\r\n node.symbolSize = 120\r\n node.itemStyle = {\r\n color: color2,\r\n }\r\n } else if (node.level === 3) {\r\n node.symbolSize = 100\r\n node.itemStyle = {\r\n color: color3,\r\n }\r\n }\r\n })\r\n this.linkList.forEach((link, index) => {\r\n // link.id = index\r\n\r\n link.label = {\r\n align: 'center',\r\n fontSize: 16,\r\n color: '#000',\r\n offset: [0, -5], // 微调文字位置,根据需要调整偏移量\r\n }\r\n link.lineStyle = {\r\n color: color2,\r\n curveness: 0.3,\r\n }\r\n })\r\n let option = {\r\n title: {\r\n text: '股权关系图谱',\r\n },\r\n series: [\r\n {\r\n type: 'graph',\r\n layout: 'force',\r\n symbolSize: 20,\r\n draggable: true,\r\n roam: true,\r\n focusNodeAdjacency: true,\r\n edgeSymbol: ['', 'arrow'],\r\n edgeSymbolSize: [15, 15],\r\n edgeLabel: {\r\n normal: {\r\n show: true,\r\n textStyle: {\r\n fontSize: 20,\r\n },\r\n formatter(x) {\r\n return x.data.eq\r\n },\r\n },\r\n },\r\n label: {\r\n show: true,\r\n fontSize: 16,\r\n formatter: function (params) {\r\n console.log(params)\r\n var name = params.name\r\n // 将字符串按照每 10 个字符进行分割,并插入换行符\r\n var nameArr = []\r\n if (params.data.level === 1) {\r\n nameArr = name.match(/.{1,10}/g)\r\n } else if (params.data.level === 2) {\r\n nameArr = name.match(/.{1,8}/g)\r\n } else if (params.data.level === 3) {\r\n nameArr = name.match(/.{1,6}/g)\r\n }\r\n return nameArr.join('\\n')\r\n },\r\n },\r\n force: {\r\n repulsion: 2000,\r\n edgeLength: 120,\r\n },\r\n data: this.nodeList,\r\n links: this.linkList,\r\n },\r\n ],\r\n }\r\n chartDom.setOption(option)\r\n console.log(option)\r\n window.addEventListener('resize', () => {\r\n chartDom.resize()\r\n })\r\n },\r\n //获取数据\r\n loadData() {\r\n this.tableLoading = true\r\n this.nodeList = []\r\n this.linkList = []\r\n api.queryData(this.queryParams, (res) => {\r\n this.dataList = [res]\r\n this.linkList = this.linkProcessing(res)\r\n this.nodeList = this.nodeProcessing(res)\r\n this.tableLoading = false\r\n this.initChat()\r\n })\r\n },\r\n currentChange(value, data) {\r\n if (value) {\r\n this.queryParams.orgId = value.id\r\n this.queryParams.orgName = value.name\r\n } else {\r\n this.queryParams.orgId = null\r\n this.queryParams.orgName = null\r\n }\r\n this.loadData()\r\n },\r\n tabChange(tab, event) {\r\n console.log(tab)\r\n },\r\n filterChange(value) {},\r\n //获取组织树\r\n getUserOrgTree() {\r\n let curUserDetail = this.$store.state.user.currentUserDetail\r\n let orgId = curUserDetail.org[0].orgId\r\n api.getUserOrgTree(orgId, (res) => {\r\n if (res) {\r\n this.treeData = res\r\n }\r\n })\r\n },\r\n },\r\n}\r\n",null]}