{"remainingRequest":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xq-web-bpm\\src\\tripartite\\buildBigScreen\\src\\page\\group\\container.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\src\\tripartite\\buildBigScreen\\src\\page\\group\\container.vue","mtime":1675071992616},{"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\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\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//\n\r\nimport subgroup from './subgroup'\r\nimport common from '@/tripartite/buildBigScreen/src/config'\r\nimport { getObj } from '@/tripartite/buildBigScreen/src/api/visual'\r\nexport default {\r\n  name: 'contents',\r\n  inject: [\"contain\"],\r\n  props: {\r\n    option: Object,\r\n    props: {\r\n      type: Object,\r\n      default: () => {\r\n        return {}\r\n      }\r\n    },\r\n    wscale: Number\r\n  },\r\n  provide () {\r\n    return {\r\n      contain: this.contain,\r\n      container: this\r\n    };\r\n  },\r\n  components: {\r\n    subgroup\r\n  },\r\n  data () {\r\n    return {\r\n      contentStyle: {},\r\n      selectCount: {},\r\n      scale: 1,\r\n      gradeFlag: false,\r\n    }\r\n  },\r\n  computed: {\r\n    stepScale () {\r\n      let scale = Number((100 / (this.scale * this.wscale)).toFixed(2))\r\n      return scale\r\n    },\r\n    //计算中央可视化大屏比例\r\n    styleName () {\r\n      const scale = this.contain.config.scale;\r\n      const val = (scale / 100) + 0.001;\r\n      return Object.assign({\r\n        transform: `scale(${val}, ${val})`,\r\n        width: this.setPx(this.contain.config.width),\r\n        height: this.setPx(this.contain.config.height),\r\n        backgroundColor: this.contain.config.backgroundColor\r\n      }, (() => {\r\n        if (this.contain.config.backgroundImage) {\r\n          return {\r\n            background: `url(/mvue${this.contain.config.backgroundImage}) 0% 0% / 100% 100% rgb(3, 12, 59)`,\r\n          }\r\n        }\r\n        return\r\n      })())\r\n    },\r\n    gradeLenStyle () {\r\n      return {\r\n        backgroundSize: `${this.setPx(this.contain.config.gradeLen)} ${this.setPx(this.contain.config.gradeLen)},${this.setPx(this.contain.config.gradeLen)} ${this.setPx(this.contain.config.gradeLen)}`\r\n      }\r\n    }\r\n  },\r\n  mounted () {\r\n    this.initData();\r\n    this.initFun();\r\n  },\r\n  methods: {\r\n    initFun () {\r\n      ['handleRefresh', 'handleGetObj', 'handleRes'].forEach(ele => {\r\n        this[ele] = this.$refs.subgroup[ele]\r\n      });\r\n    },\r\n    //初始化数据\r\n    initData () {\r\n      const id = this.$route ? this.$route.params.id : this.props.id\r\n      this.contain.id = id;\r\n      this.contain.contentWidth = this.$refs.content.offsetWidth;\r\n      const isBuild = this.$route ? this.$route.name === 'build' : this.props.name;\r\n      const width = isBuild ? this.contain.contentWidth : document.body.clientWidth\r\n      let config;\r\n      //画布执行\r\n      this.setScale(width);\r\n      const callback = () => {\r\n        // console.log(this.contain, 'fdsdsdffdsfsdf')\r\n        //赋值属性\r\n        if (this.contain.config.mark.show && !isBuild) {\r\n          this.watermark(this.contain.config.mark);\r\n        }\r\n        this.calcData();\r\n        this.setScale(width);\r\n      }\r\n      if (id) {\r\n        const loading = this.$loading({\r\n          lock: true,\r\n          text: '正在加载中，请稍后',\r\n          spinner: 'el-icon-loading',\r\n          background: 'rgba(0, 0, 0, 0.7)'\r\n        });\r\n        getObj(id).then(res => {\r\n          // console.log(res, 'id获取大屏数据')\r\n          const data = res;\r\n          this.contain.obj = data;\r\n          // console.log(this.contain, '获取this.contain的数据')\r\n          config = data.config;\r\n          this.contain.json = {\r\n            detail: JSON.parse(config.detail) || {},\r\n            component: JSON.parse(config.component) || [],\r\n          }\r\n          this.contain.config = JSON.parse(config.detail) || {};\r\n          this.contain.nav = JSON.parse(config.component) || [];\r\n          this.contain.visual = data.visual;\r\n          //添加水印。只有查看页面生效\r\n          // if (!isBuild) {\r\n          //   const password = this.contain.visual.password\r\n          //   if (!this.validatenull(password)) {\r\n          //     this.$prompt('请输入密码', '提示', {\r\n          //       confirmButtonText: '确定',\r\n          //       showCancelButton: false,\r\n          //       showClose: false,\r\n          //       closeOnClickModal: false,\r\n          //       inputPattern: new RegExp(password),\r\n          //       inputErrorMessage: '密码不正确，请重新输入'\r\n          //     }).then(() => {\r\n          //       callback();\r\n          //     })\r\n          //   } else {\r\n          //     callback();\r\n          //   }\r\n\r\n          // } else {\r\n          //   callback();\r\n          // }\r\n          callback();\r\n          loading.close();\r\n        }).catch((err) => {\r\n          console.log(err)\r\n          loading.close();\r\n        })\r\n      } else if (this.option) {\r\n        config = this.option;\r\n        this.contain.config = config.detail || {};\r\n        this.contain.nav = config.component || [];\r\n        callback();\r\n      } else {\r\n        this.setScale(width);\r\n      }\r\n    },\r\n    //适配尺寸\r\n    setResize () {\r\n      this.contentStyle = {\r\n        width: this.setPx((this.contain.config.scale * this.contain.config.width) / 100),\r\n        height: this.setPx((this.contain.config.scale * this.contain.config.height) / 100),\r\n      }\r\n      //  console.log(this.contentStyle.width , this.contentStyle.height, 'gsdsfssfdsd')\r\n    },\r\n    //计算比例\r\n    setScale (width) {\r\n      this.contain.config.scale = (width / this.contain.config.width) * 100\r\n      this.scale = this.contain.config.scale;\r\n      this.setResize();\r\n    },\r\n    calcData () {\r\n      if (!this.contain.config.mark) this.contain.config.mark = {}\r\n      if (!this.contain.config.query) this.contain.config.query = {}\r\n    },\r\n    handlePostionSelect (postion) {\r\n      this.handleCalcPostionSelect();\r\n      const x1 = this.selectCount.maxx1;\r\n      const x2 = this.selectCount.maxx2;\r\n      const y1 = this.selectCount.maxy1;\r\n      const y2 = this.selectCount.maxy2;\r\n      if (postion === 'left') {\r\n        this.handleMoveSelectList(x1, undefined, true, postion);\r\n      } else if (postion === 'center') {\r\n        this.handleMoveSelectList(x1 + (x2 - x1) / 2, undefined, true, postion);\r\n      } else if (postion === 'right') {\r\n        this.handleMoveSelectList(x2, undefined, true, postion);\r\n      } else if (postion === 'top') {\r\n        this.handleMoveSelectList(undefined, y1, true, postion);\r\n      } else if (postion === 'middle') {\r\n        this.handleMoveSelectList(undefined, y1 + (y2 - y1) / 2, true, postion);\r\n      } else if (postion === 'bottom') {\r\n        this.handleMoveSelectList(undefined, y2, true, postion);\r\n      }\r\n    },\r\n    handleMoveSelectList (left, top, type, postion) {\r\n      this.contain.active.forEach(ele => {\r\n        ele = this.contain.findlist(ele)\r\n        const ele_component = ele.component;\r\n        //水平情况\r\n        if (left) {\r\n          let baseLeft = Number(type ? left : (ele.left + left).toFixed(2));\r\n          if (postion === 'right') {\r\n            baseLeft = baseLeft - ele_component.width\r\n          }\r\n          else if (postion === 'center') {\r\n            const obj_center = ele.left + ele_component.width / 2;\r\n            baseLeft = ele.left + (left - obj_center)\r\n          }\r\n          this.$set(ele, 'left', baseLeft);\r\n          this.$refs.subgroup.$refs[common.DEAFNAME + ele.index][0].setLeft(baseLeft)\r\n        }\r\n        //垂直情况\r\n        if (top) {\r\n          let baseTop = Number(type ? top : (ele.top + top).toFixed(2));\r\n          if (postion === 'bottom') {\r\n            baseTop = baseTop - ele_component.height\r\n          }\r\n          else if (postion === 'middle') {\r\n            const obj_middle = ele.top + ele_component.height / 2;\r\n            baseTop = ele.top + (top - obj_middle)\r\n          }\r\n          this.$set(ele, 'top', baseTop)\r\n          this.$refs.subgroup.$ref[common.DEAFNAME + ele.index][0].setTop(baseTop)\r\n        }\r\n      })\r\n    },\r\n    //计算多选状态下的最大边界值\r\n    handleCalcPostionSelect () {\r\n      this.selectCount.maxx1 = 99999;\r\n      this.selectCount.maxy1 = 99999;\r\n      this.contain.active.forEach(ele => {\r\n        ele = this.contain.findlist(ele)\r\n        const left = ele.left;\r\n        const top = ele.top;\r\n        const width = ele.component.width;\r\n        const height = ele.component.height;\r\n        if (this.selectCount.maxx1 > left) {\r\n          this.selectCount.maxx1 = left;\r\n        }\r\n        if (this.selectCount.maxx2 < left + width) {\r\n          this.selectCount.maxx2 = left + width;\r\n        }\r\n        if (this.selectCount.maxy1 > top) {\r\n          this.selectCount.maxy1 = top;\r\n        }\r\n        if (this.selectCount.maxy2 < top + height) {\r\n          this.selectCount.maxy2 = top + height;\r\n        }\r\n      })\r\n    },\r\n  }\r\n}\r\n",null]}