{"remainingRequest":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\eslint-loader\\index.js??ref--13-0!D:\\jenkins\\workspace\\xq-web-bpm\\src\\tripartite\\buildBigScreen\\src\\mixins\\index.js","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\src\\tripartite\\buildBigScreen\\src\\mixins\\index.js","mtime":1675071992522},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\eslint-loader\\index.js","mtime":499162500000}],"contextDependencies":[],"result":["import \"core-js/modules/es6.array.find\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/web.dom.iterable\";\n// 查看页面和编辑页面公用的参数和方法\nimport report from '@/api/report.js';\nimport common from '@/tripartite/buildBigScreen/src/config';\nimport { config } from '@/tripartite/buildBigScreen/src/option/config';\nimport container from '@/tripartite/buildBigScreen/src/page/group/container';\nimport { getList } from '@/tripartite/buildBigScreen/src/api/map';\nexport default {\n  components: {\n    container: container\n  },\n  provide: function provide() {\n    return {\n      main: this,\n      contain: this\n    };\n  },\n  data: function data() {\n    return {\n      DIC: {\n        MAP: []\n      },\n      contentWidth: '',\n      config: config,\n      obj: {},\n      id: '',\n      visual: {},\n      nav: [],\n      common: common,\n      active: [],\n      overactive: '',\n      historyCache: [],\n      // 历史操作数据用于undo redo\n      currentHistoryIndex: -1,\n      // redo undo 指针\n      copyNav: '' // 用于监听去干扰,字符串类型,方便比较\n\n    };\n  },\n  watch: {\n    nav: {\n      handler: function handler(val, oldval) {\n        this.recordMain(val, oldval);\n      },\n      deep: true\n    }\n  },\n  computed: {\n    list: function list() {\n      var result = []; //循环处理数据\n\n      var detail = function detail(item) {\n        if (item.children) {\n          item.children.forEach(function (ele) {\n            detail(ele);\n          });\n        } else {\n          result.push(item);\n        }\n      };\n\n      this.nav.forEach(function (ele) {\n        detail(ele);\n      });\n      var len = result.length - 1;\n      result.forEach(function (ele, index) {\n        ele.zIndex = len - index;\n      });\n      return result;\n    },\n    // 能否撤销\n    canUndo: function canUndo() {\n      return this.currentHistoryIndex > 0;\n    },\n    canRedo: function canRedo() {\n      return this.historyCache.length > this.currentHistoryIndex + 1;\n    }\n  },\n  created: function created() {\n    this.initDic();\n  },\n  methods: {\n    //初始化字典\n    initDic: function initDic() {\n      var _this = this;\n\n      report.getMapManagement({\n        pageBean: {\n          page: 1,\n          pageSize: 50,\n          total: 0\n        }\n      }).then(function (res) {\n        var data = res.rows;\n        _this.DIC.MAP = data.map(function (ele) {\n          return {\n            label: ele.name,\n            value: window.context.report + 'bigScreen/bladeVisualMap/v1/' + ele.id\n          };\n        });\n      }); //  const data = [{\n      //   id: \"1235103352843448322\",\n      //   name: \"中国地图\",\n      //  }]\n      //   this.DIC.MAP = data.map(ele => {\n      //     return {\n      //       label: ele.name,\n      //       value: window.context.report + 'bigScreen/bladeVisualMap/v1/' + ele.id\n      //     }\n      //   });\n    },\n    findnav: function findnav(id, type) {\n      var _this2 = this;\n\n      //循环处理数据\n      var obj = undefined;\n      var count = 0;\n      var parent = undefined;\n      var pcount = 0;\n      var len = 0;\n\n      var detail = function detail(item, list, i) {\n        var number = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n\n        if (!item.children || type) {\n          if (id === item.index) {\n            obj = item;\n            len = Array.isArray(list) ? list.length - 1 : list.children.length - 1;\n            parent = list;\n            pcount = number;\n            count = i;\n          }\n        }\n\n        if (item.children) {\n          item.children.forEach(function (ele, index) {\n            detail(ele, item, index, number + 1);\n          });\n        }\n      };\n\n      this.nav.forEach(function (ele, index) {\n        detail(ele, _this2.nav, index);\n      });\n      return {\n        obj: obj,\n        count: count,\n        len: len,\n        pcount: pcount,\n        parent: parent\n      };\n    },\n    findlist: function findlist(index) {\n      return this.list.find(function (ele) {\n        return ele.index == index;\n      }) || {};\n    },\n    handleInitActive: function handleInitActive() {\n      this.active = [];\n    },\n    handleMouseDown: function handleMouseDown() {\n      this.handleInitActive();\n    },\n    // =====================历史纪录=======================\n    // 监听调用主程序\n    recordMain: function recordMain(val, oldval) {\n      //分两种情况:\n      // 1. 版本在回撤时, 不要走监听(同时啥也没改)\n      // 2. 版本回撤改了呢?那也要走监听重新推新的  \n      if (JSON.stringify(val) != this.copyNav) {\n        // 不一样的东西才值得记录\n        // 这里监听不用deep,很多移动操作无法监听,但用了deep杂质很多,随便鼠标点一下就能触发监听\n        // 注意不要这么判断 (val !== oldval)  因为很多时候新老值对比是一样的\n        var newst = JSON.stringify(val);\n\n        if (newst != this.copyNav) {\n          // console.log('我不一样哦');\n          this.copyNav = newst;\n          this.addHistoryCache(val);\n        } else {\n          // console.log(\"一模一样,你记录个锤子啊!!\");\n          return;\n        }\n      }\n    },\n\n    /**\r\n    * 新增一条历史纪录\r\n    * @param \r\n    */\n    addHistoryCache: function addHistoryCache(val) {\n      if (this.currentHistoryIndex + 1 < this.historyCache.length) {\n        this.historyCache.splice(this.currentHistoryIndex + 1);\n      }\n\n      this.historyCache.push({\n        nav: this.deepClone(val) // activePageUUID: this.activePageUUID,\n        // activeElementUUID: this.activeElementUUID\n\n      }); // 限制undo 纪录步数，最多支持100步操作undo\n\n      this.historyCache.splice(100);\n      this.currentHistoryIndex++;\n    },\n    editorUndo: function editorUndo() {\n      if (!this.canUndo) {\n        return;\n      }\n\n      this.currentHistoryIndex--;\n      this.relapceEditorState();\n    },\n    editorRedo: function editorRedo() {\n      if (!this.canRedo) {\n        return;\n      }\n\n      this.currentHistoryIndex++;\n      this.relapceEditorState();\n    },\n\n    /**\r\n    * 更新编辑器项目数据，从history中拿数据替换\r\n    * @param data\r\n    */\n    relapceEditorState: function relapceEditorState() {\n      var prevState = this.historyCache[this.currentHistoryIndex];\n      this.nav = this.deepClone(prevState.nav); // 版本回退,本地保存一个,方便后面对比\n\n      this.copyNav = JSON.stringify(prevState.nav);\n    }\n  }\n};",null]}