{"version":3,"sources":["webpack:///./src/views/aiChat/index.vue?69be","webpack:///src/views/aiChat/index.vue","webpack:///./src/views/aiChat/index.vue?82a0","webpack:///./src/views/aiChat/index.vue","webpack:///./src/views/aiChat/index.vue?d74a"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","staticStyle","attrs","iframeSrc","iframeHeight","staticRenderFns","name","components","computed","data","form","currentUser","created","window","mounted","beforeDestroy","methods","setIframeHeight","getCurrentUser","console","sendLoginInfoToIframe","phoneNumber","externalUserInfo","username","realname","userId","deptId","orgCode","iframeDom","type","value","handleIframeMessage","event","component"],"mappings":"yHAAA,IAAIA,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,QAAQ,CAACF,EAAG,SAAS,CAACG,YAAY,CAAC,OAAS,QAAQC,MAAM,CAAC,GAAK,aAAa,IAAMR,EAAIS,UAAU,YAAc,IAAI,MAAQ,OAAO,OAAST,EAAIU,aAAa,UAAY,aAC1RC,EAAkB,G,YCeP,GACfC,QACAC,cACAC,YACAC,KAJA,WAKA,OACAC,QAEAP,6CAEAC,qBACAO,mBAIAC,QAfA,WAiBA,uBAEAC,wDAEAC,QArBA,WAsBA,sBACA,uBAEAD,6DAEAE,cA3BA,WA6BAF,0DACAA,gEAGAG,SACAC,gBADA,WAGA,4BACA,0BAIAC,eARA,WASAC,wBACA,sCACA,mBACAA,yCAIAC,sBAhBA,WAgBA,MACA,qBAMA,oFACA,MAMA,OACAC,cACAC,iCACAC,8DACAC,0FACAC,+BACAC,+BACAC,mGAEA,mBAIAR,wCAEA,4CACA,uCACAS,4BACA,CACAC,iBACApB,MACAqB,UAGA,KAEAX,kCAEAA,mCAjCAA,+BAPAA,2BA4CAY,oBA9DA,SA8DAC,GAAA,MAIA,iEACAb,oCACA,iCCrH8V,I,wBCQ1Vc,EAAY,eACd,EACAxC,EACAY,GACA,EACA,KACA,WACA,MAIa,aAAA4B,E,6CCnBf,W","file":"js/chunk-c1889410.v0.1.2.1793675441333.js?hash=v0.1.2.1793675441333","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"body\"},[_c('iframe',{staticStyle:{\"border\":\"none\"},attrs:{\"id\":\"testIframe\",\"src\":_vm.iframeSrc,\"frameborder\":\"0\",\"width\":\"100%\",\"height\":_vm.iframeHeight,\"scrolling\":\"auto\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <div class=\"body\">\r\n    <iframe\r\n      id=\"testIframe\"\r\n      :src=\"iframeSrc\"\r\n      frameborder=\"0\"\r\n      width=\"100%\"\r\n      :height=\"iframeHeight\"\r\n      scrolling=\"auto\"\r\n      style=\"border: none\"\r\n    >\r\n    </iframe>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n  name: \"\",\r\n  components: {},\r\n  computed: {},\r\n  data() {\r\n    return {\r\n      form: {},\r\n      // iframeSrc: 'http://localhost:5174/', // 实际链接\r\n      iframeSrc: \"https://ai.aipesticides.com/chat\", // 实际链接\r\n      // iframeSrc: 'http://127.0.0.1:5173/', // 实际链接\r\n      iframeHeight: \"100px\",\r\n      currentUser: null,\r\n    };\r\n  },\r\n\r\n  created() {\r\n    // 初始化时设置高度\r\n    this.setIframeHeight();\r\n    // 监听窗口大小变化\r\n    window.addEventListener(\"resize\", this.setIframeHeight);\r\n  },\r\n  mounted() {\r\n    this.getCurrentUser();\r\n    this.setIframeHeight();\r\n    // ✅ 监听子页面发来的 \"准备就绪\" 消息\r\n    window.addEventListener(\"message\", this.handleIframeMessage);\r\n  },\r\n  beforeDestroy() {\r\n    // 清理事件监听器\r\n    window.removeEventListener(\"resize\", this.setIframeHeight);\r\n    window.removeEventListener(\"message\", this.handleIframeMessage);\r\n  },\r\n\r\n  methods: {\r\n    setIframeHeight() {\r\n      // 计算可用高度，可以根据需要调整这个值\r\n      const height = window.innerHeight - 53; // 减去一些边距\r\n      this.iframeHeight = height + \"px\";\r\n    },\r\n\r\n    // 获取当前用户信息\r\n    getCurrentUser() {\r\n      console.log(\"获取当前用户信息\");\r\n      const userInfo = this.$store.state.user.userInfo;\r\n      this.currentUser = userInfo;\r\n      console.log(\"当前用户信息:\", this.currentUser);\r\n    },\r\n\r\n    // 发送登录信息到 iframe\r\n    sendLoginInfoToIframe() {\r\n      if (!this.currentUser) {\r\n        console.error(\"❌ 用户信息为空\");\r\n        return;\r\n      }\r\n\r\n      // 获取手机号（根据实际字段调整）\r\n      const phoneNumber = this.currentUser.phonenumber || this.currentUser.phone || this.currentUser.mobile;\r\n      if (!phoneNumber) {\r\n        console.error(\"❌ 未找到手机号\");\r\n        return;\r\n      }\r\n\r\n      // 构建登录数据\r\n      const loginData = {\r\n        phoneNumber: phoneNumber,\r\n        externalUserInfo: {\r\n          username: this.currentUser.username || this.currentUser.userName,\r\n          realname: this.currentUser.nickName || this.currentUser.nick_name || this.currentUser.realname,\r\n          userId: this.currentUser.userId,\r\n          deptId: this.currentUser.deptId,\r\n          orgCode: this.currentUser.dept?.orgCode || this.currentUser.orgCode,\r\n          // 传递其他需要的信息\r\n          ...this.currentUser\r\n        }\r\n      };\r\n\r\n      console.log(\"📤 发送登录信息到 yunbo-chat:\", loginData);\r\n\r\n      const iframeDom = document.getElementById(\"testIframe\");\r\n      if (iframeDom?.contentWindow) {\r\n        iframeDom.contentWindow.postMessage(\r\n          {\r\n            type: \"USER_INFO\",\r\n            data: {\r\n              value: loginData\r\n            }\r\n          },\r\n          \"*\"\r\n        );\r\n        console.log(\"✅ 用户信息已发送到 iframe\");\r\n      } else {\r\n        console.error(\"❌ iframe 未就绪\");\r\n      }\r\n    },\r\n\r\n    handleIframeMessage(event) {\r\n      // 可选：验证来源\r\n      // if (event.origin !== 'https://ai.aipesticides.com') return;\r\n\r\n      if (event.data?.type === \"IFRAME_READY\") {\r\n        console.log(\"✅ 收到子页面就绪通知，准备发送用户信息\");\r\n        this.sendLoginInfoToIframe();\r\n      }\r\n    },\r\n  },\r\n};\r\n</script>\r\n\r\n<style scoped lang=\"less\">\r\n.body {\r\n  width: 100%;\r\n  height: 100%;\r\n  background-color: #fff;\r\n}\r\n\r\n// 可以添加一些样式来美化 iframe\r\niframe {\r\n  border-radius: 4px;\r\n  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=6eddbd0e&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=6eddbd0e&scoped=true&lang=less&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"6eddbd0e\",\n  null\n  \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--11-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--11-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--11-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--11-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=6eddbd0e&scoped=true&lang=less&\""],"sourceRoot":""}