| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- <template>
- <el-tree ref="tree" class="el-treeWhite" :data="treeData" :props="treeProps" show-checkbox
- :expand-on-click-node="false" @check-change="handleCheckChange" node-key="id"
- :default-expanded-keys="tableDefaultExpandedKeys" :check-strictly="false" style="max-height:100%;overflow:auto;">
- </el-tree>
- </template>
- <script>
- import { getProvincialOrgList, getAdData, getAddTree } from "@api/duChaAPI.js";
- export default {
- components: {},
- props: ['rootCode', 'rootType'],
- data() {
- return {
- treeData: [],
- tableDefaultExpandedKeys: ['000000000000'],
- treeProps: {
- label: "nm",
- children: "children",
- disabled: false,
- expandOnClickNode: false,
- first: true,
- },
- rootAdCode: '000000000000'
- };
- },
- computed: {
- organCode() {
- return localStorage.getItem('currentRlcode') ? localStorage.getItem('currentRlcode') : ''
- },
- organNm() {
- return localStorage.getItem('currentOrgNm') ? localStorage.getItem('currentOrgNm') : ''
- },
- isNational() {
- return this.organCode.indexOf('00') == 0 ? true : false
- }
- },
- mounted: function () {
- // this.loadTreeListData();
- this.getAdDataList();
- },
- methods: {
- //获取行政区划树结构数据
- getAdDataList() {
- var _self = this;
- try {
- getAddTree(_self.organCode, 3).then((res) => {
- if (res.data) {
- _self.treeData.push(res.data);
- }
- })
- } catch (e) {
- }
- },
- getAdDataList1() {
- var _self = this;
- getAdData(_self.rootAdCode).then((res) => {
- if (res.data) {
- // _self.treeData = res.data;
- if (this.isNational) {
- var obj = [{
- adCode: "000000000000",
- adFullName: "全国",
- adGrad: "1",
- adName: "全国",
- }];
- } else {
- var obj = [{
- adCode: this.organCode,
- adFullName: this.organNm,
- adGrad: "1",
- adName: this.organNm,
- }];
- }
- _self.treeData = obj;
- this.$emit("provTreeSelectChange", obj[0].adCode);
- }
- })
- },
- loadTreeListData: function () {
- if (this.rootCode && this.rootType && this.rootType != '' && this.rootCode != '') {
- getProvincialOrgList(this.rootCode, this.rootTyp).then((res) => {
- console.log(res);
- var children = [];
- res.data.forEach((element, index) => {
- if (element.type == 2) {
- children.push(element);
- }
- })
- console.log(children);
- this.treeData = children;
- }, (err) => { });
- } else {
- getProvincialOrgList().then((res) => {
- console.log(res);
- var children = [];
- res.data.forEach((element, index) => {
- if (element.type == 2) {
- children.push(element);
- }
- })
- console.log(children);
- this.treeData = children;
- }, (err) => { });
- }
- },
- handleCheckChange() {
- let adCodeStr = '', adCodeArr = []
- let data = this.$refs.tree.getCheckedNodes()
- if (data.length) {
- data.forEach(ele => {
- adCodeArr.push(ele.id)
- })
- adCodeStr = adCodeArr.join(',')
- }
- console.log(data)
- this.$emit("provTreeSelectChange", adCodeStr);
- },
- loadAddvData: function (node, resolve) {
- var _self = this;
- var str = node.data.adCode;
- if (!str) {
- str = '000000000000';
- return;
- }
- if (node.level > 2) return resolve([]);
- try {
- getAdData(str).then((res) => {
- if (res.data) {
- var data = res.data;
- resolve(data);
- }
- })
- } catch (e) {
- }
- setTimeout(ele => {
- // 懒加载获取到子节点后再获取已选的节点数据
- _self.handleCheckChange()
- }, 1200)
- },
- }
- };
- </script>
- <style scoped>
- </style>
|