| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175 |
- <template>
- <div>
- <div class="left_tree_title">年度:
- <el-select v-model="year" placeholder="请选择">
- <el-option
- v-for="item in yearList"
- :key="item.id"
- :label="item.year"
- :value="item.year">
- </el-option>
- </el-select>
- </div>
- <el-tree
- class="el-treeWhite"
- :data="treeData"
- :props="treeProps"
- :expand-on-click-node="false"
- @node-click="nodeClick"
- node-key="id"
- :default-expanded-keys="tableDefaultExpandedKeys"
- style="max-height:100%;overflow:auto;"
- ></el-tree>
- </div>
- </template>
- <script>
- import {getNodeByPidAndCode} from "../../api/duChaAPI.js";
- import request from '../../utils/gw_ajax_request.js';
- import {dateFormat} from "../../utils/gw_date";
- import globalVariable from "@api/globalVariable.js";
- import {getYearList} from '@api/jcOneMapApi'
- export default {
- components: {},
- props: ['pid', 'type', 'pidNodes'],
- data() {
- return {
- treeData: [],
- code: '45',
- tableDefaultExpandedKeys: ['001', '002', '003', '006'],
- treeProps: {
- label: "pnm",
- children: "children",
- disabled: false,
- expandOnClickNode: false,
- first: true,
- },
- checkedData: [],
- changedData: [],
- yearList: [],
- year: ''
- };
- },
- mounted: function () {
- this.getYearlists();
- // this.getLeftTreeData();
- },
- computed: {
- userId: function () {
- return localStorage.getItem("userid")
- ? localStorage.getItem("userid")
- : "1098101939614724096";
- }
- },
- methods: {
- getYearlists() {
- getYearList().then(res => {
- console.log(res.data)
- this.yearList = res.data;
- let lastItemIndex = this.yearList.length - 1
- this.year = this.yearList[lastItemIndex].year
- console.log(this.year)
- })
- },
- // 节点点击事件
- nodeClick: function (data) {
- // alert(data.id);
- this.$emit("provTreeSelectChange", {'id': data.id});
- },
- //根据用户id获取左侧树
- getLeftTreeData() {
- var _self = this;
- request.get('/dc/gd/base/getLyNode', {
- params: {
- 'userId': this.userId,
- 'orgType': this.type,
- 'year': this.year
- }
- }).then((res) => {
- let data = res.data
- console.log(data)
- data.forEach(ele => {
- if (ele.pid == null || ele.pid == '') {
- ele.pid = '001'
- }
- if (ele.sttm == null || ele.sttm == '') {
- ele.sttm = ''
- } else {
- ele.sttm = dateFormat(ele.sttm, 'yy-MM-dd');
- }
- if (ele.entm == null || ele.entm == '') {
- ele.entm = ''
- } else {
- ele.entm = dateFormat(ele.entm, 'yy-MM-dd');
- }
- });
- if (data != null && data.length > 0) {
- data = _self.getTrees(data, data[0].pid)
- _self.treeData = data;
- }
- // 获取第一个节点给子页面带过去
- this.getFirstNode(data);
- })
- },
- //格式化树形数据
- getTrees(list, pId) {
- let items = {};
- // 获取每个节点的直属子节点,*记住是直属,不是所有子节点
- for (let i = 0; i < list.length; i++) {
- let key = list[i].parentId ? list[i].parentId : list[i].pid;
- if (items[key]) {
- items[key].push(list[i]);
- } else {
- items[key] = [];
- items[key].push(list[i]);
- }
- }
- return this.formatTree(items, pId);
- },
- /**利用递归格式化每个节点**/
- formatTree(items, pId) {
- let result = [];
- if (!items[pId]) {
- return result;
- }
- for (let t of items[pId]) {
- t.children = this.formatTree(items, t.id)
- result.push(t);
- }
- return result;
- },
- getFirstNode(data) {
- let node = '';
- try {
- if (data != null && data != '') {
- if (data[0].id.length == 6) {
- node = data[0].id;
- } else if (data[0].id.length == 3) {
- node = data[0].children[0].id;
- }
- }
- } catch (e) {
- }
- globalVariable.setFirstNode(node);
- },
- },
- watch: {
- year(val) {
- if (val) {
- this.getLeftTreeData();
- this.$emit('changeYear', val);
- }
- }
- }
- };
- </script>
- <style scoped>
- </style>
|