{"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]}