((typeof self !== 'undefined' ? self : this)["webpackJsonpequipment_disassemble_training"] = (typeof self !== 'undefined' ? self : this)["webpackJsonpequipment_disassemble_training"] || []).push([[6],{

/***/ "83df":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1263dc52-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/windicss-webpack-plugin/dist/loaders/windicss-template.cjs!./src/components/model-vulkan/ModelTreeVulkan.vue?vue&type=template&id=3dbf53b6&scoped=true
var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-card',{staticClass:"absolute"},[_c('div',{staticClass:"w-full h-full"},[_c('el-tree',{ref:"modelTree",staticClass:"modelTree",attrs:{"props":_vm.treeProps,"load":_vm.loadNode,"highlight-current":"","lazy":true,"show-checkbox":"","current-node-key":_vm.currentSelectItem,"filter-node-method":_vm.filterNode,"default-checked-keys":_vm.modelTreeProp.defaultCheckedKey,"default-expanded-keys":_vm.defaultExpandedKeys,"node-key":"node"},on:{"node-click":_vm.clickModelTree,"check":_vm.checkModelTree}})],1),_c('div',{staticClass:"w-100 mt-10px flex model-filter"},[_c('el-input',{attrs:{"size":"small","placeholder":"请输入要过滤的设备","prefix-icon":"el-icon-search","clearable":""},nativeOn:{"keypress":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.filterModelTree(0, true, _vm.filterTreeKeyWords, 0)}},model:{value:(_vm.filterTreeKeyWords),callback:function ($$v) {_vm.filterTreeKeyWords=$$v},expression:"filterTreeKeyWords"}}),_c('el-button',{attrs:{"type":"primary","size":"mini"},on:{"click":function($event){return _vm.filterModelTree(_vm.modelTreeProp.currentNodeItem, true, _vm.filterTreeKeyWords, 0)}}},[_c('i',{staticClass:"el-icon-caret-top icon-yxr-sl fz-12"})]),_c('el-button',{attrs:{"type":"primary","size":"mini"},on:{"click":function($event){return _vm.filterModelTree(_vm.modelTreeProp.currentNodeItem, false, _vm.filterTreeKeyWords, 0)}}},[_c('i',{staticClass:"el-icon-caret-bottom icon-yxr-xl fz-12"})])],1)])}
var staticRenderFns = []


// CONCATENATED MODULE: ./src/components/model-vulkan/ModelTreeVulkan.vue?vue&type=template&id=3dbf53b6&scoped=true

// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 3 modules
var toConsumableArray = __webpack_require__("2909");

// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/regenerator.js + 1 modules
var regenerator = __webpack_require__("c14f");

// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js
var asyncToGenerator = __webpack_require__("1da1");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.concat.js
var es_array_concat = __webpack_require__("99af");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.filter.js
var es_array_filter = __webpack_require__("4de4");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.find.js
var es_array_find = __webpack_require__("7db0");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.find-index.js
var es_array_find_index = __webpack_require__("c740");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.includes.js
var es_array_includes = __webpack_require__("caad");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.map.js
var es_array_map = __webpack_require__("d81d");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.push.js
var es_array_push = __webpack_require__("14d9");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.slice.js
var es_array_slice = __webpack_require__("fb6a");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.function.name.js
var es_function_name = __webpack_require__("b0c0");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.constructor.js
var es_iterator_constructor = __webpack_require__("e9f5");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.filter.js
var es_iterator_filter = __webpack_require__("910d");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.find.js
var es_iterator_find = __webpack_require__("f665");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.for-each.js
var es_iterator_for_each = __webpack_require__("7d54");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.map.js
var es_iterator_map = __webpack_require__("ab43");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.some.js
var es_iterator_some = __webpack_require__("a732");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.to-string.js
var es_object_to_string = __webpack_require__("d3b7");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.includes.js
var es_string_includes = __webpack_require__("2532");

// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-collections.for-each.js
var web_dom_collections_for_each = __webpack_require__("159b");

// EXTERNAL MODULE: external "_"
var external_ = __webpack_require__("60bb");
var external_default = /*#__PURE__*/__webpack_require__.n(external_);

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.iterator.js
var es_array_iterator = __webpack_require__("e260");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.splice.js
var es_array_splice = __webpack_require__("a434");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.js
var es_set = __webpack_require__("6062");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.difference.v2.js
var es_set_difference_v2 = __webpack_require__("1e70");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.intersection.v2.js
var es_set_intersection_v2 = __webpack_require__("79a4");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.is-disjoint-from.v2.js
var es_set_is_disjoint_from_v2 = __webpack_require__("c1a1");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.is-subset-of.v2.js
var es_set_is_subset_of_v2 = __webpack_require__("8b00");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.is-superset-of.v2.js
var es_set_is_superset_of_v2 = __webpack_require__("a4e7");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.symmetric-difference.v2.js
var es_set_symmetric_difference_v2 = __webpack_require__("1e5a");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.union.v2.js
var es_set_union_v2 = __webpack_require__("72c3");

// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.iterator.js
var es_string_iterator = __webpack_require__("3ca3");

// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-collections.iterator.js
var web_dom_collections_iterator = __webpack_require__("ddb0");

// CONCATENATED MODULE: ./src/assets/js/modelTree.js
























/**
 * @description: 模型树节点类型的枚举
 * @param {*}
 * @return {*}
 */

var modelTreeObj = {
  ITEM_PR: 0,
  // PR 文件节点类型
  ITEM_NODE: 1,
  // CELLNode文件节点类型
  ITEM_GISOBJ: 2,
  // gis 数据对象
  ITEM_NULL: 3 // 仅仅对根节点使用
};

/**
 * @description: 控制模型中部件的显示隐藏
 * @param {*} status
 * @param {*} isChecked
 * @param {*} selectInfo
 * @param {*} checkeds
 * @return {*}
 */
var setModelVisible = /*#__PURE__*/function () {
  var _ref = Object(asyncToGenerator["a" /* default */])(/*#__PURE__*/Object(regenerator["a" /* default */])().m(function _callee(player, status) {
    var _rootProperty$childre;
    var isChecked,
      selectInfo,
      modelTreeProp,
      checkeds,
      itemList,
      rootParent,
      rootProperty,
      rootNode,
      rootItemsList,
      parentInfo,
      result,
      subItems,
      _ref2,
      index,
      index1,
      ParentInfo,
      _ref3,
      _args = arguments,
      _t;
    return Object(regenerator["a" /* default */])().w(function (_context) {
      while (1) switch (_context.n) {
        case 0:
          isChecked = _args.length > 2 && _args[2] !== undefined ? _args[2] : true;
          selectInfo = _args.length > 3 && _args[3] !== undefined ? _args[3] : [];
          modelTreeProp = _args.length > 4 && _args[4] !== undefined ? _args[4] : {
            currentNodeItem: 0,
            // 当前激活的node
            currentNodeName: '',
            // 点选时当前激活的节点名称
            treeData: [],
            // 模型树数据
            defaultCheckedKey: [],
            // 模型树选中的节点
            filterItem: [],
            // 模型树不需要显示的节点及他的父节点列表
            modelHideList: [],
            // 模型隐藏队列
            modelTreeLoadEnd: false // 模型树数据加载完毕
          };
          checkeds = _args.length > 5 ? _args[5] : undefined;
          if (!_.isEmpty(selectInfo)) {
            _context.n = 2;
            break;
          }
          _context.n = 1;
          return player.Native.Node.getSeletedNodes();
        case 1:
          selectInfo = _context.v;
        case 2:
          itemList = _.map(modelTreeProp.modelHideList, function (el) {
            return el.node;
          }); // ###################
          _context.n = 3;
          return player.Native.Node.getRoot();
        case 3:
          rootParent = _context.v;
          _context.n = 4;
          return player.Native.Node.getProperty(rootParent, ['children']);
        case 4:
          rootProperty = _context.v;
          rootNode = (_rootProperty$childre = rootProperty.children[0]) === null || _rootProperty$childre === void 0 ? void 0 : _rootProperty$childre.node; // 删除地球GIS层
          rootItemsList = [rootNode];
          _t = status;
          _context.n = _t === 'system.ToolShowModel' ? 5 : _t === 'system.ToolShowAll' ? 6 : _t === 'system.ToolHideModel' ? 7 : _t === 'system.ToolHideModelSpaceSwap' ? 14 : _t === 'checkModelTree' ? 15 : _t === 'system.ToolShowSingle' ? 22 : 23;
          break;
        case 5:
          // 显示上一个(隐藏模型列表弹出最后一个，隐藏最后一个，默认框选中的列表添加弹出的最后一个)
          if (modelTreeProp.modelHideList.length > 0 && !modelTreeProp.spaceSwapStatus) {
            player.Native.Node.setProperty(modelTreeProp.modelHideList[modelTreeProp.modelHideList.length - 1].node, {
              visible: isChecked
            });
            modelTreeProp.defaultCheckedKey.push(modelTreeProp.modelHideList[modelTreeProp.modelHideList.length - 1].node);
            modelTreeProp.filterItem.splice(modelTreeProp.filterItem.indexOf(modelTreeProp.modelHideList[modelTreeProp.modelHideList.length - 1].node), 1);
            modelTreeProp.modelHideList.pop();
          }
          return _context.a(3, 24);
        case 6:
          // 显示全部隐藏（根据上面获取的跟节点之间都设置为true，清空隐藏模型列表，默认框选中的列表加上隐藏模型列表）
          player.Native.Node.setProperty(rootItemsList, {
            visible: isChecked
          });
          // 去重
          modelTreeProp.defaultCheckedKey = Object(toConsumableArray["a" /* default */])(new Set([].concat(Object(toConsumableArray["a" /* default */])(modelTreeProp.defaultCheckedKey), Object(toConsumableArray["a" /* default */])(modelTreeProp.filterItem))));
          modelTreeProp.filterItem = [];
          modelTreeProp.modelHideList = [];
          modelTreeProp.spaceSwapStatus = false;
          return _context.a(3, 24);
        case 7:
          if (!(_.last(modelTreeProp.filterItem) === selectInfo[0])) {
            _context.n = 8;
            break;
          }
          return _context.a(2);
        case 8:
          modelTreeProp.modelHideList.push({
            node: selectInfo[0]
          });
          player.Native.Node.setProperty(selectInfo[0], {
            visible: false
          });
          modelTreeProp.filterItem.push(selectInfo[0]);
          // 获取选中的selectInfo的父级selfId
          _context.n = 9;
          return player.Native.Node.getProperty(selectInfo[0], ['parent']);
        case 9:
          parentInfo = _context.v;
          modelTreeProp.filterItem.push(parentInfo.parent);
          // 如果不为最外层包裹层
          if (!parentInfo.parent) {
            _context.n = 12;
            break;
          }
        case 10:
          if (!(parentInfo.parent !== rootNode)) {
            _context.n = 12;
            break;
          }
          _context.n = 11;
          return player.Native.Node.getProperty(parentInfo.parent, ['parent']);
        case 11:
          parentInfo = _context.v;
          modelTreeProp.filterItem.push(parentInfo.node);
          _context.n = 10;
          break;
        case 12:
          _context.n = 13;
          return player.Native.Node.getProperty(selectInfo[0], ['children']);
        case 13:
          result = _context.v;
          subItems = result.children; // 去重放在报错之后，多push了几次进去
          modelTreeProp.filterItem = Object(toConsumableArray["a" /* default */])(new Set([].concat(Object(toConsumableArray["a" /* default */])(modelTreeProp.filterItem), Object(toConsumableArray["a" /* default */])(_.map(subItems, function (res) {
            return res.node;
          })))));
          modelTreeProp.defaultCheckedKey = _.filter(modelTreeProp.defaultCheckedKey, function (el) {
            return modelTreeProp.filterItem.indexOf(el) === -1;
          });
          return _context.a(3, 24);
        case 14:
          // 空间交换
          // 隐藏模型，显示隐藏列表（将默认框选中的列表等于隐藏模型列表，上一次隐藏的全部显示）
          if (modelTreeProp.spaceSwapStatus) {
            modelTreeProp.defaultCheckedKey = _.map(modelTreeProp.modelHideList, function (el) {
              return el.node;
            });
          } else {
            modelTreeProp.hiddenNodeKeys = _.map(modelTreeProp.modelHideList, function (el) {
              return el.node;
            });
          }
          player.Native.Node.setProperty(rootItemsList, {
            visible: modelTreeProp.spaceSwapStatus
          });
          player.Native.Node.setProperty(itemList, {
            visible: !modelTreeProp.spaceSwapStatus
          });
          modelTreeProp.spaceSwapStatus = !modelTreeProp.spaceSwapStatus;
          modelTreeProp.filterItem = _.filter(modelTreeProp.filterItem, function (el) {
            return modelTreeProp.hiddenNodeKeys.indexOf(el) === -1;
          });
          modelTreeProp.filterItem = Object(toConsumableArray["a" /* default */])(new Set([].concat(Object(toConsumableArray["a" /* default */])(modelTreeProp.filterItem), Object(toConsumableArray["a" /* default */])(modelTreeProp.defaultCheckedKey))));
          _ref2 = [modelTreeProp.hiddenNodeKeys, modelTreeProp.defaultCheckedKey];
          modelTreeProp.defaultCheckedKey = _ref2[0];
          modelTreeProp.hiddenNodeKeys = _ref2[1];
          return _context.a(3, 24);
        case 15:
          // 模型树显隐操作: 1、根据勾选情况设置当前勾选项的显隐 2、设置默认框选中列表
          // 3、如果是显示: 查找当前项是否在隐藏列表中，如果有就去掉当前项以及其子孙节点，默认框选中列表中需要添加当前项，如果该项的其他兄弟节点都为选中状态，那么其父辈节点也就要添加进去
          // 4、如果是隐藏：将当前项添加到隐藏模型列表中去，默认框选中列表除去当前项以及其子孙节点，还包括其父辈节点
          player.Native.Node.setProperty(selectInfo[0], {
            visible: isChecked
          });
          modelTreeProp.defaultCheckedKey = checkeds.checkedKeys;
          if (!isChecked) {
            _context.n = 16;
            break;
          }
          index = _.findIndex(modelTreeProp.modelHideList, ['node', selectInfo[0]]);
          if (index !== -1) {
            modelTreeProp.modelHideList.splice(index, 1);
          }
          index1 = modelTreeProp.filterItem.indexOf(selectInfo[0]);
          if (index1 !== -1) {
            // 重新设置选中
            modelTreeProp.filterItem.splice(modelTreeProp.filterItem.indexOf(selectInfo[0]), 1);
          }
          _context.n = 21;
          break;
        case 16:
          modelTreeProp.modelHideList.push({
            node: selectInfo[0]
          });
          modelTreeProp.filterItem.push(selectInfo[0]);
          // 获取选中的selectInfo的父级selfId
          _context.n = 17;
          return player.Native.Node.getProperty(selectInfo[0], ['parent']);
        case 17:
          ParentInfo = _context.v;
          modelTreeProp.filterItem.push(ParentInfo.parent);
          if (!ParentInfo.parent) {
            _context.n = 20;
            break;
          }
        case 18:
          if (!(ParentInfo.parent !== rootNode)) {
            _context.n = 20;
            break;
          }
          _context.n = 19;
          return player.Native.Node.getProperty(ParentInfo.parent, ['parent']);
        case 19:
          ParentInfo = _context.v;
          modelTreeProp.filterItem.push(ParentInfo.node);
          _context.n = 18;
          break;
        case 20:
          modelTreeProp.filterItem = Object(toConsumableArray["a" /* default */])(new Set(modelTreeProp.filterItem));
        case 21:
          return _context.a(3, 24);
        case 22:
          // 孤立查看
          if (selectInfo[0]) {
            if (modelTreeProp.spaceSwapStatus) {
              modelTreeProp.defaultCheckedKey = _.map(modelTreeProp.modelHideList, function (el) {
                return el.node;
              });
            } else {
              modelTreeProp.modelHideList.push({
                node: selectInfo[0]
              });
              modelTreeProp.filterItem.push(selectInfo[0]);
              modelTreeProp.hiddenNodeKeys = _.map(modelTreeProp.modelHideList, function (el) {
                return el.node;
              });
            }
            player.Native.Node.setProperty(rootItemsList, {
              visible: modelTreeProp.spaceSwapStatus
            });
            player.Native.Node.setProperty(selectInfo[0], {
              visible: true
            });
            modelTreeProp.spaceSwapStatus = !modelTreeProp.spaceSwapStatus;
            modelTreeProp.filterItem = _.filter(modelTreeProp.filterItem, function (el) {
              return modelTreeProp.hiddenNodeKeys.indexOf(el) === -1;
            });
            modelTreeProp.filterItem = Object(toConsumableArray["a" /* default */])(new Set([].concat(Object(toConsumableArray["a" /* default */])(modelTreeProp.filterItem), Object(toConsumableArray["a" /* default */])(modelTreeProp.defaultCheckedKey))));
            _ref3 = [modelTreeProp.hiddenNodeKeys, modelTreeProp.defaultCheckedKey];
            modelTreeProp.defaultCheckedKey = _ref3[0];
            modelTreeProp.hiddenNodeKeys = _ref3[1];
          }
          return _context.a(3, 24);
        case 23:
          return _context.a(3, 24);
        case 24:
          return _context.a(2);
      }
    }, _callee);
  }));
  return function setModelVisible(_x, _x2) {
    return _ref.apply(this, arguments);
  };
}();
/* harmony default export */ var modelTree = (setModelVisible);
// CONCATENATED MODULE: ./node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib??ref--12-1!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/windicss-webpack-plugin/dist/loaders/windicss-template.cjs!./src/components/model-vulkan/ModelTreeVulkan.vue?vue&type=script&lang=js





















//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//



/* harmony default export */ var ModelTreeVulkanvue_type_script_lang_js = ({
  name: 'ModelTree',
  props: {
    player: {
      type: Object,
      default: null
    },
    cloudRender: {
      type: Object,
      default: null
    }
  },
  computed: {
    modelTreePropList: function modelTreePropList() {
      return this.$store.getters['System/modelTreeProp'] || [];
    },
    modelTreeProp: function modelTreeProp() {
      return external_default.a.find(this.modelTreePropList, ['engineId', this.player.config.engineId]) || this.modelTreePropDefalut;
    }
  },
  watch: {
    'modelTreeProp.currentNodeName': {
      deep: true,
      handler: function handler(val, oldVal) {
        if (val) {
          this.currentNodeName = val;
          this.filterModelTree(0, true, val, 3);
        }
      }
    },
    'modelTreeProp.defaultCheckedKey': {
      deep: true,
      handler: function handler(val, oldVal) {
        var _this = this;
        this.modelTreeVisbile = false;
        this.modelTreeVisbile = true;
        this.$nextTick(function () {
          if (_this.$refs.modelTree) {
            _this.$refs.modelTree.setCheckedKeys(_this.modelTreeProp.defaultCheckedKey);
          }
        });
      }
    }
  },
  mounted: function mounted() {
    if (this.modelTreeProp.currentNodeName) {
      // 页面初始化时不定位模型
      this.filterModelTree(0, true, this.modelTreeProp.currentNodeName, 0, false);
    }
  },
  data: function data() {
    return {
      modelTreeVisbile: true,
      // 模型树的显示
      filterTreeKeyWords: '',
      // 过滤模型树关键字
      defaultExpandedKeys: [],
      // 展开节点
      treeProps: {
        label: 'name',
        children: 'children',
        isLeaf: 'leaf'
      },
      currentNode: null,
      // 查询到模型树节点
      currentNodeName: '',
      // 点选时当前激活的节点名称
      currentSelectItem: 0,
      // 当前选中的树节点item
      // 模型树相关
      modelTreePropDefalut: {
        currentNodeItem: 0,
        // 当前激活的node
        currentNodeName: '',
        // 点选时当前激活的节点名称
        treeData: [],
        // 模型树数据
        defaultCheckedKey: [],
        // 模型树选中的节点
        filterItem: [],
        // 模型树不需要显示的节点及他的父节点列表
        modelHideList: [],
        // 模型隐藏队列
        modelTreeLoadEnd: false // 模型树数据加载完毕
      }
    };
  },
  methods: {
    closeComponents: function closeComponents() {
      this.$emit('closeComponent', 'ModelTree');
    },
    // 模型树点击操作
    clickModelTree: function clickModelTree(data, node, doLocation) {
      if (data.isVirtual) {
        return;
      }
      if (node && node.checked && doLocation) {
        this.$emit('doLocation', data, 'modelTree');
        this.multipleLocations(this.player, data);
        this.modelTreeProp.currentNodeItem = data && data.node ? data.node : 0; // 储存选中节点的item
      }
      this.locationNode(data.node);
    },
    multipleLocations: function multipleLocations(player, data) {
      var _arguments = arguments,
        _this2 = this;
      return Object(asyncToGenerator["a" /* default */])(/*#__PURE__*/Object(regenerator["a" /* default */])().m(function _callee() {
        var isSelect, isLoadEngine, selectNodes;
        return Object(regenerator["a" /* default */])().w(function (_context) {
          while (1) switch (_context.n) {
            case 0:
              isSelect = _arguments.length > 2 && _arguments[2] !== undefined ? _arguments[2] : true;
              isLoadEngine = _arguments.length > 3 ? _arguments[3] : undefined;
              if (!isSelect) {
                _context.n = 3;
                break;
              }
              _context.n = 1;
              return _this2.player.Native.Node.getSeletedNodes();
            case 1:
              selectNodes = _context.v;
              _context.n = 2;
              return _this2.player.Native.Node.unSelectNodes(selectNodes);
            case 2:
              _this2.player.Native.Node.selectNodes([data.node]);
            case 3:
              _this2.player.Native.Camera.moveToNode(data.node, 2, 5);
            case 4:
              return _context.a(2);
          }
        }, _callee);
      }))();
    },
    // 模型树加载
    loadNode: function loadNode(node, resolve) {
      var _this3 = this;
      return Object(asyncToGenerator["a" /* default */])(/*#__PURE__*/Object(regenerator["a" /* default */])().m(function _callee2() {
        var rootNode, children, res, result, step, shardingRes, i, filterRes, tempCheckedKey, checkedKeys, that, isNoFindModelHides, node1;
        return Object(regenerator["a" /* default */])().w(function (_context2) {
          while (1) switch (_context2.n) {
            case 0:
              if (!(node.level === 0)) {
                _context2.n = 3;
                break;
              }
              _context2.n = 1;
              return _this3.player.Native.Node.getRoot();
            case 1:
              rootNode = _context2.v;
              _context2.n = 2;
              return _this3.player.Native.Node.getProperty(rootNode, ['children']);
            case 2:
              children = _context2.v;
              _this3.modelTreeProp.defaultCheckedKey = external_default.a.map(children.children, function (val) {
                return val.node;
              });
              resolve(children.children);
              return _context2.a(2);
            case 3:
              res = null;
              if (!node.data.isVirtual) {
                _context2.n = 4;
                break;
              }
              res = node.data.childs;
              _context2.n = 6;
              break;
            case 4:
              _context2.n = 5;
              return _this3.player.Native.Node.getProperty(node.data.node, ['children']);
            case 5:
              result = _context2.v;
              res = (result === null || result === void 0 ? void 0 : result.children) || [];
            case 6:
              step = 1000; // 分片大小
              if (res.length > step) {
                shardingRes = [];
                for (i = 0; i < external_default.a.ceil(res.length / step); i += 1) {
                  shardingRes.push({
                    name: "".concat(i * step + 1, "~").concat((i + 1) * step),
                    checked: true,
                    code: "".concat(node.data.code).concat(i),
                    node: "".concat(node.data.node).concat(i),
                    parentNode: node.data.node,
                    visible: true,
                    childs: res.slice(i * step, (i + 1) * step),
                    isVirtual: true
                  });
                }
                res = shardingRes;
              }
              filterRes = external_default.a.filter(res, function (el) {
                return !(el !== null && el !== void 0 && el.name.includes('_Clone'));
              });
              tempCheckedKey = external_default.a.map(filterRes, function (val) {
                return val.node;
              }); // 过滤勾选状态为选中的子集
              checkedKeys = external_default.a.map(external_default.a.filter(filterRes, function (res4) {
                return res4.checked;
              }), function (res5) {
                return res5.node;
              }); // 保存this指向
              that = _this3;
              isNoFindModelHides = function isNoFindModelHides(nodeObj) {
                return external_default.a.indexOf(external_default.a.map(that.modelTreeProp.modelHideList, function (res1) {
                  return res1.node;
                }), nodeObj.data.node) === -1;
              };
              if (!isNoFindModelHides(node)) {
                _context2.n = 11;
                break;
              }
              // 没有在影藏队列中
              node1 = node;
            case 7:
              if (!(node1.level !== 0)) {
                _context2.n = 10;
                break;
              }
              if (!isNoFindModelHides(node1)) {
                _context2.n = 8;
                break;
              }
              node1 = node1.parent;
              _context2.n = 9;
              break;
            case 8:
              return _context2.a(3, 10);
            case 9:
              _context2.n = 7;
              break;
            case 10:
              if (node1.level === 0) {
                // 如果查找到跟节点都没有在影藏队列中，那么就代表全是勾选状态，不存在半选
                _this3.modelTreeProp.defaultCheckedKey = [].concat(Object(toConsumableArray["a" /* default */])(_this3.modelTreeProp.defaultCheckedKey), Object(toConsumableArray["a" /* default */])(tempCheckedKey));
              } else if (external_default.a.some(filterRes, {
                checked: false
              })) {
                // 中间父级可能是半选或者空白
                // 通过父获取子集的状态,如果子集中有一个为false，那么就把父级从默认选中框中去除掉，然后在设置子集节点状态
                _this3.modelTreeProp.defaultCheckedKey = [].concat(Object(toConsumableArray["a" /* default */])(external_default.a.filter(_this3.modelTreeProp.defaultCheckedKey, function (val) {
                  return val !== node.data.node;
                })), Object(toConsumableArray["a" /* default */])(checkedKeys));
              }
              _context2.n = 12;
              break;
            case 11:
              // 在隐藏队列表
              _this3.modelTreeProp.defaultCheckedKey = [].concat(Object(toConsumableArray["a" /* default */])(_this3.modelTreeProp.defaultCheckedKey), Object(toConsumableArray["a" /* default */])(checkedKeys));
              console.log('在这儿通过三维返回的设置显影');
            case 12:
              resolve(filterRes);
              external_default.a.forEach(filterRes, function (el) {
                if (_this3.currentNode && _this3.currentNode.node) {
                  if (el.node === _this3.currentNode.node) {
                    _this3.locationNode(_this3.currentNode.node);
                  }
                }
              });
              if (_this3.modelTreeProp.defaultCheckedKey) {
                _this3.modelTreeVisbile = false;
                _this3.modelTreeVisbile = true;
                _this3.$nextTick(function () {
                  if (_this3.$refs.modelTree) {
                    _this3.$refs.modelTree.setCheckedKeys(_this3.modelTreeProp.defaultCheckedKey);
                  }
                });
              }
            case 13:
              return _context2.a(2);
          }
        }, _callee2);
      }))();
    },
    locationNode: function locationNode(id) {
      var _this4 = this;
      this.$nextTick(function () {
        _this4.$refs.modelTree.setCurrentKey(id);
        setTimeout(function () {
          var node = document.getElementsByClassName('modelTree')[0];
          var currentNode = document.getElementsByClassName('is-current')[0];
          // 将选中节点滚动到视口中间
          if (currentNode) {
            var treeRect = node.getBoundingClientRect();
            var nodeRect = currentNode.getBoundingClientRect();
            var offset = nodeRect.top - treeRect.top; // 选中节点相对于树的顶部的偏移
            var midPoint = treeRect.height / 2 - nodeRect.height / 2; // 计算中间位置

            node.scrollTop += offset - midPoint; // 设置滚动位置
          }
        }, 1000);
      });
    },
    checkModelTree: function checkModelTree(data, checkeds) {
      // 节点选中状态发生变化
      var isChecked = external_default.a.includes(checkeds.checkedKeys, data.node);
      if (data.isVirtual) {
        this.$refs.modelTree.setCheckedKeys(this.modelTreeProp.defaultCheckedKey);
        return;
      }
      modelTree(this.player, 'checkModelTree', isChecked, [data.node], this.modelTreeProp, checkeds);
    },
    filterModelTree: function filterModelTree(startItem, direction, KeyWords, type) {
      var _arguments2 = arguments,
        _this5 = this;
      return Object(asyncToGenerator["a" /* default */])(/*#__PURE__*/Object(regenerator["a" /* default */])().m(function _callee3() {
        var doLocation, res;
        return Object(regenerator["a" /* default */])().w(function (_context3) {
          while (1) switch (_context3.n) {
            case 0:
              doLocation = _arguments2.length > 4 && _arguments2[4] !== undefined ? _arguments2[4] : true;
              _context3.n = 1;
              return _this5.player.Native.Node.findNode(startItem, {
                names: [KeyWords],
                codes: [KeyWords]
              });
            case 1:
              res = _context3.v;
              _this5.currentNode = res.codes ? res.codes[KeyWords] || {} : res.names ? res.names[KeyWords] || {} : {};
              // 展开树
              if (external_default.a.isEmpty(_this5.currentNode)) {
                _context3.n = 3;
                break;
              }
              _context3.n = 2;
              return _this5.expendNode(_this5.currentNode, doLocation);
            case 2:
              _context3.n = 4;
              break;
            case 3:
              // 未找到
              _this5.$message.error('搜索结果到底了');
            case 4:
              return _context3.a(2);
          }
        }, _callee3);
      }))();
    },
    // 展开节点树
    expendNode: function expendNode(node, doLocation) {
      var _this6 = this;
      return Object(asyncToGenerator["a" /* default */])(/*#__PURE__*/Object(regenerator["a" /* default */])().m(function _callee4() {
        var rootNode, rootChild, _currentLevelNodes$ch, res, currentLevelNodes, parentInfo, expandIndex;
        return Object(regenerator["a" /* default */])().w(function (_context4) {
          while (1) switch (_context4.n) {
            case 0:
              _context4.n = 1;
              return _this6.player.Native.Node.getRoot();
            case 1:
              rootNode = _context4.v;
              _context4.n = 2;
              return _this6.player.Native.Node.getProperty(rootNode, ['children']);
            case 2:
              rootChild = _context4.v;
              if (!(node.node === rootChild.children[0].node)) {
                _context4.n = 3;
                break;
              }
              // 到达根节点 执行点击事件
              _this6.$nextTick(function () {
                if (!_this6.currentNodeName) {
                  // 无激活节点时
                  _this6.clickModelTree(_this6.currentNode, {
                    checked: true
                  }, doLocation);
                }
                // 有选中激活节点时
                _this6.currentNodeName = '';
                _this6.locationNode(_this6.currentNode.node);
              });
              _context4.n = 8;
              break;
            case 3:
              _context4.n = 4;
              return _this6.player.Native.Node.getProperty(node.node, ['parent']);
            case 4:
              res = _context4.v;
              _context4.n = 5;
              return _this6.player.Native.Node.getProperty(res.parent, ['children']);
            case 5:
              currentLevelNodes = _context4.v;
              _context4.n = 6;
              return _this6.player.Native.Node.getProperty(res.parent, ['code', 'name']);
            case 6:
              parentInfo = _context4.v;
              expandIndex = null;
              if (((_currentLevelNodes$ch = currentLevelNodes.children) === null || _currentLevelNodes$ch === void 0 ? void 0 : _currentLevelNodes$ch.length) > 1000) {
                expandIndex = external_default.a.findIndex(currentLevelNodes.children, ['node', node.node]);
              }
              _context4.n = 7;
              return _this6.expendNode(parentInfo, doLocation);
            case 7:
              if (!_this6.defaultExpandedKeys.includes(parentInfo.node)) {
                // 展开
                _this6.defaultExpandedKeys.push(parentInfo.node);
              }
              if (expandIndex !== -1) {
                _this6.defaultExpandedKeys.push("".concat(parentInfo.node).concat(expandIndex % 1000 === 0 ? expandIndex / 1000 : external_default.a.ceil(expandIndex / 1000) - 1));
              }
            case 8:
              return _context4.a(2);
          }
        }, _callee4);
      }))();
    },
    filterNode: function filterNode(value, data) {
      if (!value) return true;
      if (value === 'NotCode') return false;
      return data.name.indexOf(value) !== -1;
    }
  }
});
// CONCATENATED MODULE: ./src/components/model-vulkan/ModelTreeVulkan.vue?vue&type=script&lang=js
 /* harmony default export */ var model_vulkan_ModelTreeVulkanvue_type_script_lang_js = (ModelTreeVulkanvue_type_script_lang_js); 
// EXTERNAL MODULE: ./src/components/model-vulkan/ModelTreeVulkan.vue?vue&type=style&index=0&id=3dbf53b6&prod&lang=scss&scoped=true
var ModelTreeVulkanvue_type_style_index_0_id_3dbf53b6_prod_lang_scss_scoped_true = __webpack_require__("c2b5");

// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__("2877");

// CONCATENATED MODULE: ./src/components/model-vulkan/ModelTreeVulkan.vue






/* normalize component */

var component = Object(componentNormalizer["a" /* default */])(
  model_vulkan_ModelTreeVulkanvue_type_script_lang_js,
  render,
  staticRenderFns,
  false,
  null,
  "3dbf53b6",
  null
  
)

/* harmony default export */ var ModelTreeVulkan = __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ "c2b5":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_windicss_webpack_plugin_dist_loaders_windicss_style_pitcher_cjs_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_index_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_windicss_webpack_plugin_dist_loaders_windicss_template_cjs_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ModelTreeVulkan_vue_vue_type_style_index_0_id_3dbf53b6_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("ca5d");
/* harmony import */ var _node_modules_windicss_webpack_plugin_dist_loaders_windicss_style_pitcher_cjs_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_index_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_windicss_webpack_plugin_dist_loaders_windicss_template_cjs_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ModelTreeVulkan_vue_vue_type_style_index_0_id_3dbf53b6_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_windicss_webpack_plugin_dist_loaders_windicss_style_pitcher_cjs_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_index_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_windicss_webpack_plugin_dist_loaders_windicss_template_cjs_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ModelTreeVulkan_vue_vue_type_style_index_0_id_3dbf53b6_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "c85a":
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__("2350")(false);
// imports


// module
exports.push([module.i, "[data-v-3dbf53b6] .el-card__body{padding:0!important;background-color:rgba(24,41,72,.4)!important;border-radius:2px;border:none}[data-v-3dbf53b6] .el-loading-mask{height:calc(100% - 42px);background-color:rgba(24,41,72,.8)!important}[data-v-3dbf53b6] .el-tree-node__content{height:28px;font-size:12px;color:#fff}[data-v-3dbf53b6] .el-tree-node__content .tree-label{font-size:12px}[data-v-3dbf53b6] .el-tree__empty-text{font-size:12px;color:#fff!important}[data-v-3dbf53b6] .el-tree .el-tree-node__label{color:#fff}[data-v-3dbf53b6] .el-checkbox__input.is-checked .el-checkbox__inner,[data-v-3dbf53b6] .el-tree .el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:#1890ff!important}[data-v-3dbf53b6] .el-tree,[data-v-3dbf53b6] .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content,[data-v-3dbf53b6] .el-tree-node:focus,[data-v-3dbf53b6] .el-tree-node:focus>.el-tree-node__content,[data-v-3dbf53b6] .el-tree-node__content:hover{background-color:transparent!important}[data-v-3dbf53b6] .is-current>.el-tree-node__content .el-tree-node__label{background-color:transparent!important;color:#00c0ff!important}.el-tabs[data-v-3dbf53b6] ::-webkit-scrollbar,[data-v-3dbf53b6]::-webkit-scrollbar{background-color:transparent!important;width:5px;height:5px}.el-tabs[data-v-3dbf53b6] ::-webkit-scrollbar-thumb,[data-v-3dbf53b6]::-webkit-scrollbar-thumb{background-color:rgba(141,156,170,.5)!important;border-radius:5px}.el-tabs[data-v-3dbf53b6] ::-webkit-scrollbar-track,[data-v-3dbf53b6]::-webkit-scrollbar-track{border-radius:10px;background-color:rgba(0,0,0,.1)!important}[data-v-3dbf53b6] .el-card__body{height:calc(100% - 42px)!important}.modelTree[data-v-3dbf53b6]{overflow-y:auto!important;height:100%!important}.model-filter[data-v-3dbf53b6] .el-input{width:calc(100% - 95px)!important}.model-filter[data-v-3dbf53b6] .el-input__inner{font-size:12px;border-radius:4px;background-color:rgba(13,27,55,.6)!important;color:#fff!important;border:none}.model-filter[data-v-3dbf53b6] .el-button{background-color:#00c0ff!important;border:none!important;width:32px;height:32px;padding:0!important;margin-left:5px!important}", ""]);

// exports


/***/ }),

/***/ "ca5d":
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__("c85a");
if(content.__esModule) content = content.default;
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = __webpack_require__("499e").default
var update = add("68b46b5d", content, true, {"sourceMap":false,"shadowMode":false});

/***/ })

}]);
//# sourceMappingURL=equipment-disassemble-training.umd.6.js.map