pcm-agents 0.6.76 → 0.6.78

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. package/dist/cjs/components-position-selector.cjs.entry.js +1 -1
  2. package/dist/cjs/index-C_qhED9Z.js +2 -6
  3. package/dist/cjs/{index-DJuHr4W9.js → index-DOCJeM7I.js} +3 -3
  4. package/dist/cjs/{index-DJuHr4W9.js.map → index-DOCJeM7I.js.map} +1 -1
  5. package/dist/cjs/index.cjs.js +1 -1
  6. package/dist/cjs/loader.cjs.js +1 -1
  7. package/dist/cjs/oem-htws-modal.cjs.entry.js +1 -1
  8. package/dist/cjs/oem-jd-modal.cjs.entry.js +2 -2
  9. package/dist/cjs/oem-jlpp-modal.cjs.entry.js +1 -1
  10. package/dist/cjs/oem-jlsx-modal.cjs.entry.js +24 -2
  11. package/dist/cjs/oem-jlsx-modal.cjs.entry.js.map +1 -1
  12. package/dist/cjs/oem-jlsx-modal.entry.cjs.js.map +1 -1
  13. package/dist/cjs/oem-jlzz-modal.cjs.entry.js +1 -1
  14. package/dist/cjs/oem-mnct-modal.cjs.entry.js +1 -1
  15. package/dist/cjs/oem-mnms-modal.cjs.entry.js +1 -1
  16. package/dist/cjs/oem-qgqjl-modal.cjs.entry.js +1 -1
  17. package/dist/cjs/oem-zygh-modal.cjs.entry.js +1 -1
  18. package/dist/cjs/{pcm-1zhanshi-mnms-modal_28.cjs.entry.js → pcm-1zhanshi-mnms-modal_29.cjs.entry.js} +540 -108
  19. package/dist/cjs/pcm-1zhanshi-mnms-modal_29.cjs.entry.js.map +1 -0
  20. package/dist/cjs/pcm-agents.cjs.js +1 -1
  21. package/dist/cjs/pcm-hr-chat-modal.cjs.entry.js +19 -2
  22. package/dist/cjs/pcm-hr-chat-modal.cjs.entry.js.map +1 -1
  23. package/dist/cjs/pcm-hr-chat-modal.entry.cjs.js.map +1 -1
  24. package/dist/cjs/{sentry-reporter-COJ0pOg4.js → sentry-reporter-BY3e-WWj.js} +3 -3
  25. package/dist/cjs/{sentry-reporter-COJ0pOg4.js.map → sentry-reporter-BY3e-WWj.js.map} +1 -1
  26. package/dist/collection/components/oem-jlsx-modal/oem-jlsx-modal.js +22 -0
  27. package/dist/collection/components/oem-jlsx-modal/oem-jlsx-modal.js.map +1 -1
  28. package/dist/collection/components/pcm-app-chat-modal/pcm-app-chat-modal.js +19 -0
  29. package/dist/collection/components/pcm-app-chat-modal/pcm-app-chat-modal.js.map +1 -1
  30. package/dist/collection/components/pcm-hr-chat-modal/pcm-hr-chat-modal.js +17 -0
  31. package/dist/collection/components/pcm-hr-chat-modal/pcm-hr-chat-modal.js.map +1 -1
  32. package/dist/collection/components/pcm-jlpp-modal/pcm-jlpp-modal.js +12 -11
  33. package/dist/collection/components/pcm-jlpp-modal/pcm-jlpp-modal.js.map +1 -1
  34. package/dist/collection/components/pcm-jlsx-modal/pcm-jlsx-modal.js +12 -0
  35. package/dist/collection/components/pcm-jlsx-modal/pcm-jlsx-modal.js.map +1 -1
  36. package/dist/collection/components/pcm-jlzz-modal/pcm-jlzz-modal.js +88 -2
  37. package/dist/collection/components/pcm-jlzz-modal/pcm-jlzz-modal.js.map +1 -1
  38. package/dist/collection/components/pcm-qgqjl-modal/pcm-qgqjl-modal.js +20 -19
  39. package/dist/collection/components/pcm-qgqjl-modal/pcm-qgqjl-modal.js.map +1 -1
  40. package/dist/collection/components/pcm-virtual-chat-modal/pcm-virtual-chat-modal.js +108 -3
  41. package/dist/collection/components/pcm-virtual-chat-modal/pcm-virtual-chat-modal.js.map +1 -1
  42. package/dist/collection/components/pcm-zsk-chat-modal/pcm-zsk-chat-modal.js +17 -0
  43. package/dist/collection/components/pcm-zsk-chat-modal/pcm-zsk-chat-modal.js.map +1 -1
  44. package/dist/collection/components/pcm-zygh-v2-modal/pcm-zygh-v2-modal.js +14 -14
  45. package/dist/collection/components/pcm-zygh-v2-modal/pcm-zygh-v2-modal.js.map +1 -1
  46. package/dist/components/components-position-selector.js +1 -1
  47. package/dist/components/index.js +1 -1
  48. package/dist/components/oem-htws-modal.js +6 -6
  49. package/dist/components/oem-jd-modal.js +4 -4
  50. package/dist/components/oem-jlpp-modal.js +8 -8
  51. package/dist/components/oem-jlsx-modal.js +28 -6
  52. package/dist/components/oem-jlsx-modal.js.map +1 -1
  53. package/dist/components/oem-jlzz-modal.js +6 -6
  54. package/dist/components/oem-mnct-modal.js +8 -8
  55. package/dist/components/oem-mnms-modal.js +9 -9
  56. package/dist/components/oem-qgqjl-modal.js +8 -8
  57. package/dist/components/oem-zygh-modal.js +6 -6
  58. package/dist/components/{p-CGRQB-kz.js → p-9hnllPbt.js} +3 -3
  59. package/dist/components/{p-CGRQB-kz.js.map → p-9hnllPbt.js.map} +1 -1
  60. package/dist/components/{p-nFix5BDn.js → p-B7cdvqSY.js} +4 -4
  61. package/dist/components/{p-nFix5BDn.js.map → p-B7cdvqSY.js.map} +1 -1
  62. package/dist/components/{p-BZeNORff.js → p-BnkPmLIU.js} +111 -6
  63. package/dist/components/p-BnkPmLIU.js.map +1 -0
  64. package/dist/components/{p-DtCXILg5.js → p-C4KAf-6-.js} +3 -3
  65. package/dist/components/{p-DtCXILg5.js.map → p-C4KAf-6-.js.map} +1 -1
  66. package/dist/components/{p-pTzOe1-b.js → p-C6OdIxkm.js} +3 -3
  67. package/dist/components/{p-pTzOe1-b.js.map → p-C6OdIxkm.js.map} +1 -1
  68. package/dist/components/{p-BJnD41Qm.js → p-DHwXxizT.js} +3 -3
  69. package/dist/components/{p-BJnD41Qm.js.map → p-DHwXxizT.js.map} +1 -1
  70. package/dist/components/{p-Caxrsbp0.js → p-Da-8BxdM.js} +24 -5
  71. package/dist/components/p-Da-8BxdM.js.map +1 -0
  72. package/dist/components/{p--B9t4xVs.js → p-QwH3TimN.js} +3 -3
  73. package/dist/components/{p--B9t4xVs.js.map → p-QwH3TimN.js.map} +1 -1
  74. package/dist/components/{p-BjKpPzZZ.js → p-ikx6J73I.js} +3 -3
  75. package/dist/components/{p-BjKpPzZZ.js.map → p-ikx6J73I.js.map} +1 -1
  76. package/dist/components/{p-CvHWzHdd.js → p-qUBE1daM.js} +3 -3
  77. package/dist/components/{p-CvHWzHdd.js.map → p-qUBE1daM.js.map} +1 -1
  78. package/dist/components/pcm-1zhanshi-mnms-modal.js +5 -5
  79. package/dist/components/pcm-app-chat-modal.js +1 -1
  80. package/dist/components/pcm-ats-mnms-modal.js +5 -5
  81. package/dist/components/pcm-card.js +1 -1
  82. package/dist/components/pcm-chat-message.js +1 -1
  83. package/dist/components/pcm-digital-human.js +1 -1
  84. package/dist/components/pcm-export-records-modal.js +1 -1
  85. package/dist/components/pcm-hr-chat-modal.js +19 -2
  86. package/dist/components/pcm-hr-chat-modal.js.map +1 -1
  87. package/dist/components/pcm-htws-modal.js +7 -7
  88. package/dist/components/pcm-hyzj-modal.js +4 -4
  89. package/dist/components/pcm-jd-modal.js +4 -4
  90. package/dist/components/pcm-jlpp-modal.js +18 -17
  91. package/dist/components/pcm-jlpp-modal.js.map +1 -1
  92. package/dist/components/pcm-jlsx-modal.js +17 -5
  93. package/dist/components/pcm-jlsx-modal.js.map +1 -1
  94. package/dist/components/pcm-jlzz-modal.js +39 -8
  95. package/dist/components/pcm-jlzz-modal.js.map +1 -1
  96. package/dist/components/pcm-mnct-modal.js +4 -4
  97. package/dist/components/pcm-mnms-modal.js +8 -8
  98. package/dist/components/pcm-mnms-zp-modal.js +8 -8
  99. package/dist/components/pcm-mobile-input-btn.js +1 -1
  100. package/dist/components/pcm-mobile-upload-btn.js +1 -1
  101. package/dist/components/pcm-msbg-modal.js +4 -4
  102. package/dist/components/pcm-qgqjl-modal.js +26 -25
  103. package/dist/components/pcm-qgqjl-modal.js.map +1 -1
  104. package/dist/components/pcm-upload.js +1 -1
  105. package/dist/components/pcm-virtual-chat-modal.js +1 -1
  106. package/dist/components/pcm-zsk-chat-modal.js +19 -2
  107. package/dist/components/pcm-zsk-chat-modal.js.map +1 -1
  108. package/dist/components/pcm-zygh-modal.js +6 -6
  109. package/dist/components/pcm-zygh-v2-modal.js +18 -18
  110. package/dist/components/pcm-zygh-v2-modal.js.map +1 -1
  111. package/dist/esm/components-position-selector.entry.js +1 -1
  112. package/dist/esm/index-Bq0K-WqZ.js +2 -6
  113. package/dist/esm/{index-DBfBNGaa.js → index-CtBK1m67.js} +3 -3
  114. package/dist/esm/{index-DBfBNGaa.js.map → index-CtBK1m67.js.map} +1 -1
  115. package/dist/esm/index.js +1 -1
  116. package/dist/esm/loader.js +1 -1
  117. package/dist/esm/oem-htws-modal.entry.js +1 -1
  118. package/dist/esm/oem-jd-modal.entry.js +2 -2
  119. package/dist/esm/oem-jlpp-modal.entry.js +1 -1
  120. package/dist/esm/oem-jlsx-modal.entry.js +24 -2
  121. package/dist/esm/oem-jlsx-modal.entry.js.map +1 -1
  122. package/dist/esm/oem-jlzz-modal.entry.js +1 -1
  123. package/dist/esm/oem-mnct-modal.entry.js +1 -1
  124. package/dist/esm/oem-mnms-modal.entry.js +1 -1
  125. package/dist/esm/oem-qgqjl-modal.entry.js +1 -1
  126. package/dist/esm/oem-zygh-modal.entry.js +1 -1
  127. package/dist/esm/{pcm-1zhanshi-mnms-modal_28.entry.js → pcm-1zhanshi-mnms-modal_29.entry.js} +540 -109
  128. package/dist/esm/pcm-1zhanshi-mnms-modal_29.entry.js.map +1 -0
  129. package/dist/esm/pcm-agents.js +1 -1
  130. package/dist/esm/pcm-hr-chat-modal.entry.js +19 -2
  131. package/dist/esm/pcm-hr-chat-modal.entry.js.map +1 -1
  132. package/dist/esm/{sentry-reporter-BcA0r0vQ.js → sentry-reporter-D8jwTnnH.js} +3 -3
  133. package/dist/esm/{sentry-reporter-BcA0r0vQ.js.map → sentry-reporter-D8jwTnnH.js.map} +1 -1
  134. package/dist/pcm-agents/index.esm.js +1 -1
  135. package/dist/pcm-agents/oem-jlsx-modal.entry.esm.js.map +1 -1
  136. package/dist/pcm-agents/p-0a831595.entry.js +2 -0
  137. package/dist/pcm-agents/{p-365a351b.entry.js.map → p-0a831595.entry.js.map} +1 -1
  138. package/dist/pcm-agents/{p-d9e464fd.entry.js → p-1cc1dbcc.entry.js} +2 -2
  139. package/dist/pcm-agents/{p-cc3c0220.entry.js → p-43cefa20.entry.js} +2 -2
  140. package/dist/pcm-agents/{p-4b363eb3.entry.js → p-5bf761de.entry.js} +2 -2
  141. package/dist/pcm-agents/{p-96c41b85.entry.js → p-680bf3a3.entry.js} +2 -2
  142. package/dist/pcm-agents/p-8452f80b.entry.js +251 -0
  143. package/dist/pcm-agents/p-8452f80b.entry.js.map +1 -0
  144. package/dist/pcm-agents/{p-86c2748a.entry.js → p-890fb793.entry.js} +2 -2
  145. package/dist/pcm-agents/{p-Dz4pPCio.js → p-B1X08zm_.js} +2 -2
  146. package/dist/pcm-agents/{p-Dz4pPCio.js.map → p-B1X08zm_.js.map} +1 -1
  147. package/dist/pcm-agents/{p-zJbvNgZt.js → p-BmPGiYO3.js} +2 -2
  148. package/dist/pcm-agents/{p-zJbvNgZt.js.map → p-BmPGiYO3.js.map} +1 -1
  149. package/dist/pcm-agents/{p-a54ca8e2.entry.js → p-a31fa268.entry.js} +2 -2
  150. package/dist/pcm-agents/{p-4b257381.entry.js → p-ad6ce0c9.entry.js} +2 -2
  151. package/dist/pcm-agents/{p-41b4b6bb.entry.js → p-b80f01e6.entry.js} +2 -2
  152. package/dist/pcm-agents/{p-e442dabc.entry.js → p-c3eb9590.entry.js} +2 -2
  153. package/dist/pcm-agents/{p-92eea906.entry.js → p-eb44bda0.entry.js} +2 -2
  154. package/dist/pcm-agents/pcm-agents.esm.js +1 -1
  155. package/dist/pcm-agents/pcm-hr-chat-modal.entry.esm.js.map +1 -1
  156. package/dist/types/components/pcm-jlpp-modal/pcm-jlpp-modal.d.ts +3 -2
  157. package/dist/types/components/pcm-jlzz-modal/pcm-jlzz-modal.d.ts +14 -0
  158. package/dist/types/components/pcm-qgqjl-modal/pcm-qgqjl-modal.d.ts +3 -2
  159. package/dist/types/components/pcm-virtual-chat-modal/pcm-virtual-chat-modal.d.ts +10 -0
  160. package/dist/types/components/pcm-zygh-v2-modal/pcm-zygh-v2-modal.d.ts +4 -4
  161. package/dist/types/components.d.ts +36 -12
  162. package/package.json +1 -1
  163. package/dist/cjs/pcm-1zhanshi-mnms-modal_28.cjs.entry.js.map +0 -1
  164. package/dist/cjs/pcm-zygh-v2-modal.cjs.entry.js +0 -260
  165. package/dist/cjs/pcm-zygh-v2-modal.cjs.entry.js.map +0 -1
  166. package/dist/cjs/pcm-zygh-v2-modal.entry.cjs.js.map +0 -1
  167. package/dist/components/p-BZeNORff.js.map +0 -1
  168. package/dist/components/p-Caxrsbp0.js.map +0 -1
  169. package/dist/esm/pcm-1zhanshi-mnms-modal_28.entry.js.map +0 -1
  170. package/dist/esm/pcm-zygh-v2-modal.entry.js +0 -258
  171. package/dist/esm/pcm-zygh-v2-modal.entry.js.map +0 -1
  172. package/dist/pcm-agents/p-210d610a.entry.js +0 -2
  173. package/dist/pcm-agents/p-210d610a.entry.js.map +0 -1
  174. package/dist/pcm-agents/p-365a351b.entry.js +0 -2
  175. package/dist/pcm-agents/p-6551d616.entry.js +0 -251
  176. package/dist/pcm-agents/p-6551d616.entry.js.map +0 -1
  177. package/dist/pcm-agents/pcm-zygh-v2-modal.entry.esm.js.map +0 -1
  178. /package/dist/pcm-agents/{p-d9e464fd.entry.js.map → p-1cc1dbcc.entry.js.map} +0 -0
  179. /package/dist/pcm-agents/{p-cc3c0220.entry.js.map → p-43cefa20.entry.js.map} +0 -0
  180. /package/dist/pcm-agents/{p-4b363eb3.entry.js.map → p-5bf761de.entry.js.map} +0 -0
  181. /package/dist/pcm-agents/{p-96c41b85.entry.js.map → p-680bf3a3.entry.js.map} +0 -0
  182. /package/dist/pcm-agents/{p-86c2748a.entry.js.map → p-890fb793.entry.js.map} +0 -0
  183. /package/dist/pcm-agents/{p-a54ca8e2.entry.js.map → p-a31fa268.entry.js.map} +0 -0
  184. /package/dist/pcm-agents/{p-4b257381.entry.js.map → p-ad6ce0c9.entry.js.map} +0 -0
  185. /package/dist/pcm-agents/{p-41b4b6bb.entry.js.map → p-b80f01e6.entry.js.map} +0 -0
  186. /package/dist/pcm-agents/{p-e442dabc.entry.js.map → p-c3eb9590.entry.js.map} +0 -0
  187. /package/dist/pcm-agents/{p-92eea906.entry.js.map → p-eb44bda0.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"pcm-zygh-v2-modal.js","sourceRoot":"","sources":["../../../../src/components/pcm-zygh-v2-modal/pcm-zygh-v2-modal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAgB,KAAK,EAAE,MAAM,eAAe,CAAC;AAC/F,OAAO,EAAsB,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAErE,OAAO,EAAE,aAAa,EAAoB,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC,CAAC,eAAe;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAazD,MAAM,OAAO,WAAW;IACpB;;OAEG;IACK,UAAU,GAAW,QAAQ,CAAC;IAEtC;;OAEG;IAC2B,KAAK,CAAU;IAE7C;;OAEG;IACsB,MAAM,GAAY,KAAK,CAAC;IAEjD;;OAEG;IACM,WAAW,CAAqB;IAEzC;;OAEG;IACK,IAAI,CAAU;IAEtB;;OAEG;IACK,MAAM,GAAY,IAAI,CAAC;IAE/B;;OAEG;IACK,YAAY,GAAY,IAAI,CAAC;IAErC;;OAEG;IACK,WAAW,GAAY,IAAI,CAAC;IAEpC;;OAEG;IACsB,cAAc,CAAU;IAEjD;;OAEG;IACK,YAAY,GAAW,OAAO,CAAC;IAEvC;;OAEG;IACK,UAAU,GAAY,KAAK,CAAC;IAGpC;;;;OAIG;IACK,YAAY,GAA2B,EAAE,CAAC;IAElD;;OAEG;IACK,oBAAoB,GAAY,KAAK,CAAC;IAE9C;;OAEG;IACK,gBAAgB,GAAY,KAAK,CAAC;IAG1C;;OAEG;IACM,aAAa,CAAmC;IAEzD;;OAEG;IACM,cAAc,CAAwC;IAE/D;;OAEG;IACM,iBAAiB,CAA2C;IAErE;;OAEG;IACM,gBAAgB,CAGtB;IAEH;;OAEG;IACM,YAAY,CAAqB;IAE1C;;MAEE;IACO,cAAc,CAAiC;IAExD;;;;OAIG;IACK,eAAe,GAAwB,QAAQ,CAAC;IAE/C,WAAW,GAAY,KAAK,CAAC;IAC7B,gBAAgB,GAA8B,IAAI,CAAC;IACnD,aAAa,GAAY,KAAK,CAAC;IAC/B,YAAY,GAAY,KAAK,CAAC;IAC9B,gBAAgB,GAAmB,MAAM,CAAC;IAC1C,cAAc,GAAW,EAAE,CAAC,CAAC,SAAS;IACtC,YAAY,GAAW,EAAE,CAAC,CAAC,SAAS;IACpC,WAAW,GAAW,EAAE,CAAC,CAAC,SAAS;IACnC,UAAU,GAAW,EAAE,CAAC,CAAC,SAAS;IAE3C,+BAA+B;IACpB,WAAW,CAAc;IAE5B,oBAAoB,CAAa;IACjC,mBAAmB,CAAa;IAChC,YAAY,CAAC;IAGrB,iBAAiB,CAAC,QAAgB;QAC9B,uCAAuC;QACvC,IAAI,QAAQ,IAAI,QAAQ,KAAK,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC;YAChD,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;IACL,CAAC;IAID,KAAK,CAAC,kBAAkB,CAAC,QAAiB;QACtC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO;YACP,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAE/B,CAAC;aAAM,CAAC;YACJ,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;gBAC9C,4BAA4B;gBAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;gBACpC,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;oBACrC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;gBACjC,CAAC;YACL,CAAC;YAED,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAE/B,iCAAiC;YACjC,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC;gBAClF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC9B,CAAC;QACL,CAAC;IACL,CAAC;IAID,iBAAiB;QAEb,kBAAkB;QAClB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,WAAW,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;QACD,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEzB,mBAAmB;QACnB,IAAI,CAAC,oBAAoB,GAAG,GAAG,EAAE;YAC7B,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QAC7B,CAAC,CAAC;QACF,WAAW;QACX,IAAI,CAAC,mBAAmB,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,EAAE;YACtE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QACH,QAAQ,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC9E,CAAC;IAED,oBAAoB;QAChB,eAAe;QACf,QAAQ,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC7E,UAAU;QACV,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC/B,CAAC;IACL,CAAC;IAEO,WAAW,GAAG,GAAG,EAAE;QACvB,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAC5B,CAAC,CAAC;IAEM,oBAAoB,GAAG,CAAC,IAAoB,EAAE,EAAE;QACpD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,cAAc;QACd,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACzB,CAAC,CAAC;IAEM,mBAAmB,GAAG,KAAK,IAAI,EAAE;QACrC,6BAA6B;QAC7B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACzD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtB,OAAO;QACX,CAAC;QACD,aAAa;QACb,IAAI,MAAM,IAAI,CAAC,YAAY,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;YAC9C,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1B,OAAO;QACX,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC9B,CAAC,CAAC;IAGF,WAAW;IACH,sBAAsB,GAAG,CAAC,KAAkB,EAAE,EAAE;QACpD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;YACvB,GAAG,KAAK,CAAC,MAAM;YACf,IAAI,EAAE,IAAI,CAAC,gBAAgB;SAC9B,CAAC,CAAC;IACP,CAAC,CAAC;IAGF,MAAM;QACF,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAE9B,MAAM,UAAU,GAAG;YACf,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;SAC9B,CAAC;QAEF,MAAM,cAAc,GAAG;YACnB,iBAAiB,EAAE,IAAI;YACvB,YAAY,EAAE,IAAI,CAAC,UAAU;YAC7B,WAAW,EAAE,IAAI;SACpB,CAAC;QAEF,MAAM,YAAY,GAAG;YACjB,eAAe,EAAE,IAAI;YACrB,oBAAoB,EAAE,IAAI,CAAC,UAAU;SACxC,CAAC;QAEF,SAAS;QACT,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;QAE7D,eAAe;QACf,MAAM,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAElF,4BAA4B;QAC5B,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAEvF,OAAO,CACH,WAAK,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU;YACvC,WAAK,KAAK,EAAE,cAAc;gBACrB,IAAI,CAAC,YAAY,IAAI,CAClB,WAAK,KAAK,EAAC,cAAc;oBACrB,WAAK,KAAK,EAAC,aAAa;wBACnB,IAAI,CAAC,IAAI,IAAI,WAAK,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAC,aAAa,EAAC,GAAG,EAAC,0BAAM,GAAG;wBACpE,eAAM,IAAI,CAAC,UAAU,CAAO,CAC1B;oBACL,IAAI,CAAC,WAAW,IAAI,CACjB,cAAQ,KAAK,EAAC,cAAc,EAAC,OAAO,EAAE,IAAI,CAAC,WAAW;wBAClD,yBAAc,CACT,CACZ,CACC,CACT;gBAIA,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,cAAc,IAAI,CAC/D,WAAK,KAAK,EAAC,iBAAiB;oBAGxB,WAAK,KAAK,EAAC,mBAAmB;wBAC1B,wDAAqB;wBACrB,WAAK,KAAK,EAAC,mBAAmB;4BAC1B,WACI,KAAK,EAAE,oBAAoB,IAAI,CAAC,gBAAgB,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,EAC/E,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC;gCAEhD,WAAK,KAAK,EAAC,aAAa,mBAAS;gCACjC,WAAK,KAAK,EAAC,cAAc,+BAAW,CAClC;4BACN,WACI,KAAK,EAAE,oBAAoB,IAAI,CAAC,gBAAgB,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,EAC/E,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC;gCAEhD,WAAK,KAAK,EAAC,aAAa,mBAAS;gCACjC,WAAK,KAAK,EAAC,cAAc,+BAAW,CAClC,CACJ,CACJ;oBAGN,WAAK,KAAK,EAAC,sBAAsB;wBAC5B,IAAI,CAAC,gBAAgB,KAAK,MAAM,IAAI,CACjC,WAAK,KAAK,EAAC,aAAa;4BACpB,WAAK,KAAK,EAAC,YAAY;gCACnB,wDAAqB;gCACrB,aACI,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,YAAY,EAClB,WAAW,EAAC,8DAAY,EACxB,KAAK,EAAE,IAAI,CAAC,YAAY,EACxB,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,GAAI,CAAC,CAAC,MAA2B,CAAC,KAAK,GAC1E,CACA;4BACN,WAAK,KAAK,EAAC,YAAY;gCACnB,wDAAqB;gCACrB,aACI,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,YAAY,EAClB,WAAW,EAAC,8DAAY,EACxB,KAAK,EAAE,IAAI,CAAC,WAAW,EACvB,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,GAAI,CAAC,CAAC,MAA2B,CAAC,KAAK,GACzE,CACA;4BACN,WAAK,KAAK,EAAC,WAAW,wJAEhB;4BACN,WAAK,KAAK,EAAC,YAAY;gCACnB,wDAAqB;gCACrB,aACI,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,YAAY,EAClB,WAAW,EAAC,oEAAa,EACzB,KAAK,EAAE,IAAI,CAAC,UAAU,EACtB,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,GAAI,CAAC,CAAC,MAA2B,CAAC,KAAK,GACxE,CACA,CACJ,CACT;wBAEA,IAAI,CAAC,gBAAgB,KAAK,MAAM,IAAI,CACjC,WAAK,KAAK,EAAC,aAAa;4BACpB,WAAK,KAAK,EAAC,YAAY;gCACnB,wDAAqB;gCACrB,aACI,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,YAAY,EAClB,WAAW,EAAC,oEAAa,EACzB,KAAK,EAAE,IAAI,CAAC,cAAc,EAC1B,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,GAAI,CAAC,CAAC,MAA2B,CAAC,KAAK,GAC5E,CACA;4BACN,WAAK,KAAK,EAAC,WAAW,oKAEhB,CACJ,CACT,CACC;oBAGL,CAAC,gBAAgB,IAAI,CAClB,WAAK,KAAK,EAAC,uBAAuB;wBAC9B,4CAAmB;wBACnB,kBACI,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,EACjC,WAAW,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAC7B,QAAQ,EAAE,KAAK,EACf,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EACvC,oBAAoB,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EAC9D,YAAY,EAAE;gCACV,IAAI,EAAE,CAAC,QAAQ,CAAC;6BACnB,EACD,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE;gCAClB,MAAM,MAAM,GAAyB,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC;gCACpD,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gCAClC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;4BACnD,CAAC,GACH,CACA,CACT;oBAED,cACI,KAAK,EAAC,eAAe,EACrB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,EAC3G,OAAO,EAAE,IAAI,CAAC,mBAAmB,IAEhC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAC/D;oBAET,WAAK,KAAK,EAAC,eAAe;wBACtB,0FAAqB;wBACrB,SAAG,KAAK,EAAC,YAAY;4BACjB,yHAA8B;;4BAC9B,SAAG,IAAI,EAAC,2BAA2B,EAAC,MAAM,EAAC,QAAQ,EAAC,GAAG,EAAC,qBAAqB,mCAAiC,CAC9G,CACF,CACJ,CACT;gBAGA,SAAS,IAAI,CACV,WAAK,KAAK,EAAC,mBAAmB;oBAC1B,WAAK,KAAK,EAAC,iBAAiB,GAAO;oBACnC,SAAG,KAAK,EAAC,cAAc,8CAAc,CACnC,CACT;gBAGA,IAAI,CAAC,aAAa,IAAI,CACnB;oBACI,0BACI,MAAM,EAAE,IAAI,EACZ,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,EAC/C,KAAK,EAAC,oBAAoB,EAC1B,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,cAAc,EAAE,IAAI,CAAC,cAAc,EACnC,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,eAAe,EAAE,IAAI,CAAC,eAAe,EACrC,YAAY,EAAE;4BACV,GAAG,IAAI,CAAC,YAAY;4BACpB,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,IAAI,IAAI,CAAC,gBAAgB,EAAE,OAAO;4BACvE,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,IAAI,IAAI,CAAC,gBAAgB,EAAE,SAAS;4BAC3E,IAAI,EAAE,IAAI,CAAC,gBAAgB;4BAC3B,QAAQ;4BACR,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BAClE,GAAG,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BAChH,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;yBAC/D,EACD,aAAa,EAAC,MAAM,EACpB,mBAAmB,EAAE,IAAI,CAAC,sBAAsB,GAC9B,CACpB,CACT,CACC,CACJ,CACT,CAAC;IACN,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACJ","sourcesContent":["import { Component, Prop, h, State, Element, Event, EventEmitter, Watch } from '@stencil/core';\r\nimport { FileUploadResponse, verifyApiKey } from '../../utils/utils';\r\nimport { ConversationStartEventData, StreamCompleteEventData } from '../../components';\r\nimport { ErrorEventBus, ErrorEventDetail } from '../../utils/error-event';\r\nimport { authStore } from '../../../store/auth.store'; // 导入 authStore\r\nimport { configStore } from '../../../store/config.store';\r\nimport { Message } from '../../services/message.service';\r\n\r\n/**\r\n * 职业规划助手\r\n */\r\n\r\nexport type CareerPlanType = '转型建议' | '晋升路径';\r\n\r\n@Component({\r\n tag: 'pcm-zygh-v2-modal',\r\n styleUrls: ['../../global/global.css', 'pcm-zygh-v2-modal.css', '../../global/host.css'],\r\n shadow: true,\r\n})\r\nexport class ZyghV2Modal {\r\n /**\r\n * 模态框标题\r\n */\r\n @Prop() modalTitle: string = '职业规划助手';\r\n\r\n /**\r\n * SDK鉴权密钥\r\n */\r\n @Prop({ attribute: 'token' }) token!: string;\r\n\r\n /**\r\n * 是否显示聊天模态框\r\n */\r\n @Prop({ mutable: true }) isOpen: boolean = false;\r\n\r\n /**\r\n * 当点击模态框关闭时触发\r\n */\r\n @Event() modalClosed: EventEmitter<void>;\r\n\r\n /**\r\n * 应用图标URL\r\n */\r\n @Prop() icon?: string;\r\n\r\n /**\r\n * 聊天框的页面层级\r\n */\r\n @Prop() zIndex?: number = 1000;\r\n\r\n /**\r\n * 是否展示顶部标题栏\r\n */\r\n @Prop() isShowHeader: boolean = true;\r\n\r\n /**\r\n * 是否展示右上角的关闭按钮\r\n */\r\n @Prop() isNeedClose: boolean = true;\r\n\r\n /**\r\n * 会话ID,传入继续对话,否则创建新会话\r\n */\r\n @Prop({ mutable: true }) conversationId?: string;\r\n\r\n /**\r\n * 默认查询文本\r\n */\r\n @Prop() defaultQuery: string = '请开始规划';\r\n\r\n /**\r\n * 是否以全屏模式打开,移动端建议设置为true\r\n */\r\n @Prop() fullscreen: boolean = false;\r\n\r\n\r\n /**\r\n * 自定义输入参数,传入customInputs.type则可以指定规划类型,可传入\"转型建议\"、\"晋升路径\"<br>\r\n * 传入customInputs.file_url时,会隐藏简历上传区域。<br>\r\n * 传入customInputs.file_url和customInputs.type时,会直接开始聊天。<br>\r\n */\r\n @Prop() customInputs: Record<string, string> = {};\r\n\r\n /**\r\n * 是否显示工作区历史会话按钮\r\n */\r\n @Prop() showWorkspaceHistory: boolean = false;\r\n\r\n /**\r\n * 是否开启移动端上传简历(仅PC端生效)\r\n */\r\n @Prop() mobileUploadAble: boolean = false;\r\n\r\n\r\n /**\r\n * 上传成功事件\r\n */\r\n @Event() uploadSuccess: EventEmitter<FileUploadResponse>;\r\n\r\n /**\r\n * 流式输出完成事件\r\n */\r\n @Event() streamComplete: EventEmitter<StreamCompleteEventData>;\r\n\r\n /**\r\n * 新会话开始的回调,只会在一轮对话开始时触发一次\r\n */\r\n @Event() conversationStart: EventEmitter<ConversationStartEventData>;\r\n\r\n /**\r\n * 当聊天完成时触发\r\n */\r\n @Event() planningComplete: EventEmitter<{\r\n conversation_id: string;\r\n type: CareerPlanType;\r\n }>;\r\n\r\n /**\r\n * SDK密钥验证失败事件\r\n */\r\n @Event() tokenInvalid: EventEmitter<void>;\r\n\r\n /**\r\n * 错误事件\r\n */\r\n @Event() someErrorEvent: EventEmitter<ErrorEventDetail>;\r\n\r\n /**\r\n * 附件预览模式\r\n * 'drawer': 在右侧抽屉中预览\r\n * 'window': 在新窗口中打开\r\n */\r\n @Prop() filePreviewMode: 'drawer' | 'window' = 'window';\r\n\r\n @State() isUploading: boolean = false;\r\n @State() uploadedFileInfo: FileUploadResponse | null = null;\r\n @State() showChatModal: boolean = false;\r\n @State() isSubmitting: boolean = false;\r\n @State() selectedPlanType: CareerPlanType = '晋升路径';\r\n @State() targetPosition: string = ''; // 晋升目标岗位\r\n @State() industryName: string = ''; // 感兴趣的行业\r\n @State() jobPosition: string = ''; // 感兴趣的职位\r\n @State() timePeriod: string = ''; // 期望转型时间\r\n\r\n // 使用 @Element 装饰器获取组件的 host 元素\r\n @Element() hostElement: HTMLElement;\r\n\r\n private tokenInvalidListener: () => void;\r\n private removeErrorListener: () => void;\r\n private pcmUploadRef;\r\n\r\n @Watch('token')\r\n handleTokenChange(newToken: string) {\r\n // 当传入的 token 变化时,更新 authStore 中的 token\r\n if (newToken && newToken !== authStore.getToken()) {\r\n authStore.setToken(newToken);\r\n }\r\n }\r\n\r\n \r\n @Watch('isOpen')\r\n async handleIsOpenChange(newValue: boolean) {\r\n if (!newValue) {\r\n // 重置状态\r\n this.showChatModal = false;\r\n\r\n } else {\r\n if (this.customInputs && this.customInputs.type) {\r\n // 检查是否是有效的 CareerPlanType 值\r\n const type = this.customInputs.type;\r\n if (type === '转型建议' || type === '晋升路径') {\r\n this.selectedPlanType = type;\r\n }\r\n }\r\n\r\n await verifyApiKey(this.token);\r\n\r\n // 如果有会话ID或者有file_url参数,直接显示聊天模态框\r\n if (this.conversationId || (this.customInputs?.file_url && this.customInputs?.type)) {\r\n this.showChatModal = true;\r\n }\r\n }\r\n }\r\n\r\n \r\n\r\n componentWillLoad() {\r\n\r\n // 将 zIndex 存入配置缓存\r\n if (this.zIndex) {\r\n configStore.setItem('modal-zIndex', this.zIndex);\r\n }\r\n if (this.token) {\r\n authStore.setToken(this.token);\r\n }\r\n verifyApiKey(this.token);\r\n\r\n // 添加全局token无效事件监听器\r\n this.tokenInvalidListener = () => {\r\n this.tokenInvalid.emit();\r\n };\r\n // 添加全局错误监听\r\n this.removeErrorListener = ErrorEventBus.addErrorListener((errorDetail) => {\r\n this.someErrorEvent.emit(errorDetail);\r\n });\r\n document.addEventListener('pcm-token-invalid', this.tokenInvalidListener);\r\n }\r\n\r\n disconnectedCallback() {\r\n // 组件销毁时移除事件监听器\r\n document.removeEventListener('pcm-token-invalid', this.tokenInvalidListener);\r\n // 移除错误监听器\r\n if (this.removeErrorListener) {\r\n this.removeErrorListener();\r\n }\r\n }\r\n\r\n private handleClose = () => {\r\n this.modalClosed.emit();\r\n };\r\n\r\n private handlePlanTypeChange = (type: CareerPlanType) => {\r\n this.selectedPlanType = type;\r\n // 切换类型时重置表单字段\r\n this.targetPosition = '';\r\n this.industryName = '';\r\n this.jobPosition = '';\r\n this.timePeriod = '';\r\n };\r\n\r\n private handleStartPlanning = async () => {\r\n // 既没有预设 file_url,也没有上传文件,则提示\r\n if (!this.customInputs?.file_url && !this.uploadedFileInfo) {\r\n Message.info('请上传简历');\r\n return;\r\n }\r\n // 判断文件是否正在上传\r\n if (await this.pcmUploadRef?.getIsUploading?.()) {\r\n Message.info('文件上传中,请稍后');\r\n return;\r\n }\r\n this.isSubmitting = true;\r\n this.showChatModal = true;\r\n this.isSubmitting = false;\r\n };\r\n\r\n\r\n // 处理规划完成事件\r\n private handlePlanningComplete = (event: CustomEvent) => {\r\n this.planningComplete.emit({\r\n ...event.detail,\r\n type: this.selectedPlanType\r\n });\r\n };\r\n\r\n\r\n render() {\r\n if (!this.isOpen) return null;\r\n\r\n const modalStyle = {\r\n zIndex: String(this.zIndex)\r\n };\r\n\r\n const containerClass = {\r\n 'modal-container': true,\r\n 'fullscreen': this.fullscreen,\r\n 'pc-layout': true,\r\n };\r\n\r\n const overlayClass = {\r\n 'modal-overlay': true,\r\n 'fullscreen-overlay': this.fullscreen\r\n };\r\n\r\n // 显示加载状态\r\n const isLoading = this.conversationId && !this.showChatModal;\r\n\r\n // 判断是否隐藏简历上传区域\r\n const hideResumeUpload = Boolean(this.customInputs && this.customInputs.file_url);\r\n\r\n // 判断是否同时提供了 file_url 和 type\r\n const hasFileAndType = Boolean(this.customInputs?.file_url && this.customInputs?.type);\r\n\r\n return (\r\n <div class={overlayClass} style={modalStyle}>\r\n <div class={containerClass}>\r\n {this.isShowHeader && (\r\n <div class=\"modal-header\">\r\n <div class=\"header-left\">\r\n {this.icon && <img src={this.icon} class=\"header-icon\" alt=\"应用图标\" />}\r\n <div>{this.modalTitle}</div>\r\n </div>\r\n {this.isNeedClose && (\r\n <button class=\"close-button\" onClick={this.handleClose}>\r\n <span>×</span>\r\n </button>\r\n )}\r\n </div>\r\n )}\r\n\r\n\r\n {/* 输入界面 - 仅在不显示聊天模态框且没有会话ID且没有预设file_url和type时显示 */}\r\n {!this.showChatModal && !this.conversationId && !hasFileAndType && (\r\n <div class=\"input-container\">\r\n\r\n {/* 规划类型选择 */}\r\n <div class=\"plan-type-section\">\r\n <label>选择建议类型</label>\r\n <div class=\"plan-type-options\">\r\n <div\r\n class={`plan-type-option ${this.selectedPlanType === '晋升路径' ? 'selected' : ''}`}\r\n onClick={() => this.handlePlanTypeChange('晋升路径')}\r\n >\r\n <div class=\"option-icon\">🚀</div>\r\n <div class=\"option-label\">晋升路径</div>\r\n </div>\r\n <div\r\n class={`plan-type-option ${this.selectedPlanType === '转型建议' ? 'selected' : ''}`}\r\n onClick={() => this.handlePlanTypeChange('转型建议')}\r\n >\r\n <div class=\"option-icon\">🔄</div>\r\n <div class=\"option-label\">转型建议</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n {/* 动态表单字段 */}\r\n <div class=\"dynamic-form-section\">\r\n {this.selectedPlanType === '转型建议' && (\r\n <div class=\"form-fields\">\r\n <div class=\"form-field\">\r\n <label>感兴趣的行业</label>\r\n <input\r\n type=\"text\"\r\n class=\"form-input\"\r\n placeholder=\"请输入您感兴趣的行业\"\r\n value={this.industryName}\r\n onInput={(e) => this.industryName = (e.target as HTMLInputElement).value}\r\n />\r\n </div>\r\n <div class=\"form-field\">\r\n <label>感兴趣的职位</label>\r\n <input\r\n type=\"text\"\r\n class=\"form-input\"\r\n placeholder=\"请输入您感兴趣的职位\"\r\n value={this.jobPosition}\r\n onInput={(e) => this.jobPosition = (e.target as HTMLInputElement).value}\r\n />\r\n </div>\r\n <div class=\"form-hint\">\r\n 为确保职业规划报告的准确性,推荐您至少填写其中一项\r\n </div>\r\n <div class=\"form-field\">\r\n <label>期望转型时间</label>\r\n <input\r\n type=\"text\"\r\n class=\"form-input\"\r\n placeholder=\"请输入您期望的转型时间\"\r\n value={this.timePeriod}\r\n onInput={(e) => this.timePeriod = (e.target as HTMLInputElement).value}\r\n />\r\n </div>\r\n </div>\r\n )}\r\n\r\n {this.selectedPlanType === '晋升路径' && (\r\n <div class=\"form-fields\">\r\n <div class=\"form-field\">\r\n <label>晋升目标岗位</label>\r\n <input\r\n type=\"text\"\r\n class=\"form-input\"\r\n placeholder=\"请输入您的晋升目标岗位\"\r\n value={this.targetPosition}\r\n onInput={(e) => this.targetPosition = (e.target as HTMLInputElement).value}\r\n />\r\n </div>\r\n <div class=\"form-hint\">\r\n 为确保职业规划报告的准确性,建议您填写晋升目标岗位名称\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n\r\n {/* 简历上传区域 */}\r\n {!hideResumeUpload && (\r\n <div class=\"resume-upload-section\">\r\n <label>上传简历</label>\r\n <pcm-upload\r\n ref={el => this.pcmUploadRef = el}\r\n maxFileSize={15 * 1024 * 1024}\r\n multiple={false}\r\n mobileUploadAble={this.mobileUploadAble}\r\n acceptFileSuffixList={['.txt', '.md', '.pdf', '.docx', '.doc']}\r\n uploadParams={{\r\n tags: ['resume'],\r\n }}\r\n onUploadChange={(e) => {\r\n const result: FileUploadResponse[] = e.detail ?? [];\r\n this.uploadedFileInfo = result[0];\r\n this.uploadSuccess.emit(this.uploadedFileInfo);\r\n }}\r\n />\r\n </div>\r\n )}\r\n\r\n <button\r\n class=\"submit-button\"\r\n disabled={(!this.customInputs?.file_url && !this.uploadedFileInfo) || this.isUploading || this.isSubmitting}\r\n onClick={this.handleStartPlanning}\r\n >\r\n {this.isUploading ? '上传中...' : this.isSubmitting ? '处理中...' : '开始规划'}\r\n </button>\r\n\r\n <div class=\"ai-disclaimer\">\r\n <p>所有内容均由AI生成仅供参考</p>\r\n <p class=\"beian-info\">\r\n <span>中央网信办生成式人工智能服务备案号</span>:\r\n <a href=\"https://www.pincaimao.com\" target=\"_blank\" rel=\"noopener noreferrer\">Hunan-PinCaiMao-202412310003</a>\r\n </p>\r\n </div>\r\n </div>\r\n )}\r\n\r\n {/* 加载状态 - 在有会话ID但聊天模态框尚未显示时展示 */}\r\n {isLoading && (\r\n <div class=\"loading-container\">\r\n <div class=\"loading-spinner\"></div>\r\n <p class=\"loading-text\">正在加载对话...</p>\r\n </div>\r\n )}\r\n\r\n {/* 聊天界面 - 在显示聊天模态框时显示 */}\r\n {this.showChatModal && (\r\n <div>\r\n <pcm-app-chat-modal\r\n isOpen={true}\r\n modalTitle={this.modalTitle}\r\n icon={this.icon}\r\n isShowHeader={this.isShowHeader}\r\n isNeedClose={this.isNeedClose}\r\n showWorkspaceHistory={this.showWorkspaceHistory}\r\n botId=\"121182005294690304\"\r\n fullscreen={this.fullscreen}\r\n conversationId={this.conversationId}\r\n defaultQuery={this.defaultQuery}\r\n filePreviewMode={this.filePreviewMode}\r\n customInputs={{\r\n ...this.customInputs,\r\n file_url: this.customInputs?.file_url || this.uploadedFileInfo?.cos_key,\r\n file_name: this.customInputs?.file_name || this.uploadedFileInfo?.file_name,\r\n type: this.selectedPlanType,\r\n // 有值就传递\r\n ...(this.industryName ? { industry_name: this.industryName } : {}),\r\n ...(this.targetPosition || this.jobPosition ? { target_position: this.targetPosition || this.jobPosition } : {}),\r\n ...(this.timePeriod ? { time_period: this.timePeriod } : {})\r\n }}\r\n interviewMode=\"text\"\r\n onInterviewComplete={this.handlePlanningComplete}\r\n ></pcm-app-chat-modal>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n }\r\n} "]}
1
+ {"version":3,"file":"pcm-zygh-v2-modal.js","sourceRoot":"","sources":["../../../../src/components/pcm-zygh-v2-modal/pcm-zygh-v2-modal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAgB,KAAK,EAAE,MAAM,eAAe,CAAC;AAC/F,OAAO,EAAsB,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAErE,OAAO,EAAE,aAAa,EAAoB,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC,CAAC,eAAe;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAazD,MAAM,OAAO,WAAW;IACtB;;OAEG;IACK,UAAU,GAAW,QAAQ,CAAC;IAEtC;;OAEG;IAC2B,KAAK,CAAU;IAE7C;;OAEG;IACsB,MAAM,GAAY,KAAK,CAAC;IAEjD;;OAEG;IACM,WAAW,CAAqB;IAEzC;;OAEG;IACK,IAAI,CAAU;IAEtB;;OAEG;IACK,MAAM,GAAY,IAAI,CAAC;IAE/B;;OAEG;IACK,YAAY,GAAY,IAAI,CAAC;IAErC;;OAEG;IACK,WAAW,GAAY,IAAI,CAAC;IAEpC;;OAEG;IACsB,cAAc,CAAU;IAEjD;;OAEG;IACK,YAAY,GAAW,OAAO,CAAC;IAEvC;;OAEG;IACK,UAAU,GAAY,KAAK,CAAC;IAEpC;;;;OAIG;IACK,YAAY,GAA2B,EAAE,CAAC;IAElD;;OAEG;IACK,oBAAoB,GAAY,KAAK,CAAC;IAE9C;;OAEG;IACK,gBAAgB,GAAY,KAAK,CAAC;IAE1C;;OAEG;IACM,aAAa,CAAmC;IAEzD;;OAEG;IACM,cAAc,CAAwC;IAE/D;;OAEG;IACM,iBAAiB,CAA2C;IAErE;;OAEG;IACM,gBAAgB,CAGtB;IAEH;;OAEG;IACM,YAAY,CAAqB;IAE1C;;OAEG;IACM,cAAc,CAAiC;IAExD;;;;OAIG;IACK,eAAe,GAAwB,QAAQ,CAAC;IAE/C,WAAW,GAAY,KAAK,CAAC;IAC7B,gBAAgB,GAA8B,IAAI,CAAC;IACnD,aAAa,GAAY,KAAK,CAAC;IAC/B,YAAY,GAAY,KAAK,CAAC;IAC9B,gBAAgB,GAAmB,MAAM,CAAC;IAC1C,cAAc,GAAW,EAAE,CAAC,CAAC,SAAS;IACtC,YAAY,GAAW,EAAE,CAAC,CAAC,SAAS;IACpC,WAAW,GAAW,EAAE,CAAC,CAAC,SAAS;IACnC,UAAU,GAAW,EAAE,CAAC,CAAC,SAAS;IAE3C,+BAA+B;IACpB,WAAW,CAAc;IAE5B,oBAAoB,CAAa;IACjC,mBAAmB,CAAa;IAChC,YAAY,CAAC;IAGrB,iBAAiB,CAAC,QAAgB;QAChC,uCAAuC;QACvC,IAAI,QAAQ,IAAI,QAAQ,KAAK,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC;YAClD,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAGD,KAAK,CAAC,kBAAkB,CAAC,QAAiB;QACxC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;YACP,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;gBAChD,4BAA4B;gBAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;gBACpC,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC1D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;gBAC/B,CAAC;YACH,CAAC;YAED,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAE/B,iCAAiC;YACjC,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC;gBACpF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;IAED,iBAAiB;QACf,kBAAkB;QAClB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,WAAW,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QACD,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEzB,mBAAmB;QACnB,IAAI,CAAC,oBAAoB,GAAG,GAAG,EAAE;YAC/B,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QAC3B,CAAC,CAAC;QACF,WAAW;QACX,IAAI,CAAC,mBAAmB,GAAG,aAAa,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE;YACtE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QACH,QAAQ,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC5E,CAAC;IAED,oBAAoB;QAClB,eAAe;QACf,QAAQ,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC7E,UAAU;QACV,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7B,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7B,CAAC;IACH,CAAC;IAEO,WAAW,GAAG,GAAG,EAAE;QACzB,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC,CAAC;IAEM,oBAAoB,GAAG,CAAC,IAAoB,EAAE,EAAE;QACtD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,cAAc;QACd,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACvB,CAAC,CAAC;IAEM,mBAAmB,GAAG,KAAK,IAAI,EAAE;QACvC,6BAA6B;QAC7B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtB,OAAO;QACT,CAAC;QACD,aAAa;QACb,IAAI,MAAM,IAAI,CAAC,YAAY,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC5B,CAAC,CAAC;IAEF,WAAW;IACH,sBAAsB,GAAG,CAAC,KAAkB,EAAE,EAAE;QACtD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;YACzB,GAAG,KAAK,CAAC,MAAM;YACf,IAAI,EAAE,IAAI,CAAC,gBAAgB;SAC5B,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM;QACJ,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAE9B,MAAM,UAAU,GAAG;YACjB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;SAC5B,CAAC;QAEF,MAAM,cAAc,GAAG;YACrB,iBAAiB,EAAE,IAAI;YACvB,YAAY,EAAE,IAAI,CAAC,UAAU;YAC7B,WAAW,EAAE,IAAI;SAClB,CAAC;QAEF,MAAM,YAAY,GAAG;YACnB,eAAe,EAAE,IAAI;YACrB,oBAAoB,EAAE,IAAI,CAAC,UAAU;SACtC,CAAC;QAEF,SAAS;QACT,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;QAE7D,eAAe;QACf,MAAM,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAElF,4BAA4B;QAC5B,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAEvF,OAAO,CACL,WAAK,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU;YACzC,WAAK,KAAK,EAAE,cAAc;gBACvB,IAAI,CAAC,YAAY,IAAI,CACpB,WAAK,KAAK,EAAC,cAAc;oBACvB,WAAK,KAAK,EAAC,aAAa;wBACrB,IAAI,CAAC,IAAI,IAAI,WAAK,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAC,aAAa,EAAC,GAAG,EAAC,0BAAM,GAAG;wBACpE,eAAM,IAAI,CAAC,UAAU,CAAO,CACxB;oBACL,IAAI,CAAC,WAAW,IAAI,CACnB,cAAQ,KAAK,EAAC,cAAc,EAAC,OAAO,EAAE,IAAI,CAAC,WAAW;wBACpD,yBAAc,CACP,CACV,CACG,CACP;gBAGA,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,cAAc,IAAI,CACjE,WAAK,KAAK,EAAC,iBAAiB;oBAE1B,WAAK,KAAK,EAAC,mBAAmB;wBAC5B,wDAAqB;wBACrB,WAAK,KAAK,EAAC,mBAAmB;4BAC5B,WAAK,KAAK,EAAE,oBAAoB,IAAI,CAAC,gBAAgB,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC;gCACpI,WAAK,KAAK,EAAC,aAAa,mBAAS;gCACjC,WAAK,KAAK,EAAC,cAAc,+BAAW,CAChC;4BACN,WAAK,KAAK,EAAE,oBAAoB,IAAI,CAAC,gBAAgB,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC;gCACpI,WAAK,KAAK,EAAC,aAAa,mBAAS;gCACjC,WAAK,KAAK,EAAC,cAAc,+BAAW,CAChC;4BACN,WAAK,KAAK,EAAE,oBAAoB,IAAI,CAAC,gBAAgB,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC;gCACpI,WAAK,KAAK,EAAC,aAAa,mBAAS;gCACjC,WAAK,KAAK,EAAC,cAAc,+BAAW,CAChC,CACF,CACF;oBAGN,WAAK,KAAK,EAAC,sBAAsB;wBAC9B,IAAI,CAAC,gBAAgB,KAAK,MAAM,IAAI,CACnC,WAAK,KAAK,EAAC,aAAa;4BACtB,WAAK,KAAK,EAAC,YAAY;gCACrB,wDAAqB;gCACrB,aACE,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,YAAY,EAClB,WAAW,EAAC,8DAAY,EACxB,KAAK,EAAE,IAAI,CAAC,YAAY,EACxB,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,GAAI,CAAC,CAAC,MAA2B,CAAC,KAAK,CAAC,GACxE,CACE;4BACN,WAAK,KAAK,EAAC,YAAY;gCACrB,wDAAqB;gCACrB,aACE,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,YAAY,EAClB,WAAW,EAAC,8DAAY,EACxB,KAAK,EAAE,IAAI,CAAC,WAAW,EACvB,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,GAAI,CAAC,CAAC,MAA2B,CAAC,KAAK,CAAC,GACvE,CACE;4BACN,WAAK,KAAK,EAAC,WAAW,wJAAgC,CAClD,CACP;wBACA,IAAI,CAAC,gBAAgB,KAAK,MAAM,IAAI,CACnC,WAAK,KAAK,EAAC,aAAa;4BACtB,WAAK,KAAK,EAAC,YAAY;gCACrB,wDAAqB;gCACrB,aACE,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,YAAY,EAClB,WAAW,EAAC,8DAAY,EACxB,KAAK,EAAE,IAAI,CAAC,YAAY,EACxB,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,GAAI,CAAC,CAAC,MAA2B,CAAC,KAAK,CAAC,GACxE,CACE;4BACN,WAAK,KAAK,EAAC,YAAY;gCACrB,wDAAqB;gCACrB,aACE,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,YAAY,EAClB,WAAW,EAAC,8DAAY,EACxB,KAAK,EAAE,IAAI,CAAC,WAAW,EACvB,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,GAAI,CAAC,CAAC,MAA2B,CAAC,KAAK,CAAC,GACvE,CACE;4BACN,WAAK,KAAK,EAAC,WAAW,wJAAgC;4BACtD,WAAK,KAAK,EAAC,YAAY;gCACrB,wDAAqB;gCACrB,aACE,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,YAAY,EAClB,WAAW,EAAC,oEAAa,EACzB,KAAK,EAAE,IAAI,CAAC,UAAU,EACtB,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,GAAI,CAAC,CAAC,MAA2B,CAAC,KAAK,CAAC,GACtE,CACE,CACF,CACP;wBAEA,IAAI,CAAC,gBAAgB,KAAK,MAAM,IAAI,CACnC,WAAK,KAAK,EAAC,aAAa;4BACtB,WAAK,KAAK,EAAC,YAAY;gCACrB,wDAAqB;gCACrB,aACE,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,YAAY,EAClB,WAAW,EAAC,oEAAa,EACzB,KAAK,EAAE,IAAI,CAAC,cAAc,EAC1B,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,GAAI,CAAC,CAAC,MAA2B,CAAC,KAAK,CAAC,GAC1E,CACE;4BACN,WAAK,KAAK,EAAC,WAAW,oKAAkC,CACpD,CACP,CACG;oBAGL,CAAC,gBAAgB,IAAI,CACpB,WAAK,KAAK,EAAC,uBAAuB;wBAChC,4CAAmB;wBACnB,kBACE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,EACnC,WAAW,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAC7B,QAAQ,EAAE,KAAK,EACf,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EACvC,oBAAoB,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EAC9D,YAAY,EAAE;gCACZ,IAAI,EAAE,CAAC,QAAQ,CAAC;6BACjB,EACD,cAAc,EAAE,CAAC,CAAC,EAAE;gCAClB,MAAM,MAAM,GAAyB,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC;gCACpD,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gCAClC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;4BACjD,CAAC,GACD,CACE,CACP;oBAED,cACE,KAAK,EAAC,eAAe,EACrB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,EAC3G,OAAO,EAAE,IAAI,CAAC,mBAAmB,IAEhC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAC7D;oBAET,WAAK,KAAK,EAAC,eAAe;wBACxB,0FAAqB;wBACrB,SAAG,KAAK,EAAC,YAAY;4BACnB,yHAA8B;;4BAC9B,SAAG,IAAI,EAAC,2BAA2B,EAAC,MAAM,EAAC,QAAQ,EAAC,GAAG,EAAC,qBAAqB,mCAEzE,CACF,CACA,CACF,CACP;gBAGA,SAAS,IAAI,CACZ,WAAK,KAAK,EAAC,mBAAmB;oBAC5B,WAAK,KAAK,EAAC,iBAAiB,GAAO;oBACnC,SAAG,KAAK,EAAC,cAAc,8CAAc,CACjC,CACP;gBAGA,IAAI,CAAC,aAAa,IAAI,CACrB;oBACE,0BACE,MAAM,EAAE,IAAI,EACZ,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,EAC/C,KAAK,EAAC,oBAAoB,EAC1B,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,cAAc,EAAE,IAAI,CAAC,cAAc,EACnC,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,eAAe,EAAE,IAAI,CAAC,eAAe,EACrC,YAAY,EAAE;4BACZ,GAAG,IAAI,CAAC,YAAY;4BACpB,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,IAAI,IAAI,CAAC,gBAAgB,EAAE,OAAO;4BACvE,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,IAAI,IAAI,CAAC,gBAAgB,EAAE,SAAS;4BAC3E,IAAI,EAAE,IAAI,CAAC,gBAAgB;4BAC3B,QAAQ;4BACR,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BAClE,GAAG,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BAChH,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;yBAC7D,EACD,aAAa,EAAC,MAAM,EACpB,mBAAmB,EAAE,IAAI,CAAC,sBAAsB,GAC5B,CAClB,CACP,CACG,CACF,CACP,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Prop, h, State, Element, Event, EventEmitter, Watch } from '@stencil/core';\r\nimport { FileUploadResponse, verifyApiKey } from '../../utils/utils';\r\nimport { ConversationStartEventData, StreamCompleteEventData } from '../../components';\r\nimport { ErrorEventBus, ErrorEventDetail } from '../../utils/error-event';\r\nimport { authStore } from '../../../store/auth.store'; // 导入 authStore\r\nimport { configStore } from '../../../store/config.store';\r\nimport { Message } from '../../services/message.service';\r\n\r\n/**\r\n * 职业规划助手\r\n */\r\n\r\nexport type CareerPlanType = '初入职场' | '转型建议' | '晋升路径';\r\n\r\n@Component({\r\n tag: 'pcm-zygh-v2-modal',\r\n styleUrls: ['../../global/global.css', 'pcm-zygh-v2-modal.css', '../../global/host.css'],\r\n shadow: true,\r\n})\r\nexport class ZyghV2Modal {\r\n /**\r\n * 模态框标题\r\n */\r\n @Prop() modalTitle: string = '职业规划助手';\r\n\r\n /**\r\n * SDK鉴权密钥\r\n */\r\n @Prop({ attribute: 'token' }) token!: string;\r\n\r\n /**\r\n * 是否显示聊天模态框\r\n */\r\n @Prop({ mutable: true }) isOpen: boolean = false;\r\n\r\n /**\r\n * 当点击模态框关闭时触发\r\n */\r\n @Event() modalClosed: EventEmitter<void>;\r\n\r\n /**\r\n * 应用图标URL\r\n */\r\n @Prop() icon?: string;\r\n\r\n /**\r\n * 聊天框的页面层级\r\n */\r\n @Prop() zIndex?: number = 1000;\r\n\r\n /**\r\n * 是否展示顶部标题栏\r\n */\r\n @Prop() isShowHeader: boolean = true;\r\n\r\n /**\r\n * 是否展示右上角的关闭按钮\r\n */\r\n @Prop() isNeedClose: boolean = true;\r\n\r\n /**\r\n * 会话ID,传入继续对话,否则创建新会话\r\n */\r\n @Prop({ mutable: true }) conversationId?: string;\r\n\r\n /**\r\n * 默认查询文本\r\n */\r\n @Prop() defaultQuery: string = '请开始规划';\r\n\r\n /**\r\n * 是否以全屏模式打开,移动端建议设置为true\r\n */\r\n @Prop() fullscreen: boolean = false;\r\n\r\n /**\r\n * 自定义输入参数,传入customInputs.type则可以指定规划类型,可传入\"初入职场\"、\"转型建议\"、\"晋升路径\"<br>\r\n * 传入customInputs.file_url时,会隐藏简历上传区域。<br>\r\n * 传入customInputs.file_url和customInputs.type时,会直接开始聊天。<br>\r\n */\r\n @Prop() customInputs: Record<string, string> = {};\r\n\r\n /**\r\n * 是否显示工作区历史会话按钮\r\n */\r\n @Prop() showWorkspaceHistory: boolean = false;\r\n\r\n /**\r\n * 是否开启移动端上传简历(仅PC端生效)\r\n */\r\n @Prop() mobileUploadAble: boolean = false;\r\n\r\n /**\r\n * 上传成功事件\r\n */\r\n @Event() uploadSuccess: EventEmitter<FileUploadResponse>;\r\n\r\n /**\r\n * 流式输出完成事件\r\n */\r\n @Event() streamComplete: EventEmitter<StreamCompleteEventData>;\r\n\r\n /**\r\n * 新会话开始的回调,只会在一轮对话开始时触发一次\r\n */\r\n @Event() conversationStart: EventEmitter<ConversationStartEventData>;\r\n\r\n /**\r\n * 当聊天完成时触发\r\n */\r\n @Event() planningComplete: EventEmitter<{\r\n conversation_id: string;\r\n type: CareerPlanType;\r\n }>;\r\n\r\n /**\r\n * SDK密钥验证失败事件\r\n */\r\n @Event() tokenInvalid: EventEmitter<void>;\r\n\r\n /**\r\n * 错误事件\r\n */\r\n @Event() someErrorEvent: EventEmitter<ErrorEventDetail>;\r\n\r\n /**\r\n * 附件预览模式\r\n * 'drawer': 在右侧抽屉中预览\r\n * 'window': 在新窗口中打开\r\n */\r\n @Prop() filePreviewMode: 'drawer' | 'window' = 'window';\r\n\r\n @State() isUploading: boolean = false;\r\n @State() uploadedFileInfo: FileUploadResponse | null = null;\r\n @State() showChatModal: boolean = false;\r\n @State() isSubmitting: boolean = false;\r\n @State() selectedPlanType: CareerPlanType = '初入职场';\r\n @State() targetPosition: string = ''; // 晋升目标岗位\r\n @State() industryName: string = ''; // 感兴趣的行业\r\n @State() jobPosition: string = ''; // 感兴趣的职位\r\n @State() timePeriod: string = ''; // 期望转型时间\r\n\r\n // 使用 @Element 装饰器获取组件的 host 元素\r\n @Element() hostElement: HTMLElement;\r\n\r\n private tokenInvalidListener: () => void;\r\n private removeErrorListener: () => void;\r\n private pcmUploadRef;\r\n\r\n @Watch('token')\r\n handleTokenChange(newToken: string) {\r\n // 当传入的 token 变化时,更新 authStore 中的 token\r\n if (newToken && newToken !== authStore.getToken()) {\r\n authStore.setToken(newToken);\r\n }\r\n }\r\n\r\n @Watch('isOpen')\r\n async handleIsOpenChange(newValue: boolean) {\r\n if (!newValue) {\r\n // 重置状态\r\n this.showChatModal = false;\r\n } else {\r\n if (this.customInputs && this.customInputs.type) {\r\n // 检查是否是有效的 CareerPlanType 值\r\n const type = this.customInputs.type;\r\n if (type === '转型建议' || type === '晋升路径' || type === '初入职场') {\r\n this.selectedPlanType = type;\r\n }\r\n }\r\n\r\n await verifyApiKey(this.token);\r\n\r\n // 如果有会话ID或者有file_url参数,直接显示聊天模态框\r\n if (this.conversationId || (this.customInputs?.file_url && this.customInputs?.type)) {\r\n this.showChatModal = true;\r\n }\r\n }\r\n }\r\n\r\n componentWillLoad() {\r\n // 将 zIndex 存入配置缓存\r\n if (this.zIndex) {\r\n configStore.setItem('modal-zIndex', this.zIndex);\r\n }\r\n if (this.token) {\r\n authStore.setToken(this.token);\r\n }\r\n verifyApiKey(this.token);\r\n\r\n // 添加全局token无效事件监听器\r\n this.tokenInvalidListener = () => {\r\n this.tokenInvalid.emit();\r\n };\r\n // 添加全局错误监听\r\n this.removeErrorListener = ErrorEventBus.addErrorListener(errorDetail => {\r\n this.someErrorEvent.emit(errorDetail);\r\n });\r\n document.addEventListener('pcm-token-invalid', this.tokenInvalidListener);\r\n }\r\n\r\n disconnectedCallback() {\r\n // 组件销毁时移除事件监听器\r\n document.removeEventListener('pcm-token-invalid', this.tokenInvalidListener);\r\n // 移除错误监听器\r\n if (this.removeErrorListener) {\r\n this.removeErrorListener();\r\n }\r\n }\r\n\r\n private handleClose = () => {\r\n this.modalClosed.emit();\r\n };\r\n\r\n private handlePlanTypeChange = (type: CareerPlanType) => {\r\n this.selectedPlanType = type;\r\n // 切换类型时重置表单字段\r\n this.targetPosition = '';\r\n this.industryName = '';\r\n this.jobPosition = '';\r\n this.timePeriod = '';\r\n };\r\n\r\n private handleStartPlanning = async () => {\r\n // 既没有预设 file_url,也没有上传文件,则提示\r\n if (!this.customInputs?.file_url && !this.uploadedFileInfo) {\r\n Message.info('请上传简历');\r\n return;\r\n }\r\n // 判断文件是否正在上传\r\n if (await this.pcmUploadRef?.getIsUploading?.()) {\r\n Message.info('文件上传中,请稍后');\r\n return;\r\n }\r\n this.isSubmitting = true;\r\n this.showChatModal = true;\r\n this.isSubmitting = false;\r\n };\r\n\r\n // 处理规划完成事件\r\n private handlePlanningComplete = (event: CustomEvent) => {\r\n this.planningComplete.emit({\r\n ...event.detail,\r\n type: this.selectedPlanType,\r\n });\r\n };\r\n\r\n render() {\r\n if (!this.isOpen) return null;\r\n\r\n const modalStyle = {\r\n zIndex: String(this.zIndex),\r\n };\r\n\r\n const containerClass = {\r\n 'modal-container': true,\r\n 'fullscreen': this.fullscreen,\r\n 'pc-layout': true,\r\n };\r\n\r\n const overlayClass = {\r\n 'modal-overlay': true,\r\n 'fullscreen-overlay': this.fullscreen,\r\n };\r\n\r\n // 显示加载状态\r\n const isLoading = this.conversationId && !this.showChatModal;\r\n\r\n // 判断是否隐藏简历上传区域\r\n const hideResumeUpload = Boolean(this.customInputs && this.customInputs.file_url);\r\n\r\n // 判断是否同时提供了 file_url 和 type\r\n const hasFileAndType = Boolean(this.customInputs?.file_url && this.customInputs?.type);\r\n\r\n return (\r\n <div class={overlayClass} style={modalStyle}>\r\n <div class={containerClass}>\r\n {this.isShowHeader && (\r\n <div class=\"modal-header\">\r\n <div class=\"header-left\">\r\n {this.icon && <img src={this.icon} class=\"header-icon\" alt=\"应用图标\" />}\r\n <div>{this.modalTitle}</div>\r\n </div>\r\n {this.isNeedClose && (\r\n <button class=\"close-button\" onClick={this.handleClose}>\r\n <span>×</span>\r\n </button>\r\n )}\r\n </div>\r\n )}\r\n\r\n {/* 输入界面 - 仅在不显示聊天模态框且没有会话ID且没有预设file_url和type时显示 */}\r\n {!this.showChatModal && !this.conversationId && !hasFileAndType && (\r\n <div class=\"input-container\">\r\n {/* 规划类型选择 */}\r\n <div class=\"plan-type-section\">\r\n <label>选择建议类型</label>\r\n <div class=\"plan-type-options\">\r\n <div class={`plan-type-option ${this.selectedPlanType === '初入职场' ? 'selected' : ''}`} onClick={() => this.handlePlanTypeChange('初入职场')}>\r\n <div class=\"option-icon\">👶</div>\r\n <div class=\"option-label\">初入职场</div>\r\n </div>\r\n <div class={`plan-type-option ${this.selectedPlanType === '晋升路径' ? 'selected' : ''}`} onClick={() => this.handlePlanTypeChange('晋升路径')}>\r\n <div class=\"option-icon\">🚀</div>\r\n <div class=\"option-label\">晋升路径</div>\r\n </div>\r\n <div class={`plan-type-option ${this.selectedPlanType === '转型建议' ? 'selected' : ''}`} onClick={() => this.handlePlanTypeChange('转型建议')}>\r\n <div class=\"option-icon\">🔄</div>\r\n <div class=\"option-label\">转型建议</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n {/* 动态表单字段 */}\r\n <div class=\"dynamic-form-section\">\r\n {this.selectedPlanType === '初入职场' && (\r\n <div class=\"form-fields\">\r\n <div class=\"form-field\">\r\n <label>感兴趣的行业</label>\r\n <input\r\n type=\"text\"\r\n class=\"form-input\"\r\n placeholder=\"请输入您感兴趣的行业\"\r\n value={this.industryName}\r\n onInput={e => (this.industryName = (e.target as HTMLInputElement).value)}\r\n />\r\n </div>\r\n <div class=\"form-field\">\r\n <label>感兴趣的职位</label>\r\n <input\r\n type=\"text\"\r\n class=\"form-input\"\r\n placeholder=\"请输入您感兴趣的职位\"\r\n value={this.jobPosition}\r\n onInput={e => (this.jobPosition = (e.target as HTMLInputElement).value)}\r\n />\r\n </div>\r\n <div class=\"form-hint\">为确保职业规划报告的准确性,推荐您至少填写其中一项</div>\r\n </div>\r\n )}\r\n {this.selectedPlanType === '转型建议' && (\r\n <div class=\"form-fields\">\r\n <div class=\"form-field\">\r\n <label>感兴趣的行业</label>\r\n <input\r\n type=\"text\"\r\n class=\"form-input\"\r\n placeholder=\"请输入您感兴趣的行业\"\r\n value={this.industryName}\r\n onInput={e => (this.industryName = (e.target as HTMLInputElement).value)}\r\n />\r\n </div>\r\n <div class=\"form-field\">\r\n <label>感兴趣的职位</label>\r\n <input\r\n type=\"text\"\r\n class=\"form-input\"\r\n placeholder=\"请输入您感兴趣的职位\"\r\n value={this.jobPosition}\r\n onInput={e => (this.jobPosition = (e.target as HTMLInputElement).value)}\r\n />\r\n </div>\r\n <div class=\"form-hint\">为确保职业规划报告的准确性,推荐您至少填写其中一项</div>\r\n <div class=\"form-field\">\r\n <label>期望转型时间</label>\r\n <input\r\n type=\"text\"\r\n class=\"form-input\"\r\n placeholder=\"请输入您期望的转型时间\"\r\n value={this.timePeriod}\r\n onInput={e => (this.timePeriod = (e.target as HTMLInputElement).value)}\r\n />\r\n </div>\r\n </div>\r\n )}\r\n\r\n {this.selectedPlanType === '晋升路径' && (\r\n <div class=\"form-fields\">\r\n <div class=\"form-field\">\r\n <label>晋升目标岗位</label>\r\n <input\r\n type=\"text\"\r\n class=\"form-input\"\r\n placeholder=\"请输入您的晋升目标岗位\"\r\n value={this.targetPosition}\r\n onInput={e => (this.targetPosition = (e.target as HTMLInputElement).value)}\r\n />\r\n </div>\r\n <div class=\"form-hint\">为确保职业规划报告的准确性,建议您填写晋升目标岗位名称</div>\r\n </div>\r\n )}\r\n </div>\r\n\r\n {/* 简历上传区域 */}\r\n {!hideResumeUpload && (\r\n <div class=\"resume-upload-section\">\r\n <label>上传简历</label>\r\n <pcm-upload\r\n ref={el => (this.pcmUploadRef = el)}\r\n maxFileSize={15 * 1024 * 1024}\r\n multiple={false}\r\n mobileUploadAble={this.mobileUploadAble}\r\n acceptFileSuffixList={['.txt', '.md', '.pdf', '.docx', '.doc']}\r\n uploadParams={{\r\n tags: ['resume'],\r\n }}\r\n onUploadChange={e => {\r\n const result: FileUploadResponse[] = e.detail ?? [];\r\n this.uploadedFileInfo = result[0];\r\n this.uploadSuccess.emit(this.uploadedFileInfo);\r\n }}\r\n />\r\n </div>\r\n )}\r\n\r\n <button\r\n class=\"submit-button\"\r\n disabled={(!this.customInputs?.file_url && !this.uploadedFileInfo) || this.isUploading || this.isSubmitting}\r\n onClick={this.handleStartPlanning}\r\n >\r\n {this.isUploading ? '上传中...' : this.isSubmitting ? '处理中...' : '开始规划'}\r\n </button>\r\n\r\n <div class=\"ai-disclaimer\">\r\n <p>所有内容均由AI生成仅供参考</p>\r\n <p class=\"beian-info\">\r\n <span>中央网信办生成式人工智能服务备案号</span>:\r\n <a href=\"https://www.pincaimao.com\" target=\"_blank\" rel=\"noopener noreferrer\">\r\n Hunan-PinCaiMao-202412310003\r\n </a>\r\n </p>\r\n </div>\r\n </div>\r\n )}\r\n\r\n {/* 加载状态 - 在有会话ID但聊天模态框尚未显示时展示 */}\r\n {isLoading && (\r\n <div class=\"loading-container\">\r\n <div class=\"loading-spinner\"></div>\r\n <p class=\"loading-text\">正在加载对话...</p>\r\n </div>\r\n )}\r\n\r\n {/* 聊天界面 - 在显示聊天模态框时显示 */}\r\n {this.showChatModal && (\r\n <div>\r\n <pcm-app-chat-modal\r\n isOpen={true}\r\n modalTitle={this.modalTitle}\r\n icon={this.icon}\r\n isShowHeader={this.isShowHeader}\r\n isNeedClose={this.isNeedClose}\r\n showWorkspaceHistory={this.showWorkspaceHistory}\r\n botId=\"121182005294690304\"\r\n fullscreen={this.fullscreen}\r\n conversationId={this.conversationId}\r\n defaultQuery={this.defaultQuery}\r\n filePreviewMode={this.filePreviewMode}\r\n customInputs={{\r\n ...this.customInputs,\r\n file_url: this.customInputs?.file_url || this.uploadedFileInfo?.cos_key,\r\n file_name: this.customInputs?.file_name || this.uploadedFileInfo?.file_name,\r\n type: this.selectedPlanType,\r\n // 有值就传递\r\n ...(this.industryName ? { industry_name: this.industryName } : {}),\r\n ...(this.targetPosition || this.jobPosition ? { target_position: this.targetPosition || this.jobPosition } : {}),\r\n ...(this.timePeriod ? { time_period: this.timePeriod } : {}),\r\n }}\r\n interviewMode=\"text\"\r\n onInterviewComplete={this.handlePlanningComplete}\r\n ></pcm-app-chat-modal>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n"]}
@@ -1,4 +1,4 @@
1
- import { C as ComponentsPositionSelector$1, d as defineCustomElement$1 } from './p--B9t4xVs.js';
1
+ import { C as ComponentsPositionSelector$1, d as defineCustomElement$1 } from './p-QwH3TimN.js';
2
2
 
3
3
  const ComponentsPositionSelector = ComponentsPositionSelector$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,6 +1,6 @@
1
1
  import { D as DEBUG_BUILD$2, l as logger, g as getFunctionName, G as GLOBAL_OBJ, d as dsnToString, a as getSentryCarrier, n as normalize, S as SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME, b as SEMANTIC_ATTRIBUTE_PROFILE_ID, c as dateTimestampInSeconds, m as makeDsn, u as uuid4, e as checkOrSetAlreadyCaught, i as isPrimitive, f as updateSession, r as resolvedSyncPromise, h as DEFAULT_ENVIRONMENT, j as SyncPromise, p as prepareEvent, k as getTraceContextFromScope, o as getDynamicSamplingContextFromScope, q as getCurrentScope, s as getIsolationScope, t as rejectedSyncPromise, v as isParameterizedString, w as showSpanDropWarning, x as merge, y as isThenable, z as isPlainObject, A as consoleSandbox, B as SDK_VERSION, C as getClient, E as getOriginalFunction, F as getEventDescription, H as stringMatchesSomePattern, I as isInstanceOf, J as CONSOLE_LEVELS, K as fill, L as originalConsoleMethods, M as getFramesFromEvent, N as timestampInSeconds, O as isError, P as addNonEnumerableProperty, Q as isRequest, R as getLocationHref, T as markFunctionWrapped, U as withScope, V as addExceptionTypeValue, W as addExceptionMechanism, X as captureException, Y as isErrorEvent$1, Z as isDOMError, _ as isDOMException, $ as isEvent, a0 as normalizeToSize, a1 as extractExceptionKeysForMessage, a2 as isString, a3 as createStackParser, a4 as UNKNOWN_FUNCTION, a5 as htmlTreeAsString, a6 as safeJoin, a7 as getComponentName, a8 as startSession, a9 as captureSession, aa as captureEvent, ab as stackParserFromStackParserOptions } from './p-75J0r72D.js';
2
2
  export { g as getAssetPath, r as render, s as setAssetPath, a as setNonce, b as setPlatformOptions } from './p-CR7WLzmM.js';
3
- export { f as format } from './p-DtCXILg5.js';
3
+ export { f as format } from './p-C4KAf-6-.js';
4
4
 
5
5
  /**
6
6
  * Parse a sample rate from a given value.
@@ -1,15 +1,15 @@
1
1
  import { p as proxyCustomElement, H, c as createEvent, h } from './p-CR7WLzmM.js';
2
- import { a as authStore, v as verifyApiKey, b as verifySmsCode } from './p-DtCXILg5.js';
2
+ import { a as authStore, v as verifyApiKey, b as verifySmsCode } from './p-C4KAf-6-.js';
3
3
  import { E as ErrorEventBus } from './p-C0FYX2-Z.js';
4
4
  import { c as configStore } from './p-DUQ46MUh.js';
5
5
  import { M as Message } from './p-DXVhHj6-.js';
6
- import { d as defineCustomElement$8 } from './p-Caxrsbp0.js';
7
- import { d as defineCustomElement$7 } from './p-CGRQB-kz.js';
6
+ import { d as defineCustomElement$8 } from './p-Da-8BxdM.js';
7
+ import { d as defineCustomElement$7 } from './p-9hnllPbt.js';
8
8
  import { d as defineCustomElement$6 } from './p-B_-12Bju.js';
9
- import { d as defineCustomElement$5 } from './p-BjKpPzZZ.js';
9
+ import { d as defineCustomElement$5 } from './p-ikx6J73I.js';
10
10
  import { d as defineCustomElement$4 } from './p-0JWThH-A.js';
11
- import { d as defineCustomElement$3 } from './p-pTzOe1-b.js';
12
- import { d as defineCustomElement$2 } from './p-nFix5BDn.js';
11
+ import { d as defineCustomElement$3 } from './p-C6OdIxkm.js';
12
+ import { d as defineCustomElement$2 } from './p-B7cdvqSY.js';
13
13
 
14
14
  const oemHtwsModalCss = ".input-mode-toggle{display:flex;align-items:center;margin-bottom:16px}.input-mode-toggle span{color:#333;margin-right:12px}.toggle-button{display:flex;align-items:center;background:none;border:none;color:#2E6EDF;cursor:pointer;font-size:14px;padding:4px 8px}.toggle-button svg{margin-right:4px}.free-input{width:100%}.textarea-container{margin-bottom:16px}.textarea-container label{display:block;margin-bottom:8px;font-weight:500;color:#333}.textarea-container textarea{border:1px solid #ddd;border-radius:4px;font-size:14px;resize:vertical;background-color:#f9f9f9;min-height:150px;width:100%;padding:12px 16px;margin-bottom:20px;max-width:100%;box-sizing:border-box;word-wrap:break-word}.textarea-container textarea:focus{outline:none;border-color:#2E6EDF;box-shadow:0 0 0 2px rgba(46, 110, 223, 0.2)}.required{color:#f56c6c}.input-guide{background-color:#f5f7fa;border-radius:4px;padding:12px 16px;margin-bottom:20px;max-width:100%;box-sizing:border-box;word-wrap:break-word}.guide-title{font-weight:500;color:#333;margin-bottom:8px}.guide-content{color:#666;font-size:13px;max-width:100%;word-wrap:break-word}.guide-content div{margin-bottom:4px}.phone-input{width:calc(100% - 16px);padding:8px;border:1px solid #ddd;border-radius:4px;font-family:inherit;font-size:14px;line-height:1.5;transition:border-color 0.3s}.phone-input:focus{outline:none;border-color:#1890ff;box-shadow:0 0 0 2px rgba(24, 144, 255, 0.2)}.verification-code-container{display:flex;gap:8px;align-items:center}.verification-code-input{flex:1;padding:8px;border:1px solid #ddd;border-radius:4px;font-family:inherit;font-size:14px;line-height:1.5;transition:border-color 0.3s}.verification-code-input:focus{outline:none;border-color:#1890ff;box-shadow:0 0 0 2px rgba(24, 144, 255, 0.2)}.send-code-button{padding:8px 16px;background:#0D75FB;color:white;border:none;border-radius:4px;font-size:14px;cursor:pointer;transition:all 0.3s ease;white-space:nowrap;min-width:100px}.send-code-button:hover:not(:disabled){background-color:#40a9ff}.send-code-button:disabled{background-color:rgba(0, 0, 0, 0.04);color:rgba(0, 0, 0, 0.25);cursor:not-allowed}";
15
15
 
@@ -1,12 +1,12 @@
1
1
  import { p as proxyCustomElement, H, c as createEvent, h } from './p-CR7WLzmM.js';
2
- import { a as authStore, v as verifyApiKey, s as sendHttpRequest } from './p-DtCXILg5.js';
2
+ import { a as authStore, v as verifyApiKey, s as sendHttpRequest } from './p-C4KAf-6-.js';
3
3
  import { E as ErrorEventBus } from './p-C0FYX2-Z.js';
4
4
  import { c as configStore } from './p-DUQ46MUh.js';
5
5
  import { S as SentryReporter } from './p-DC-AWTHS.js';
6
- import { d as defineCustomElement$6 } from './p-Caxrsbp0.js';
7
- import { d as defineCustomElement$5 } from './p-CGRQB-kz.js';
6
+ import { d as defineCustomElement$6 } from './p-Da-8BxdM.js';
7
+ import { d as defineCustomElement$5 } from './p-9hnllPbt.js';
8
8
  import { d as defineCustomElement$4 } from './p-B_-12Bju.js';
9
- import { d as defineCustomElement$3 } from './p-BjKpPzZZ.js';
9
+ import { d as defineCustomElement$3 } from './p-ikx6J73I.js';
10
10
  import { d as defineCustomElement$2 } from './p-0JWThH-A.js';
11
11
 
12
12
  const oemJdModalCss = ".input-mode-toggle{display:flex;align-items:center;margin-bottom:16px}.input-mode-toggle span{color:#333;margin-right:12px}.toggle-button{display:flex;align-items:center;background:none;border:none;color:#2E6EDF;cursor:pointer;font-size:14px;padding:4px 8px}.toggle-button svg{margin-right:4px}.toggle-button:disabled{opacity:0.5;cursor:not-allowed}.structured-input{width:100%}.job-name-input{margin-bottom:20px}.job-name-input label{display:block;margin-bottom:8px;font-weight:500;color:#333}.job-name-input input{width:95%;padding:10px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;background-color:#f9f9f9}.job-name-input input:focus{outline:none;border-color:#2E6EDF;box-shadow:0 0 0 2px rgba(46, 110, 223, 0.2)}.required{color:#f56c6c}.button-container{display:flex;justify-content:center;margin-top:24px;gap:12px;max-width:100%;box-sizing:border-box;flex-wrap:wrap}.next-button{background-color:#2E6EDF;color:white}.next-button:hover{background-color:#2457b8}.next-button:disabled{background-color:#a0c0e8;cursor:not-allowed}.prev-button{background-color:#f0f0f0 !important;color:#333 !important}.prev-button:hover{background-color:#e0e0e0}.tag-selection{width:100%}.tag-selection-content{width:100%}.section-title{font-weight:600;color:#333;margin-bottom:12px;font-size:16px}.ai-tags-section,.basic-tags-section{margin-bottom:24px}.tag-group{margin-bottom:16px}.tag-title{color:#555;margin-bottom:8px;font-weight:500}.tag-container{display:flex;flex-wrap:wrap;gap:8px;max-width:100%;box-sizing:border-box}.tag{display:inline-flex;align-items:center;padding:6px 12px;border-radius:4px;background-color:#f5f5f5;border:1px solid #e0e0e0;color:#333;font-size:13px;cursor:pointer;transition:all 0.2s;max-width:100%;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tag:hover{background-color:#e8e8e8}.tag-selected{background-color:#e6f0ff;border-color:#2E6EDF;color:#2E6EDF}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 0;background-color:#f9f9f9;border-radius:8px;margin:20px 0;max-width:100%;box-sizing:border-box}.loading-spinner{width:40px;height:40px;border:3px solid rgba(46, 110, 223, 0.2);border-radius:50%;border-top-color:#2E6EDF;animation:spin 1s linear infinite;margin-bottom:16px}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{text-align:center;color:#333;font-weight:500}.loading-subtext{color:#888;font-size:14px;margin-top:4px}.free-input{width:100%}.textarea-container{margin-bottom:16px}.textarea-container label{display:block;margin-bottom:8px;font-weight:500;color:#333}.textarea-container textarea{border:1px solid #ddd;border-radius:4px;font-size:14px;resize:vertical;background-color:#f9f9f9;min-height:150px;width:100%;padding:12px 16px;margin-bottom:20px;max-width:100%;box-sizing:border-box;word-wrap:break-word}.textarea-container textarea:focus{outline:none;border-color:#2E6EDF;box-shadow:0 0 0 2px rgba(46, 110, 223, 0.2)}.input-guide{background-color:#f5f7fa;border-radius:4px;padding:12px 16px;margin-bottom:20px;max-width:100%;box-sizing:border-box;word-wrap:break-word}.guide-title{font-weight:500;color:#333;margin-bottom:8px}.guide-content{color:#666;font-size:13px;max-width:100%;word-wrap:break-word}.guide-content div{margin-bottom:4px}@media (max-width: 768px){.tag-container{gap:7px}.tag{padding:4px 8px;font-size:12px}}@media (max-width: 480px){.button-container{flex-direction:column;align-items:center}.next-button,.prev-button,.submit-button{width:100%;margin-bottom:8px}.tag{max-width:calc(50% - 8px)}}.tag-selection,.tag-selection-content,.ai-tags-section,.basic-tags-section,.structured-input,.free-input{max-width:100%;box-sizing:border-box}";
@@ -1,17 +1,17 @@
1
1
  import { p as proxyCustomElement, H, c as createEvent, h } from './p-CR7WLzmM.js';
2
- import { a as authStore, v as verifyApiKey, b as verifySmsCode } from './p-DtCXILg5.js';
2
+ import { a as authStore, v as verifyApiKey, b as verifySmsCode } from './p-C4KAf-6-.js';
3
3
  import { E as ErrorEventBus } from './p-C0FYX2-Z.js';
4
4
  import { c as configStore } from './p-DUQ46MUh.js';
5
5
  import { M as Message } from './p-DXVhHj6-.js';
6
- import { d as defineCustomElement$a } from './p--B9t4xVs.js';
7
- import { d as defineCustomElement$9 } from './p-Caxrsbp0.js';
8
- import { d as defineCustomElement$8 } from './p-CGRQB-kz.js';
6
+ import { d as defineCustomElement$a } from './p-QwH3TimN.js';
7
+ import { d as defineCustomElement$9 } from './p-Da-8BxdM.js';
8
+ import { d as defineCustomElement$8 } from './p-9hnllPbt.js';
9
9
  import { d as defineCustomElement$7 } from './p-B_-12Bju.js';
10
- import { d as defineCustomElement$6 } from './p-BjKpPzZZ.js';
10
+ import { d as defineCustomElement$6 } from './p-ikx6J73I.js';
11
11
  import { d as defineCustomElement$5 } from './p-0JWThH-A.js';
12
- import { d as defineCustomElement$4 } from './p-BJnD41Qm.js';
13
- import { d as defineCustomElement$3 } from './p-pTzOe1-b.js';
14
- import { d as defineCustomElement$2 } from './p-nFix5BDn.js';
12
+ import { d as defineCustomElement$4 } from './p-DHwXxizT.js';
13
+ import { d as defineCustomElement$3 } from './p-C6OdIxkm.js';
14
+ import { d as defineCustomElement$2 } from './p-B7cdvqSY.js';
15
15
 
16
16
  const oemJlppModalCss = ".label-with-button{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.button-group{display:flex;gap:8px;align-items:center}.position-selector-button{padding:4px 12px;background:#1890ff;color:white;border:none;border-radius:4px;font-size:13px;cursor:pointer;transition:all 0.3s ease;white-space:nowrap;height:28px;line-height:20px}.position-selector-button:hover{background:#40a9ff}.position-selector-button:active{background:#096dd9}.phone-input{width:calc(100% - 16px);padding:8px;border:1px solid #ddd;border-radius:4px;font-family:inherit;font-size:14px;line-height:1.5;transition:border-color 0.3s}.phone-input:focus{outline:none;border-color:#1890ff;box-shadow:0 0 0 2px rgba(24, 144, 255, 0.2)}.verification-code-container{display:flex;gap:8px;align-items:center}.verification-code-input{flex:1;padding:8px;border:1px solid #ddd;border-radius:4px;font-family:inherit;font-size:14px;line-height:1.5;transition:border-color 0.3s}.verification-code-input:focus{outline:none;border-color:#1890ff;box-shadow:0 0 0 2px rgba(24, 144, 255, 0.2)}.send-code-button{padding:8px 16px;background:#0D75FB;color:white;border:none;border-radius:4px;font-size:14px;cursor:pointer;transition:all 0.3s ease;white-space:nowrap;min-width:100px}.send-code-button:hover:not(:disabled){background-color:#40a9ff}.send-code-button:disabled{background-color:rgba(0, 0, 0, 0.04);color:rgba(0, 0, 0, 0.25);cursor:not-allowed}.position-selector-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0, 0, 0, 0.5);display:flex;align-items:center;justify-content:center;z-index:3000;padding:20px}.position-selector-modal{background:white;border-radius:8px;width:90%;max-width:900px;height:80vh;max-height:600px;display:flex;flex-direction:column;box-shadow:0 4px 12px rgba(0, 0, 0, 0.15);animation:modalFadeIn 0.3s ease}@keyframes modalFadeIn{from{opacity:0;transform:scale(0.95) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}.position-selector-modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;border-bottom:1px solid #f0f0f0;flex-shrink:0}.position-selector-modal-header h3{margin:0;font-size:16px;font-weight:500;color:rgba(0, 0, 0, 0.85)}.position-selector-close-btn{background:none;border:none;font-size:24px;line-height:1;cursor:pointer;color:rgba(0, 0, 0, 0.45);padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all 0.3s}.position-selector-close-btn:hover{background-color:rgba(0, 0, 0, 0.06);color:rgba(0, 0, 0, 0.85)}.position-selector-modal-body{flex:1;overflow:hidden;display:flex;flex-direction:column}@media screen and (max-width: 768px){.position-selector-modal{width:100%;height:90vh;max-height:none;border-radius:8px 8px 0 0;margin-top:auto}.position-selector-modal-overlay{padding:0;align-items:flex-end}}";
17
17
 
@@ -1,18 +1,18 @@
1
1
  import { p as proxyCustomElement, H, c as createEvent, h } from './p-CR7WLzmM.js';
2
- import { a as authStore, v as verifyApiKey, s as sendHttpRequest, P as PCM_DOMAIN, g as getCosPreviewUrl, u as uploadFileByUrl, c as sendSSERequest } from './p-DtCXILg5.js';
2
+ import { a as authStore, v as verifyApiKey, s as sendHttpRequest, P as PCM_DOMAIN, g as getCosPreviewUrl, u as uploadFileByUrl, c as sendSSERequest } from './p-C4KAf-6-.js';
3
3
  import { s as showMessage } from './p-CJK3cNTI.js';
4
4
  import { M as Message } from './p-DXVhHj6-.js';
5
5
  import { E as ErrorEventBus } from './p-C0FYX2-Z.js';
6
6
  import { c as configStore } from './p-DUQ46MUh.js';
7
7
  import { S as SentryReporter } from './p-DC-AWTHS.js';
8
8
  import { m as marked, e as extendedTables } from './p-CnK5J7Yw.js';
9
- import { d as defineCustomElement$8 } from './p--B9t4xVs.js';
9
+ import { d as defineCustomElement$8 } from './p-QwH3TimN.js';
10
10
  import { d as defineCustomElement$7 } from './p-0JWThH-A.js';
11
- import { d as defineCustomElement$6 } from './p-CvHWzHdd.js';
11
+ import { d as defineCustomElement$6 } from './p-qUBE1daM.js';
12
12
  import { d as defineCustomElement$5 } from './p-D-vhTSlS.js';
13
- import { d as defineCustomElement$4 } from './p-BJnD41Qm.js';
14
- import { d as defineCustomElement$3 } from './p-pTzOe1-b.js';
15
- import { d as defineCustomElement$2 } from './p-nFix5BDn.js';
13
+ import { d as defineCustomElement$4 } from './p-DHwXxizT.js';
14
+ import { d as defineCustomElement$3 } from './p-C6OdIxkm.js';
15
+ import { d as defineCustomElement$2 } from './p-B7cdvqSY.js';
16
16
 
17
17
  const globalCss = ".modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0, 0, 0, 0.5);display:flex;z-index:1000;overflow-y:auto}.fullscreen-overlay{padding:0;background-color:rgba(0, 0, 0, 0.7);position:absolute;width:100%;height:auto}.modal-container{background-color:#fff;border-radius:8px;width:100%;display:flex;flex-direction:column;position:relative;margin:auto;transition:all 0.3s ease-out;overflow:hidden}.modal-container.fullscreen{width:100%;max-width:none;height:100%;border-radius:0;margin:0;display:flex;flex-direction:column;max-height:100%}.pc-layout{width:80%;max-width:600px;min-width:320px}@media screen and (max-width: 768px){.pc-layout{width:95%}.modal-overlay{padding:10px 0px 0px 0px}.modal-container.fullscreen{width:100%;height:100%;max-height:100%;border-radius:16px 16px 0 0;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:4px 16px;height:50px;border-bottom:1px solid #e8e8e8;flex-shrink:0}.header-left{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:600;color:#333}.header-icon{width:24px;height:24px}.close-button{background:transparent;border:none;cursor:pointer;padding:8px;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:4px}.close-button:hover{background-color:rgba(0, 0, 0, 0.04)}.close-button span{font-size:24px;line-height:1;color:#999}.close-button:hover span{color:#666}.upload-area{cursor:pointer;width:100%}.upload-placeholder{transition:all 0.3s ease;display:flex;flex-direction:column;align-items:center;background:rgba(0, 0, 0, 0.02);border:1px dashed #d9d9d9;border-radius:8px;cursor:pointer}.upload-placeholder:hover{border:1px dashed #1890ff}.upload-placeholder img{margin-top:8px;width:50px;height:50px}.upload-placeholder .upload-text{margin:4px 0;color:#332F39;font-size:14px}.upload-placeholder .upload-hint{font-size:14px;color:#949AA5;margin-top:8px;padding:0px 10px;text-align:center;white-space:normal;word-wrap:break-word;word-break:break-all;line-height:1.4}.file-item{position:relative;padding:16px;border:1px solid #e2e8f0;border-radius:8px;transition:border-color 0.3s;cursor:pointer;margin-bottom:16px;display:flex;justify-content:space-between;align-items:center}.file-item:hover{border-color:#0D75FB}.file-item-content{display:flex;align-items:center;gap:8px;flex:1;min-width:0;overflow:hidden}.file-icon{color:#0D75FB;flex-shrink:0}.file-name{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 50px)}.remove-file{background:transparent;border:none;color:#94a3b8;cursor:pointer;font-size:18px;display:flex;align-items:center;justify-content:center;padding:4px;margin-left:8px;border-radius:4px;transition:all 0.2s;min-width:30px;min-height:30px}.remove-file:hover{background-color:#f1f5f9;color:#475569}.file-input{display:none}.input-container{padding:20px;display:flex;flex-direction:column;height:calc(100% - 50px);background:linear-gradient(150deg, #2a6ee933, #0000 50%) 0 0 / 400px 200px no-repeat, #fff;overflow-y:auto}.input-container h3{margin-top:0;margin-bottom:20px;font-size:18px;color:#333;text-align:center}.jd-input-section{margin-bottom:20px}.jd-input-section label{display:block;margin-bottom:8px;font-weight:500;color:#333}.job-description-textarea{width:calc(100% - 16px);border:1px solid #ddd;border-radius:4px;resize:vertical;font-family:inherit;font-size:14px;line-height:1.5;transition:border-color 0.3s;padding:8px}.job-description-textarea:focus{outline:none;border-color:#1890ff;box-shadow:0 0 0 2px rgba(24, 144, 255, 0.2)}.resume-upload-section{margin-bottom:20px;width:100%;display:flex;flex-direction:column}.resume-upload-section label{display:block;margin-bottom:8px;font-weight:500;color:#333}.interview-settings-section{margin-bottom:24px;padding:20px;background-color:#f8f9fa;border-radius:8px;border:1px solid #e9ecef}.settings-row{margin-bottom:20px}.settings-row:last-child{margin-bottom:0}.settings-label{display:block;font-weight:500;color:#333;margin-bottom:12px;font-size:14px}.question-number-section{width:100%}.slider-container{display:flex;align-items:center;gap:12px}.question-slider{flex:1;height:6px;background:#ddd;outline:none;border-radius:3px;-webkit-appearance:none;appearance:none}.question-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;background:#0D75FB;cursor:pointer;border-radius:50%;box-shadow:0 2px 4px rgba(0, 0, 0, 0.2)}.question-slider::-moz-range-thumb{width:20px;height:20px;background:#0D75FB;cursor:pointer;border-radius:50%;border:none;box-shadow:0 2px 4px rgba(0, 0, 0, 0.2)}.slider-value{font-weight:600;color:#0D75FB;font-size:14px;min-width:30px;text-align:center}.analysis-toggle-section{width:100%}.toggle-container{display:flex;align-items:center;gap:12px}.toggle-switch{position:relative;display:inline-block;width:44px;height:24px}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;transition:0.3s;border-radius:24px}.toggle-slider:before{position:absolute;content:\"\";height:18px;width:18px;left:3px;bottom:3px;background-color:white;transition:0.3s;border-radius:50%;box-shadow:0 2px 4px rgba(0, 0, 0, 0.2)}input:checked+.toggle-slider{background-color:#0D75FB}input:checked+.toggle-slider:before{transform:translateX(20px)}.toggle-text{font-size:14px;color:#666;font-weight:500}.submit-button{margin-top:10px;padding:10px 30px;background:#0D75FB;color:white;border:none;border-radius:4px;font-size:16px;cursor:pointer;transition:all 0.3s ease;width:100%;max-width:400px;align-self:center}.submit-button:hover{background-color:#40a9ff}.submit-button:disabled{background-color:rgba(0,0,0,0.04);color:rgba(0,0,0,0.25);cursor:not-allowed}.ai-disclaimer{margin-top:16px;text-align:center;font-size:12px;color:#999;line-height:1.5}.ai-disclaimer p{margin:4px 0}.beian-info{display:flex;justify-content:center;flex-wrap:wrap;gap:4px}.ai-disclaimer a{color:#666;text-decoration:none;transition:color 0.2s ease}.ai-disclaimer a:hover{color:#1890ff;text-decoration:underline}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:24px}.loading-spinner{width:40px;height:40px;border:4px solid rgba(0, 0, 0, 0.1);border-radius:50%;border-top-color:var(--pcm-primary-color, #1890ff);animation:spin 1s linear infinite;margin-bottom:16px}.loading-text{font-size:16px;color:var(--pcm-text-color, #333)}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}";
18
18
 
@@ -771,6 +771,15 @@ const OemJlsxModal$1 = /*@__PURE__*/ proxyCustomElement(class OemJlsxModal exten
771
771
  },
772
772
  onMessage: (data) => {
773
773
 
774
+ if (data.event === 'error') {
775
+ const errorMessage = data.data?.message || data.message || '分析失败';
776
+ ErrorEventBus.emitError({
777
+ error: data.data,
778
+ message: errorMessage,
779
+ });
780
+ this.internalConversationId = null;
781
+ return;
782
+ }
774
783
  // 触发会话开始事件(仅在首次收到消息且有message_id或conversation_id时触发)
775
784
  if (data && !this.internalConversationId && (data.message_id || data.conversation_id || data.id)) {
776
785
  this.internalConversationId = data.conversation_id;
@@ -922,6 +931,19 @@ const OemJlsxModal$1 = /*@__PURE__*/ proxyCustomElement(class OemJlsxModal exten
922
931
  onMessage: (data) => {
923
932
  // 处理流式响应数据
924
933
 
934
+ if (data.event === 'error') {
935
+ const errorMessage = data.data?.message || data.message || '分析失败';
936
+ pendingRecords.forEach(record => {
937
+ record.evaluate_status = -1;
938
+ });
939
+ this.uploadedResumeRecords = [...this.uploadedResumeRecords];
940
+ ErrorEventBus.emitError({
941
+ error: data.data,
942
+ message: errorMessage,
943
+ });
944
+ this.internalConversationId = null;
945
+ return;
946
+ }
925
947
  // 触发会话开始事件(仅在首次收到消息且有message_id或conversation_id时触发)
926
948
  if (data && !this.internalConversationId && (data.message_id || data.conversation_id || data.id)) {
927
949
  this.internalConversationId = data.conversation_id;