pcm-agents 0.6.64-beta.0 → 0.6.64-beta.1
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.
- package/dist/cjs/components-position-selector_28.cjs.entry.js +49 -11
- package/dist/cjs/components-position-selector_28.cjs.entry.js.map +1 -1
- package/dist/cjs/{index-CKcP5Jod.js → index-CL4Tz2fU.js} +3 -3
- package/dist/cjs/{index-CKcP5Jod.js.map → index-CL4Tz2fU.js.map} +1 -1
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/oem-htws-modal.cjs.entry.js +1 -1
- package/dist/cjs/oem-jd-modal.cjs.entry.js +2 -2
- package/dist/cjs/oem-jlpp-modal.cjs.entry.js +1 -1
- package/dist/cjs/oem-jlsx-modal.cjs.entry.js +2 -2
- package/dist/cjs/oem-jlzz-modal.cjs.entry.js +1 -1
- package/dist/cjs/oem-mnct-modal.cjs.entry.js +1 -1
- package/dist/cjs/oem-qgqjl-modal.cjs.entry.js +1 -1
- package/dist/cjs/oem-zygh-modal.cjs.entry.js +1 -1
- package/dist/cjs/pcm-agents.cjs.js +1 -1
- package/dist/cjs/pcm-hr-chat-modal.cjs.entry.js +2 -2
- package/dist/cjs/pcm-mnms-modal.cjs.entry.js +7 -3
- package/dist/cjs/pcm-mnms-modal.cjs.entry.js.map +1 -1
- package/dist/cjs/pcm-mnms-modal.entry.cjs.js.map +1 -1
- package/dist/cjs/pcm-zygh-v2-modal.cjs.entry.js +1 -1
- package/dist/cjs/{sentry-reporter-CfJ5qKrV.js → sentry-reporter-CshODO7C.js} +3 -3
- package/dist/cjs/{sentry-reporter-CfJ5qKrV.js.map → sentry-reporter-CshODO7C.js.map} +1 -1
- package/dist/collection/components/oem-mnms-modal/oem-mnms-modal.js +26 -2
- package/dist/collection/components/oem-mnms-modal/oem-mnms-modal.js.map +1 -1
- package/dist/collection/components/pcm-1zhanshi-mnms-modal/pcm-1zhanshi-mnms-modal.js +26 -2
- package/dist/collection/components/pcm-1zhanshi-mnms-modal/pcm-1zhanshi-mnms-modal.js.map +1 -1
- package/dist/collection/components/pcm-app-chat-modal/pcm-app-chat-modal.js +25 -1
- package/dist/collection/components/pcm-app-chat-modal/pcm-app-chat-modal.js.map +1 -1
- package/dist/collection/components/pcm-digital-human/pcm-digital-human.js +33 -1
- package/dist/collection/components/pcm-digital-human/pcm-digital-human.js.map +1 -1
- package/dist/collection/components/pcm-mnms-modal/pcm-mnms-modal.js +26 -2
- package/dist/collection/components/pcm-mnms-modal/pcm-mnms-modal.js.map +1 -1
- package/dist/collection/components/pcm-mnms-zp-modal/pcm-mnms-zp-modal.js +26 -2
- package/dist/collection/components/pcm-mnms-zp-modal/pcm-mnms-zp-modal.js.map +1 -1
- package/dist/collection/components/pcm-virtual-chat-modal/pcm-virtual-chat-modal.js +31 -1
- package/dist/collection/components/pcm-virtual-chat-modal/pcm-virtual-chat-modal.js.map +1 -1
- package/dist/components/components-position-selector.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/oem-htws-modal.js +6 -6
- package/dist/components/oem-jd-modal.js +4 -4
- package/dist/components/oem-jlpp-modal.js +8 -8
- package/dist/components/oem-jlsx-modal.js +6 -6
- package/dist/components/oem-jlzz-modal.js +6 -6
- package/dist/components/oem-mnct-modal.js +8 -8
- package/dist/components/oem-mnms-modal.js +16 -11
- package/dist/components/oem-mnms-modal.js.map +1 -1
- package/dist/components/oem-qgqjl-modal.js +8 -8
- package/dist/components/oem-zygh-modal.js +6 -6
- package/dist/components/{p-Dyk8Yqi_.js → p-B9yaqEpW.js} +3 -3
- package/dist/components/{p-Dyk8Yqi_.js.map → p-B9yaqEpW.js.map} +1 -1
- package/dist/components/{p-B6qpo9Ph.js → p-BY558a8i.js} +3 -3
- package/dist/components/{p-B6qpo9Ph.js.map → p-BY558a8i.js.map} +1 -1
- package/dist/components/{p-DTuHP3Jc.js → p-BdDugOD6.js} +3 -3
- package/dist/components/{p-DTuHP3Jc.js.map → p-BdDugOD6.js.map} +1 -1
- package/dist/components/{p-CY0gsW7m.js → p-Bo88CJnt.js} +11 -6
- package/dist/components/p-Bo88CJnt.js.map +1 -0
- package/dist/components/{p-CgSCSLnK.js → p-C8RERqdE.js} +15 -4
- package/dist/components/p-C8RERqdE.js.map +1 -0
- package/dist/components/{p-DZalvTXX.js → p-Ckq0an2q.js} +3 -3
- package/dist/components/{p-DZalvTXX.js.map → p-Ckq0an2q.js.map} +1 -1
- package/dist/components/{p-BqozGBom.js → p-D8Wi8fsl.js} +17 -4
- package/dist/components/p-D8Wi8fsl.js.map +1 -0
- package/dist/components/{p-DI4v1qtv.js → p-DvqR5xcW.js} +3 -3
- package/dist/components/{p-DI4v1qtv.js.map → p-DvqR5xcW.js.map} +1 -1
- package/dist/components/{p-CRpA1FdK.js → p-WUTJc9UM.js} +3 -3
- package/dist/components/{p-CRpA1FdK.js.map → p-WUTJc9UM.js.map} +1 -1
- package/dist/components/{p-C3kqSIFr.js → p-bciQWw-t.js} +4 -4
- package/dist/components/{p-C3kqSIFr.js.map → p-bciQWw-t.js.map} +1 -1
- package/dist/components/pcm-1zhanshi-mnms-modal.js +12 -7
- package/dist/components/pcm-1zhanshi-mnms-modal.js.map +1 -1
- package/dist/components/pcm-app-chat-modal.js +1 -1
- package/dist/components/pcm-card.js +1 -1
- package/dist/components/pcm-chat-message.js +1 -1
- package/dist/components/pcm-digital-human.js +1 -1
- package/dist/components/pcm-export-records-modal.js +1 -1
- package/dist/components/pcm-hr-chat-modal.js +2 -2
- package/dist/components/pcm-htws-modal.js +7 -7
- package/dist/components/pcm-hyzj-modal.js +4 -4
- package/dist/components/pcm-jd-modal.js +4 -4
- package/dist/components/pcm-jlpp-modal.js +7 -7
- package/dist/components/pcm-jlsx-modal.js +5 -5
- package/dist/components/pcm-jlzz-modal.js +6 -6
- package/dist/components/pcm-mnct-modal.js +4 -4
- package/dist/components/pcm-mnms-modal.js +15 -10
- package/dist/components/pcm-mnms-modal.js.map +1 -1
- package/dist/components/pcm-mnms-zp-modal.js +15 -10
- package/dist/components/pcm-mnms-zp-modal.js.map +1 -1
- package/dist/components/pcm-mobile-input-btn.js +1 -1
- package/dist/components/pcm-mobile-upload-btn.js +1 -1
- package/dist/components/pcm-msbg-modal.js +4 -4
- package/dist/components/pcm-qgqjl-modal.js +7 -7
- package/dist/components/pcm-upload.js +1 -1
- package/dist/components/pcm-virtual-chat-modal.js +1 -1
- package/dist/components/pcm-zsk-chat-modal.js +2 -2
- package/dist/components/pcm-zygh-modal.js +6 -6
- package/dist/components/pcm-zygh-v2-modal.js +6 -6
- package/dist/esm/components-position-selector_28.entry.js +49 -11
- package/dist/esm/components-position-selector_28.entry.js.map +1 -1
- package/dist/esm/{index-gr5a1GmF.js → index-ijcgY5Pl.js} +3 -3
- package/dist/esm/{index-gr5a1GmF.js.map → index-ijcgY5Pl.js.map} +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/oem-htws-modal.entry.js +1 -1
- package/dist/esm/oem-jd-modal.entry.js +2 -2
- package/dist/esm/oem-jlpp-modal.entry.js +1 -1
- package/dist/esm/oem-jlsx-modal.entry.js +2 -2
- package/dist/esm/oem-jlzz-modal.entry.js +1 -1
- package/dist/esm/oem-mnct-modal.entry.js +1 -1
- package/dist/esm/oem-qgqjl-modal.entry.js +1 -1
- package/dist/esm/oem-zygh-modal.entry.js +1 -1
- package/dist/esm/pcm-agents.js +1 -1
- package/dist/esm/pcm-hr-chat-modal.entry.js +2 -2
- package/dist/esm/pcm-mnms-modal.entry.js +7 -3
- package/dist/esm/pcm-mnms-modal.entry.js.map +1 -1
- package/dist/esm/pcm-zygh-v2-modal.entry.js +1 -1
- package/dist/esm/{sentry-reporter-CaMzRGPQ.js → sentry-reporter-B-Ll9kE6.js} +3 -3
- package/dist/esm/{sentry-reporter-CaMzRGPQ.js.map → sentry-reporter-B-Ll9kE6.js.map} +1 -1
- package/dist/pcm-agents/index.esm.js +1 -1
- package/dist/pcm-agents/{p-04072e74.entry.js → p-34925caa.entry.js} +2 -2
- package/dist/pcm-agents/{p-87a4ba24.entry.js → p-3b60a3ba.entry.js} +2 -2
- package/dist/pcm-agents/p-3b60a3ba.entry.js.map +1 -0
- package/dist/pcm-agents/p-600c7006.entry.js +245 -0
- package/dist/pcm-agents/p-600c7006.entry.js.map +1 -0
- package/dist/pcm-agents/{p-dc9cd2bd.entry.js → p-8d72af4a.entry.js} +2 -2
- package/dist/pcm-agents/{p-75c684a6.entry.js → p-93508b4b.entry.js} +2 -2
- package/dist/pcm-agents/{p-8dc8311f.entry.js → p-99b56e3d.entry.js} +2 -2
- package/dist/pcm-agents/{p-CDRaYHbf.js → p-BEtiNpmR.js} +2 -2
- package/dist/pcm-agents/{p-CDRaYHbf.js.map → p-BEtiNpmR.js.map} +1 -1
- package/dist/pcm-agents/p-CjaheW4D.js +2 -0
- package/dist/pcm-agents/{p-CegGZUdH.js.map → p-CjaheW4D.js.map} +1 -1
- package/dist/pcm-agents/{p-03d4e001.entry.js → p-a3b4cbee.entry.js} +2 -2
- package/dist/pcm-agents/{p-1468a184.entry.js → p-a8627941.entry.js} +2 -2
- package/dist/pcm-agents/{p-50b6f9cd.entry.js → p-b01605a5.entry.js} +2 -2
- package/dist/pcm-agents/{p-99cef1a1.entry.js → p-c4c4d812.entry.js} +2 -2
- package/dist/pcm-agents/{p-b61ed76e.entry.js → p-c6e10b76.entry.js} +2 -2
- package/dist/pcm-agents/{p-98fedd69.entry.js → p-c7525afe.entry.js} +2 -2
- package/dist/pcm-agents/pcm-agents.esm.js +1 -1
- package/dist/pcm-agents/pcm-mnms-modal.entry.esm.js.map +1 -1
- package/dist/types/components/oem-mnms-modal/oem-mnms-modal.d.ts +4 -0
- package/dist/types/components/pcm-1zhanshi-mnms-modal/pcm-1zhanshi-mnms-modal.d.ts +4 -0
- package/dist/types/components/pcm-app-chat-modal/pcm-app-chat-modal.d.ts +4 -0
- package/dist/types/components/pcm-digital-human/pcm-digital-human.d.ts +4 -0
- package/dist/types/components/pcm-mnms-modal/pcm-mnms-modal.d.ts +4 -0
- package/dist/types/components/pcm-mnms-zp-modal/pcm-mnms-zp-modal.d.ts +4 -0
- package/dist/types/components/pcm-virtual-chat-modal/pcm-virtual-chat-modal.d.ts +4 -0
- package/dist/types/components.d.ts +56 -0
- package/package.json +1 -1
- package/dist/components/p-BqozGBom.js.map +0 -1
- package/dist/components/p-CY0gsW7m.js.map +0 -1
- package/dist/components/p-CgSCSLnK.js.map +0 -1
- package/dist/pcm-agents/p-87a4ba24.entry.js.map +0 -1
- package/dist/pcm-agents/p-CegGZUdH.js +0 -2
- package/dist/pcm-agents/p-b82d2b54.entry.js +0 -245
- package/dist/pcm-agents/p-b82d2b54.entry.js.map +0 -1
- /package/dist/pcm-agents/{p-04072e74.entry.js.map → p-34925caa.entry.js.map} +0 -0
- /package/dist/pcm-agents/{p-dc9cd2bd.entry.js.map → p-8d72af4a.entry.js.map} +0 -0
- /package/dist/pcm-agents/{p-75c684a6.entry.js.map → p-93508b4b.entry.js.map} +0 -0
- /package/dist/pcm-agents/{p-8dc8311f.entry.js.map → p-99b56e3d.entry.js.map} +0 -0
- /package/dist/pcm-agents/{p-03d4e001.entry.js.map → p-a3b4cbee.entry.js.map} +0 -0
- /package/dist/pcm-agents/{p-1468a184.entry.js.map → p-a8627941.entry.js.map} +0 -0
- /package/dist/pcm-agents/{p-50b6f9cd.entry.js.map → p-b01605a5.entry.js.map} +0 -0
- /package/dist/pcm-agents/{p-99cef1a1.entry.js.map → p-c4c4d812.entry.js.map} +0 -0
- /package/dist/pcm-agents/{p-b61ed76e.entry.js.map → p-c6e10b76.entry.js.map} +0 -0
- /package/dist/pcm-agents/{p-98fedd69.entry.js.map → p-c7525afe.entry.js.map} +0 -0
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var index = require('./index-C_qhED9Z.js');
|
|
4
|
-
var index$1 = require('./index-
|
|
4
|
+
var index$1 = require('./index-CL4Tz2fU.js');
|
|
5
5
|
var message_service = require('./message.service-DGUsA-FY.js');
|
|
6
6
|
var errorEvent = require('./error-event-J_ZWIqWF.js');
|
|
7
7
|
var messageUtils = require('./message-utils-pPGi8R71.js');
|
|
8
|
-
var sentryReporter = require('./sentry-reporter-
|
|
8
|
+
var sentryReporter = require('./sentry-reporter-CshODO7C.js');
|
|
9
9
|
require('./exports-Dc-pQh4A.js');
|
|
10
10
|
|
|
11
11
|
const componentsPositionSelectorCss = ":host{display:block;width:100%;height:100%}.position-selector-container{display:flex;flex-direction:column;width:100%;height:100%;background:#fff}.search-bar{display:flex;align-items:center;gap:12px;padding:16px;border-bottom:1px solid #f0f0f0;flex-shrink:0}.search-input-wrapper{position:relative;display:flex;align-items:center;flex:1;min-width:200px;max-width:500px}.search-icon{position:absolute;left:12px;color:#bfbfbf;pointer-events:none}.search-input{width:100%;height:36px;padding:4px 36px 4px 36px;font-size:14px;line-height:1.5;color:rgba(0, 0, 0, 0.85);background-color:#fff;background-image:none;border:1px solid #d9d9d9;border-radius:6px;transition:all 0.3s;outline:none}.search-input:hover{border-color:#40a9ff}.search-input:focus{border-color:#40a9ff;box-shadow:0 0 0 2px rgba(24, 144, 255, 0.2)}.search-input::placeholder{color:#bfbfbf}.clear-button{position:absolute;right:12px;background:none;border:none;padding:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#bfbfbf;transition:color 0.3s}.clear-button:hover{color:#8c8c8c}.search-button{padding:4px 15px;height:36px;font-size:14px;line-height:1.5;border-radius:6px;color:#fff;background-color:#1890ff;border:1px solid #1890ff;cursor:pointer;transition:all 0.3s;outline:none;white-space:nowrap;flex-shrink:0}.search-button:hover{background-color:#40a9ff;border-color:#40a9ff}.search-button:active{background-color:#096dd9;border-color:#096dd9}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;gap:16px;color:#8c8c8c}.loading-spinner{width:32px;height:32px;border:3px solid #f0f0f0;border-top-color:#1890ff;border-radius:50%;animation:spin 0.8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;gap:16px}.empty-icon{opacity:0.5}.empty-text{margin:0;color:#8c8c8c;font-size:14px}.position-list{flex:1;overflow-y:auto;min-height:0}.table-container{width:100%;overflow-x:auto}.position-table{width:100%;border-collapse:collapse;font-size:14px}.position-table thead{background-color:#fafafa;position:sticky;top:0;z-index:1}.position-table th{padding:12px 16px;text-align:left;font-weight:500;color:rgba(0, 0, 0, 0.85);border-bottom:1px solid #f0f0f0;white-space:nowrap}.position-table td{padding:12px 16px;border-bottom:1px solid #f0f0f0;color:rgba(0, 0, 0, 0.65)}.position-table tbody tr{transition:background-color 0.3s}.position-table tbody tr:hover{background-color:#fafafa}.position-table tbody tr.selected-row{background-color:#e6f7ff}.checkbox-column{width:50px;text-align:center}.title-column{min-width:150px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.company-column{min-width:120px;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.location-column{min-width:100px;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.requirements-column{min-width:200px;max-width:300px}.requirements-text{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal;word-break:break-word;line-height:1.5}.salary-column{min-width:100px;white-space:nowrap}.action-column{width:100px;text-align:center}.position-checkbox{width:16px;height:16px;cursor:pointer;accent-color:#1890ff}.select-button{padding:4px 15px;height:28px;font-size:14px;line-height:1.5;border-radius:6px;color:#fff;background-color:#1890ff;border:1px solid #1890ff;cursor:pointer;transition:all 0.3s;outline:none}.select-button:hover{background-color:#40a9ff;border-color:#40a9ff}.select-button:active{background-color:#096dd9;border-color:#096dd9}@media screen and (max-width: 768px){.search-bar{padding:12px;gap:8px}.search-input-wrapper{min-width:auto;max-width:none}.search-input{height:40px;font-size:16px}.search-button{height:40px;padding:4px 12px}.table-container{overflow-x:auto;-webkit-overflow-scrolling:touch}.position-table{font-size:12px}.position-table th,.position-table td{padding:8px 12px}.title-column,.company-column,.location-column{min-width:100px}.select-button{padding:4px 12px;height:32px;font-size:14px}}.pagination-container{display:flex;align-items:center;justify-content:center;gap:16px;padding:16px;border-top:1px solid #f0f0f0;flex-shrink:0}.pagination-button{padding:4px 15px;height:32px;font-size:14px;line-height:1.5;border-radius:6px;color:rgba(0, 0, 0, 0.85);background-color:#fff;border:1px solid #d9d9d9;cursor:pointer;transition:all 0.3s;outline:none}.pagination-button:hover:not(:disabled){color:#40a9ff;border-color:#40a9ff}.pagination-button:active:not(:disabled){color:#096dd9;border-color:#096dd9}.pagination-button:disabled{color:rgba(0, 0, 0, 0.25);background-color:#f5f5f5;border-color:#d9d9d9;cursor:not-allowed}.pagination-info{font-size:14px;color:rgba(0, 0, 0, 0.65)}.position-list::-webkit-scrollbar{width:8px;height:8px}.position-list::-webkit-scrollbar-track{background:#f1f1f1}.position-list::-webkit-scrollbar-thumb{background:#888;border-radius:4px}.position-list::-webkit-scrollbar-thumb:hover{background:#555}";
|
|
@@ -343,6 +343,10 @@ const OemMnmsModal = class {
|
|
|
343
343
|
* 是否显示结束面试按钮
|
|
344
344
|
*/
|
|
345
345
|
showEndInterviewButton = false;
|
|
346
|
+
/**
|
|
347
|
+
* 数字人视频播放速率(0.5-2.0之间),默认1.0
|
|
348
|
+
*/
|
|
349
|
+
playbackRate = 1.0;
|
|
346
350
|
/**
|
|
347
351
|
* 上传成功事件
|
|
348
352
|
*/
|
|
@@ -634,7 +638,7 @@ const OemMnmsModal = class {
|
|
|
634
638
|
const result = e.detail ?? [];
|
|
635
639
|
this.uploadedFileInfo = result[0];
|
|
636
640
|
this.uploadSuccess.emit(this.uploadedFileInfo);
|
|
637
|
-
} })), index.h("div", { class: "jd-input-section" }, index.h("label", null, "\u624B\u673A\u53F7\uFF08\u9009\u586B\uFF0C\u586B\u5199\u540E\u62A5\u544A\u7ED3\u679C\u5C06\u901A\u8FC7\u77ED\u4FE1\u53D1\u9001\uFF09"), index.h("input", { type: "tel", class: "phone-input", placeholder: "\u8BF7\u8F93\u5165\u624B\u673A\u53F7", maxLength: 11, value: this.phoneNumber, onInput: this.handlePhoneNumberChange })), this.phoneNumber.trim().length === 11 && (index.h("div", { class: "jd-input-section" }, index.h("label", null, "\u9A8C\u8BC1\u7801"), index.h("div", { class: "verification-code-container" }, index.h("input", { type: "text", class: "verification-code-input", placeholder: "\u8BF7\u8F93\u5165\u9A8C\u8BC1\u7801", maxLength: 6, value: this.verificationCode, onInput: this.handleVerificationCodeChange }), index.h("button", { class: "send-code-button", disabled: this.isSendingCode || this.countdown > 0 || !this.phoneNumber.trim(), onClick: this.handleSendCode }, this.isSendingCode ? '发送中...' : this.countdown > 0 ? `${this.countdown}秒` : '发送验证码')))), index.h("button", { class: "submit-button", disabled: !(this.customInputs?.job_info || this.jobDescription.trim()) || this.isUploading || this.isSubmitting || this.isVerifyingCode, onClick: this.handleStartInterview }, this.isUploading ? '上传中...' : this.isVerifyingCode ? '验证中...' : this.isSubmitting ? '处理中...' : '开始面试'), index.h("div", { class: "ai-disclaimer" }, index.h("p", null, "\u6240\u6709\u5185\u5BB9\u5747\u7531AI\u751F\u6210\u4EC5\u4F9B\u53C2\u8003"), index.h("p", { class: "beian-info" }, index.h("span", null, "\u4E2D\u592E\u7F51\u4FE1\u529E\u751F\u6210\u5F0F\u4EBA\u5DE5\u667A\u80FD\u670D\u52A1\u5907\u6848\u53F7"), "\uFF1A", index.h("a", { href: "https://www.pincaimao.com", target: "_blank", rel: "noopener noreferrer" }, "Hunan-PinCaiMao-202412310003"))))), isLoading && (index.h("div", { class: "loading-container" }, index.h("div", { class: "loading-spinner" }), index.h("p", { class: "loading-text" }, "\u6B63\u5728\u52A0\u8F7D\u5BF9\u8BDD..."))), this.showChatModal && (index.h("div", null, this.enableVirtualHuman && this.digitalId ? (index.h("pcm-virtual-chat-modal", { ref: el => this.virtualChatModalRef = el, isOpen: true, fullscreen: this.fullscreen, botId: "3022316191018884", digitalId: this.digitalId, openingIndex: this.openingIndex, conversationId: this.conversationId, defaultQuery: this.defaultQuery, waitingTime: this.waitingTime, showEndInterviewButton: this.showEndInterviewButton, customInputs: {
|
|
641
|
+
} })), index.h("div", { class: "jd-input-section" }, index.h("label", null, "\u624B\u673A\u53F7\uFF08\u9009\u586B\uFF0C\u586B\u5199\u540E\u62A5\u544A\u7ED3\u679C\u5C06\u901A\u8FC7\u77ED\u4FE1\u53D1\u9001\uFF09"), index.h("input", { type: "tel", class: "phone-input", placeholder: "\u8BF7\u8F93\u5165\u624B\u673A\u53F7", maxLength: 11, value: this.phoneNumber, onInput: this.handlePhoneNumberChange })), this.phoneNumber.trim().length === 11 && (index.h("div", { class: "jd-input-section" }, index.h("label", null, "\u9A8C\u8BC1\u7801"), index.h("div", { class: "verification-code-container" }, index.h("input", { type: "text", class: "verification-code-input", placeholder: "\u8BF7\u8F93\u5165\u9A8C\u8BC1\u7801", maxLength: 6, value: this.verificationCode, onInput: this.handleVerificationCodeChange }), index.h("button", { class: "send-code-button", disabled: this.isSendingCode || this.countdown > 0 || !this.phoneNumber.trim(), onClick: this.handleSendCode }, this.isSendingCode ? '发送中...' : this.countdown > 0 ? `${this.countdown}秒` : '发送验证码')))), index.h("button", { class: "submit-button", disabled: !(this.customInputs?.job_info || this.jobDescription.trim()) || this.isUploading || this.isSubmitting || this.isVerifyingCode, onClick: this.handleStartInterview }, this.isUploading ? '上传中...' : this.isVerifyingCode ? '验证中...' : this.isSubmitting ? '处理中...' : '开始面试'), index.h("div", { class: "ai-disclaimer" }, index.h("p", null, "\u6240\u6709\u5185\u5BB9\u5747\u7531AI\u751F\u6210\u4EC5\u4F9B\u53C2\u8003"), index.h("p", { class: "beian-info" }, index.h("span", null, "\u4E2D\u592E\u7F51\u4FE1\u529E\u751F\u6210\u5F0F\u4EBA\u5DE5\u667A\u80FD\u670D\u52A1\u5907\u6848\u53F7"), "\uFF1A", index.h("a", { href: "https://www.pincaimao.com", target: "_blank", rel: "noopener noreferrer" }, "Hunan-PinCaiMao-202412310003"))))), isLoading && (index.h("div", { class: "loading-container" }, index.h("div", { class: "loading-spinner" }), index.h("p", { class: "loading-text" }, "\u6B63\u5728\u52A0\u8F7D\u5BF9\u8BDD..."))), this.showChatModal && (index.h("div", null, this.enableVirtualHuman && this.digitalId ? (index.h("pcm-virtual-chat-modal", { ref: el => this.virtualChatModalRef = el, isOpen: true, fullscreen: this.fullscreen, botId: "3022316191018884", digitalId: this.digitalId, openingIndex: this.openingIndex, conversationId: this.conversationId, defaultQuery: this.defaultQuery, waitingTime: this.waitingTime, playbackRate: this.playbackRate, showEndInterviewButton: this.showEndInterviewButton, customInputs: {
|
|
638
642
|
...this.customInputs,
|
|
639
643
|
file_url: this.customInputs?.file_url || this.uploadedFileInfo?.cos_key,
|
|
640
644
|
file_name: this.customInputs?.file_name || this.uploadedFileInfo?.file_name,
|
|
@@ -642,7 +646,7 @@ const OemMnmsModal = class {
|
|
|
642
646
|
question_number: this.customInputs?.question_number || 5,
|
|
643
647
|
interview_type: this.digitalId,
|
|
644
648
|
phone: this.phoneNumber.trim() || undefined
|
|
645
|
-
} })) : (index.h("pcm-app-chat-modal", { isOpen: true, modalTitle: this.modalTitle, icon: this.icon, isShowHeader: this.isShowHeader, isNeedClose: this.isShowHeader, fullscreen: this.fullscreen, showWorkspaceHistory: this.showWorkspaceHistory, botId: "3022316191018884", digitalId: this.digitalId, conversationId: this.conversationId, defaultQuery: this.defaultQuery, maxRecordingTime: this.maxRecordingTime, waitingTime: this.waitingTime, showCopyButton: this.showCopyButton, showFeedbackButtons: this.showFeedbackButtons, showEndInterviewButton: this.showEndInterviewButton, customInputs: {
|
|
649
|
+
} })) : (index.h("pcm-app-chat-modal", { isOpen: true, modalTitle: this.modalTitle, icon: this.icon, isShowHeader: this.isShowHeader, isNeedClose: this.isShowHeader, fullscreen: this.fullscreen, showWorkspaceHistory: this.showWorkspaceHistory, botId: "3022316191018884", digitalId: this.digitalId, conversationId: this.conversationId, defaultQuery: this.defaultQuery, maxRecordingTime: this.maxRecordingTime, waitingTime: this.waitingTime, playbackRate: this.playbackRate, showCopyButton: this.showCopyButton, showFeedbackButtons: this.showFeedbackButtons, showEndInterviewButton: this.showEndInterviewButton, customInputs: {
|
|
646
650
|
...this.customInputs,
|
|
647
651
|
file_url: this.customInputs?.file_url || this.uploadedFileInfo?.cos_key,
|
|
648
652
|
file_name: this.customInputs?.file_name || this.uploadedFileInfo?.file_name,
|
|
@@ -751,6 +755,10 @@ const ZhanshiMnmsModal = class {
|
|
|
751
755
|
* 是否显示结束面试按钮
|
|
752
756
|
*/
|
|
753
757
|
showEndInterviewButton = false;
|
|
758
|
+
/**
|
|
759
|
+
* 数字人视频播放速率(0.5-2.0之间),默认1.0
|
|
760
|
+
*/
|
|
761
|
+
playbackRate = 1.0;
|
|
754
762
|
/**
|
|
755
763
|
* 上传成功事件
|
|
756
764
|
*/
|
|
@@ -867,13 +875,13 @@ const ZhanshiMnmsModal = class {
|
|
|
867
875
|
};
|
|
868
876
|
// 显示加载状态
|
|
869
877
|
const isLoading = this.conversationId && !this.showChatModal;
|
|
870
|
-
return (index.h("div", { class: overlayClass, style: modalStyle }, index.h("div", { class: containerClass }, this.isShowHeader && (index.h("div", { class: "modal-header" }, index.h("div", { class: "header-left" }, this.icon && index.h("img", { src: this.icon, class: "header-icon", alt: "\u5E94\u7528\u56FE\u6807" }), index.h("div", null, this.modalTitle)), this.isNeedClose && (index.h("button", { class: "close-button", onClick: this.handleClose }, index.h("span", null, "\u00D7"))))), isLoading && (index.h("div", { class: "loading-container" }, index.h("div", { class: "loading-spinner" }), index.h("p", { class: "loading-text" }, "\u6B63\u5728\u52A0\u8F7D\u5BF9\u8BDD..."))), this.showChatModal && (index.h("div", null, this.enableVirtualHuman ? (index.h("pcm-virtual-chat-modal", { ref: el => this.virtualChatModalRef = el, isOpen: true, fullscreen: this.fullscreen, botId: "3022316191018903", digitalId: this.digitalId, openingIndex: this.openingIndex, conversationId: this.conversationId, defaultQuery: this.defaultQuery, showEndInterviewButton: this.showEndInterviewButton, waitingTime: this.waitingTime, customInputs: {
|
|
878
|
+
return (index.h("div", { class: overlayClass, style: modalStyle }, index.h("div", { class: containerClass }, this.isShowHeader && (index.h("div", { class: "modal-header" }, index.h("div", { class: "header-left" }, this.icon && index.h("img", { src: this.icon, class: "header-icon", alt: "\u5E94\u7528\u56FE\u6807" }), index.h("div", null, this.modalTitle)), this.isNeedClose && (index.h("button", { class: "close-button", onClick: this.handleClose }, index.h("span", null, "\u00D7"))))), isLoading && (index.h("div", { class: "loading-container" }, index.h("div", { class: "loading-spinner" }), index.h("p", { class: "loading-text" }, "\u6B63\u5728\u52A0\u8F7D\u5BF9\u8BDD..."))), this.showChatModal && (index.h("div", null, this.enableVirtualHuman ? (index.h("pcm-virtual-chat-modal", { ref: el => this.virtualChatModalRef = el, isOpen: true, fullscreen: this.fullscreen, botId: "3022316191018903", digitalId: this.digitalId, openingIndex: this.openingIndex, conversationId: this.conversationId, defaultQuery: this.defaultQuery, showEndInterviewButton: this.showEndInterviewButton, waitingTime: this.waitingTime, playbackRate: this.playbackRate, customInputs: {
|
|
871
879
|
...this.customInputs,
|
|
872
880
|
file_url: this.customInputs?.file_url || this.uploadedFileInfo?.cos_key,
|
|
873
881
|
file_name: this.customInputs?.file_name || this.uploadedFileInfo?.file_name,
|
|
874
882
|
job_info: this.customInputs?.job_info || this.jobDescription,
|
|
875
883
|
interview_type: this.digitalId
|
|
876
|
-
} })) : (index.h("pcm-app-chat-modal", { isOpen: true, modalTitle: this.modalTitle, icon: this.icon, isShowHeader: this.isShowHeader, isNeedClose: this.isShowHeader, fullscreen: this.fullscreen, botId: "3022316191018903", showEndInterviewButton: this.showEndInterviewButton, conversationId: this.conversationId, defaultQuery: this.defaultQuery, maxRecordingTime: this.maxRecordingTime, waitingTime: this.waitingTime, customInputs: {
|
|
884
|
+
} })) : (index.h("pcm-app-chat-modal", { isOpen: true, modalTitle: this.modalTitle, icon: this.icon, isShowHeader: this.isShowHeader, isNeedClose: this.isShowHeader, fullscreen: this.fullscreen, botId: "3022316191018903", showEndInterviewButton: this.showEndInterviewButton, conversationId: this.conversationId, defaultQuery: this.defaultQuery, maxRecordingTime: this.maxRecordingTime, waitingTime: this.waitingTime, playbackRate: this.playbackRate, customInputs: {
|
|
877
885
|
...this.customInputs,
|
|
878
886
|
file_url: this.uploadedFileInfo?.cos_key,
|
|
879
887
|
file_name: this.uploadedFileInfo?.file_name,
|
|
@@ -1149,6 +1157,10 @@ const ChatAPPModal = class {
|
|
|
1149
1157
|
* 是否显示结束面试按钮
|
|
1150
1158
|
*/
|
|
1151
1159
|
showEndInterviewButton = false;
|
|
1160
|
+
/**
|
|
1161
|
+
* 数字人视频播放速率(0.5-2.0之间),默认1.0
|
|
1162
|
+
*/
|
|
1163
|
+
playbackRate = 1.0;
|
|
1152
1164
|
handleTokenChange(newToken) {
|
|
1153
1165
|
// 当传入的 token 变化时,更新 authStore 中的 token
|
|
1154
1166
|
if (newToken && newToken !== index$1.authStore.getToken()) {
|
|
@@ -2681,7 +2693,7 @@ const ChatAPPModal = class {
|
|
|
2681
2693
|
} }, index.h("img", { src: "https://pcm-pub-1351162788.cos.ap-guangzhou.myqcloud.com/sdk/image/i_send.png", alt: "\u53D1\u9001" })))));
|
|
2682
2694
|
// 确定要使用的助手头像
|
|
2683
2695
|
const effectiveAssistantAvatar = this.assistantAvatar || this.agentLogo;
|
|
2684
|
-
return (index.h("div", { class: overlayClass, style: modalStyle }, index.h("div", { class: containerClass }, this.isShowHeader && (index.h("div", { class: "modal-header" }, index.h("div", { class: "header-left" }, this.icon && index.h("img", { src: this.icon, class: "header-icon", alt: "\u5E94\u7528\u56FE\u6807" }), index.h("div", null, this.modalTitle)), this.isNeedClose && (index.h("button", { class: "close-button", onClick: this.handleClose }, index.h("span", null, "\u00D7"))))), index.h("div", { class: "chat-container" }, index.h("div", { class: "chat-history", onScroll: this.handleScroll, onTouchStart: this.handleTouchStart, onTouchEnd: this.handleTouchEnd, onWheel: this.handleWheel }, this.isLoadingHistory ? (index.h("div", { class: "loading-container" }, index.h("div", { class: "loading-spinner" }), index.h("p", null, "\u52A0\u8F7D\u5386\u53F2\u6D88\u606F\u4E2D..."))) : (index.h("div", null, this.messages.map(message => (index.h("div", { id: `message_${message.id}`, key: message.id }, index.h("pcm-chat-message", { botId: this.botId, message: message, showAssistantMessage: !this.digitalId || !this.isLastMessage(message) || this.digitalHumanVideoReady || this.isTaskCompleted, userAvatar: this.userAvatar, assistantAvatar: effectiveAssistantAvatar, showCopyButton: this.showCopyButton, showFeedbackButtons: this.showFeedbackButtons, filePreviewMode: this.filePreviewMode, onFilePreviewRequest: this.handleFilePreviewRequest, showSaveJdButton: this.showSaveJdButton, saveJdButtonText: this.saveJdButtonText })))), this.currentStreamingMessage && (index.h("div", { id: `message_${this.currentStreamingMessage.id}` }, index.h("pcm-chat-message", { botId: this.botId, message: this.currentStreamingMessage, showAssistantMessage: !this.digitalId || this.digitalHumanVideoReady || this.isTaskCompleted, userAvatar: this.userAvatar, assistantAvatar: effectiveAssistantAvatar, showCopyButton: this.showCopyButton, showFeedbackButtons: this.showFeedbackButtons, filePreviewMode: this.filePreviewMode, onFilePreviewRequest: this.handleFilePreviewRequest, showSaveJdButton: this.showSaveJdButton, saveJdButtonText: this.saveJdButtonText }))), this.messages.length === 0 && !this.currentStreamingMessage && (index.h("div", { class: "empty-state" }, index.h("p", null, "\u4F60\u597D\uFF0C\u6211\u662F\u8058\u624D\u732B\uFF0C\u4E00\u4E2AAI\u52A9\u624B\uFF0C\u5F88\u9AD8\u5174\u8BA4\u8BC6\u4F60...")))))), index.h("div", { class: "recording-section" }, index.h("div", { class: "recording-container" }, (this.showWorkspaceHistory || this.digitalId || (this.showEndInterviewButton && !this.isTaskCompleted && this.conversationId)) && (index.h("div", { class: "workspace-section" }, index.h("div", { class: "workspace-toolbar" }, index.h("div", { style: { display: 'flex', gap: '8px' } }, !this.isTaskCompleted && this.conversationId && this.showEndInterviewButton && (index.h("button", { class: "workspace-button end-interview-button", onClick: this.handleInterviewEnd, disabled: this.isLoading || this.isEndingInterview, title: this.isEndingInterview ? '正在结束面试...' : '结束面试' }, index.h("span", null, this.isEndingInterview ? '正在结束...' : '结束面试'))), this.showWorkspaceHistory && (index.h("button", { class: "workspace-button history-button", onClick: () => this.handleHistoryClick() }, index.h("span", null, "\u5386\u53F2\u4F1A\u8BDD")))), this.digitalId && !this.isTaskCompleted && (index.h("div", { class: "digital-human-wrapper" }, index.h("pcm-digital-human", { digitalId: this.digitalId, speechText: this.lastCompletedAnswer, isStreaming: !!this.currentStreamingMessage, onVideoGenerated: this.handleDigitalHumanVideoGenerated, onVideoEnded: this.handleDigitalHumanVideoEnded, onAvatarDetailLoaded: this.handleAvatarDetailLoaded })))))), this.interviewMode === 'text' && renderTextInputArea(), this.interviewMode === 'video' && (index.h("div", { class: "video-container" }, index.h("div", { class: "video-area" }, this.showRecordingUI ? renderVideoPreview() : index.h("div", { class: "video-preview placeholder" }, renderPlaceholderStatus())), index.h("div", { class: "recording-controls" }, this.showRecordingUI ? (index.h("button", { class: "stop-recording-button", onClick: () => this.handleStopRecording() }, "\u5B8C\u6210\u672C\u9898\u56DE\u7B54")) : (index.h("div", { class: "waiting-message" }, index.h("button", { class: "stop-recording-button disabled", disabled: true }, "\u5B8C\u6210\u56DE\u7B54"))))))))), index.h("pcm-drawer", { isOpen: this.isDrawerOpen, drawerTitle: this.previewFileName, width: "80%", onClosed: () => {
|
|
2696
|
+
return (index.h("div", { class: overlayClass, style: modalStyle }, index.h("div", { class: containerClass }, this.isShowHeader && (index.h("div", { class: "modal-header" }, index.h("div", { class: "header-left" }, this.icon && index.h("img", { src: this.icon, class: "header-icon", alt: "\u5E94\u7528\u56FE\u6807" }), index.h("div", null, this.modalTitle)), this.isNeedClose && (index.h("button", { class: "close-button", onClick: this.handleClose }, index.h("span", null, "\u00D7"))))), index.h("div", { class: "chat-container" }, index.h("div", { class: "chat-history", onScroll: this.handleScroll, onTouchStart: this.handleTouchStart, onTouchEnd: this.handleTouchEnd, onWheel: this.handleWheel }, this.isLoadingHistory ? (index.h("div", { class: "loading-container" }, index.h("div", { class: "loading-spinner" }), index.h("p", null, "\u52A0\u8F7D\u5386\u53F2\u6D88\u606F\u4E2D..."))) : (index.h("div", null, this.messages.map(message => (index.h("div", { id: `message_${message.id}`, key: message.id }, index.h("pcm-chat-message", { botId: this.botId, message: message, showAssistantMessage: !this.digitalId || !this.isLastMessage(message) || this.digitalHumanVideoReady || this.isTaskCompleted, userAvatar: this.userAvatar, assistantAvatar: effectiveAssistantAvatar, showCopyButton: this.showCopyButton, showFeedbackButtons: this.showFeedbackButtons, filePreviewMode: this.filePreviewMode, onFilePreviewRequest: this.handleFilePreviewRequest, showSaveJdButton: this.showSaveJdButton, saveJdButtonText: this.saveJdButtonText })))), this.currentStreamingMessage && (index.h("div", { id: `message_${this.currentStreamingMessage.id}` }, index.h("pcm-chat-message", { botId: this.botId, message: this.currentStreamingMessage, showAssistantMessage: !this.digitalId || this.digitalHumanVideoReady || this.isTaskCompleted, userAvatar: this.userAvatar, assistantAvatar: effectiveAssistantAvatar, showCopyButton: this.showCopyButton, showFeedbackButtons: this.showFeedbackButtons, filePreviewMode: this.filePreviewMode, onFilePreviewRequest: this.handleFilePreviewRequest, showSaveJdButton: this.showSaveJdButton, saveJdButtonText: this.saveJdButtonText }))), this.messages.length === 0 && !this.currentStreamingMessage && (index.h("div", { class: "empty-state" }, index.h("p", null, "\u4F60\u597D\uFF0C\u6211\u662F\u8058\u624D\u732B\uFF0C\u4E00\u4E2AAI\u52A9\u624B\uFF0C\u5F88\u9AD8\u5174\u8BA4\u8BC6\u4F60...")))))), index.h("div", { class: "recording-section" }, index.h("div", { class: "recording-container" }, (this.showWorkspaceHistory || this.digitalId || (this.showEndInterviewButton && !this.isTaskCompleted && this.conversationId)) && (index.h("div", { class: "workspace-section" }, index.h("div", { class: "workspace-toolbar" }, index.h("div", { style: { display: 'flex', gap: '8px' } }, !this.isTaskCompleted && this.conversationId && this.showEndInterviewButton && (index.h("button", { class: "workspace-button end-interview-button", onClick: this.handleInterviewEnd, disabled: this.isLoading || this.isEndingInterview, title: this.isEndingInterview ? '正在结束面试...' : '结束面试' }, index.h("span", null, this.isEndingInterview ? '正在结束...' : '结束面试'))), this.showWorkspaceHistory && (index.h("button", { class: "workspace-button history-button", onClick: () => this.handleHistoryClick() }, index.h("span", null, "\u5386\u53F2\u4F1A\u8BDD")))), this.digitalId && !this.isTaskCompleted && (index.h("div", { class: "digital-human-wrapper" }, index.h("pcm-digital-human", { digitalId: this.digitalId, speechText: this.lastCompletedAnswer, isStreaming: !!this.currentStreamingMessage, playbackRate: this.playbackRate, onVideoGenerated: this.handleDigitalHumanVideoGenerated, onVideoEnded: this.handleDigitalHumanVideoEnded, onAvatarDetailLoaded: this.handleAvatarDetailLoaded })))))), this.interviewMode === 'text' && renderTextInputArea(), this.interviewMode === 'video' && (index.h("div", { class: "video-container" }, index.h("div", { class: "video-area" }, this.showRecordingUI ? renderVideoPreview() : index.h("div", { class: "video-preview placeholder" }, renderPlaceholderStatus())), index.h("div", { class: "recording-controls" }, this.showRecordingUI ? (index.h("button", { class: "stop-recording-button", onClick: () => this.handleStopRecording() }, "\u5B8C\u6210\u672C\u9898\u56DE\u7B54")) : (index.h("div", { class: "waiting-message" }, index.h("button", { class: "stop-recording-button disabled", disabled: true }, "\u5B8C\u6210\u56DE\u7B54"))))))))), index.h("pcm-drawer", { isOpen: this.isDrawerOpen, drawerTitle: this.previewFileName, width: "80%", onClosed: () => {
|
|
2685
2697
|
this.isDrawerOpen = false;
|
|
2686
2698
|
this.previewUrl = '';
|
|
2687
2699
|
this.previewContent = '';
|
|
@@ -3627,6 +3639,10 @@ const PcmDigitalHuman = class {
|
|
|
3627
3639
|
* 是否正在流式输出
|
|
3628
3640
|
*/
|
|
3629
3641
|
isStreaming = false;
|
|
3642
|
+
/**
|
|
3643
|
+
* 数字人视频播放速率(0.5-2.0之间),默认1.0
|
|
3644
|
+
*/
|
|
3645
|
+
playbackRate = 1.0;
|
|
3630
3646
|
generatedVideoUrl = '';
|
|
3631
3647
|
currentVideoUrl = '';
|
|
3632
3648
|
isPlayingGenerated = false;
|
|
@@ -3658,6 +3674,8 @@ const PcmDigitalHuman = class {
|
|
|
3658
3674
|
// 设置视频元素的初始源
|
|
3659
3675
|
if (this.videoElement && this.currentVideoUrl) {
|
|
3660
3676
|
this.videoElement.src = this.currentVideoUrl;
|
|
3677
|
+
// 默认视频使用1.0速率,生成的视频使用设置的速率
|
|
3678
|
+
this.videoElement.playbackRate = 1.0;
|
|
3661
3679
|
}
|
|
3662
3680
|
}
|
|
3663
3681
|
handleStreamingChange(newValue, oldValue) {
|
|
@@ -3824,6 +3842,8 @@ const PcmDigitalHuman = class {
|
|
|
3824
3842
|
this.videoElement.src = videoUrl;
|
|
3825
3843
|
// 生成的视频不循环播放
|
|
3826
3844
|
this.videoElement.loop = false;
|
|
3845
|
+
// 设置播放速率(生成的视频使用设置的速率)
|
|
3846
|
+
this.videoElement.playbackRate = this.playbackRate;
|
|
3827
3847
|
// 播放新视频
|
|
3828
3848
|
this.videoElement.play().catch(error => {
|
|
3829
3849
|
console.error('播放生成视频失败:', error);
|
|
@@ -3845,6 +3865,8 @@ const PcmDigitalHuman = class {
|
|
|
3845
3865
|
this.videoElement.pause();
|
|
3846
3866
|
this.videoElement.src = videoUrl;
|
|
3847
3867
|
this.videoElement.loop = false;
|
|
3868
|
+
// 设置播放速率(生成的视频使用设置的速率)
|
|
3869
|
+
this.videoElement.playbackRate = this.playbackRate;
|
|
3848
3870
|
this.videoElement.play().catch(error => {
|
|
3849
3871
|
console.error('播放生成视频失败:', error);
|
|
3850
3872
|
});
|
|
@@ -3871,6 +3893,8 @@ const PcmDigitalHuman = class {
|
|
|
3871
3893
|
this.videoElement.src = defaultUrl;
|
|
3872
3894
|
// 设置循环播放并开始播放
|
|
3873
3895
|
this.videoElement.loop = true;
|
|
3896
|
+
// 恢复默认速率1.0
|
|
3897
|
+
this.videoElement.playbackRate = 1.0;
|
|
3874
3898
|
this.videoElement.play().catch(error => {
|
|
3875
3899
|
console.error('播放默认视频失败:', error);
|
|
3876
3900
|
});
|
|
@@ -3879,7 +3903,7 @@ const PcmDigitalHuman = class {
|
|
|
3879
3903
|
}
|
|
3880
3904
|
};
|
|
3881
3905
|
render() {
|
|
3882
|
-
return (index.h("div", { key: '
|
|
3906
|
+
return (index.h("div", { key: '7b38a3fc594fb3524f6e3be381d018d052b91916', class: "digital-human-container" }, index.h("video", { key: 'fc778d9668dcf39b9d050a82585a3fbc5ab8172e', autoplay: true, playsinline: true, loop: true, onEnded: this.handleVideoEnded, ref: el => (this.videoElement = el) })));
|
|
3883
3907
|
}
|
|
3884
3908
|
static get watchers() { return {
|
|
3885
3909
|
"isStreaming": ["handleStreamingChange"]
|
|
@@ -7493,6 +7517,10 @@ const MnmsZpModal = class {
|
|
|
7493
7517
|
* 是否显示结束面试按钮
|
|
7494
7518
|
*/
|
|
7495
7519
|
showEndInterviewButton = false;
|
|
7520
|
+
/**
|
|
7521
|
+
* 数字人视频播放速率(0.5-2.0之间),默认1.0
|
|
7522
|
+
*/
|
|
7523
|
+
playbackRate = 1.0;
|
|
7496
7524
|
/**
|
|
7497
7525
|
* 上传成功事件
|
|
7498
7526
|
*/
|
|
@@ -7661,14 +7689,14 @@ const MnmsZpModal = class {
|
|
|
7661
7689
|
const result = e.detail ?? [];
|
|
7662
7690
|
this.uploadedFileInfo = result[0];
|
|
7663
7691
|
this.uploadSuccess.emit(this.uploadedFileInfo);
|
|
7664
|
-
} }))), index.h("button", { class: "submit-button", disabled: (!hideJdInput && !this.jobDescription.trim()) || this.isUploading || this.isSubmitting, onClick: this.handleStartInterview }, this.isUploading ? '上传中...' : this.isSubmitting ? '处理中...' : '开始面试'), index.h("div", { class: "ai-disclaimer" }, index.h("p", null, "\u6240\u6709\u5185\u5BB9\u5747\u7531AI\u751F\u6210\u4EC5\u4F9B\u53C2\u8003"), index.h("p", { class: "beian-info" }, index.h("span", null, "\u4E2D\u592E\u7F51\u4FE1\u529E\u751F\u6210\u5F0F\u4EBA\u5DE5\u667A\u80FD\u670D\u52A1\u5907\u6848\u53F7"), "\uFF1A", index.h("a", { href: "https://www.pincaimao.com", target: "_blank", rel: "noopener noreferrer" }, "Hunan-PinCaiMao-202412310003"))))), isLoading && (index.h("div", { class: "loading-container" }, index.h("div", { class: "loading-spinner" }), index.h("p", { class: "loading-text" }, "\u6B63\u5728\u52A0\u8F7D\u5BF9\u8BDD..."))), this.showChatModal && (index.h("div", null, this.enableVirtualHuman && this.digitalId ? (index.h("pcm-virtual-chat-modal", { ref: el => this.virtualChatModalRef = el, isOpen: true, fullscreen: this.fullscreen, botId: "3022316191018907", digitalId: this.digitalId, openingIndex: this.openingIndex, conversationId: this.conversationId, defaultQuery: this.defaultQuery, waitingTime: this.waitingTime, showEndInterviewButton: this.showEndInterviewButton, customInputs: {
|
|
7692
|
+
} }))), index.h("button", { class: "submit-button", disabled: (!hideJdInput && !this.jobDescription.trim()) || this.isUploading || this.isSubmitting, onClick: this.handleStartInterview }, this.isUploading ? '上传中...' : this.isSubmitting ? '处理中...' : '开始面试'), index.h("div", { class: "ai-disclaimer" }, index.h("p", null, "\u6240\u6709\u5185\u5BB9\u5747\u7531AI\u751F\u6210\u4EC5\u4F9B\u53C2\u8003"), index.h("p", { class: "beian-info" }, index.h("span", null, "\u4E2D\u592E\u7F51\u4FE1\u529E\u751F\u6210\u5F0F\u4EBA\u5DE5\u667A\u80FD\u670D\u52A1\u5907\u6848\u53F7"), "\uFF1A", index.h("a", { href: "https://www.pincaimao.com", target: "_blank", rel: "noopener noreferrer" }, "Hunan-PinCaiMao-202412310003"))))), isLoading && (index.h("div", { class: "loading-container" }, index.h("div", { class: "loading-spinner" }), index.h("p", { class: "loading-text" }, "\u6B63\u5728\u52A0\u8F7D\u5BF9\u8BDD..."))), this.showChatModal && (index.h("div", null, this.enableVirtualHuman && this.digitalId ? (index.h("pcm-virtual-chat-modal", { ref: el => this.virtualChatModalRef = el, isOpen: true, fullscreen: this.fullscreen, botId: "3022316191018907", digitalId: this.digitalId, openingIndex: this.openingIndex, conversationId: this.conversationId, defaultQuery: this.defaultQuery, waitingTime: this.waitingTime, playbackRate: this.playbackRate, showEndInterviewButton: this.showEndInterviewButton, customInputs: {
|
|
7665
7693
|
...this.customInputs,
|
|
7666
7694
|
file_url: this.customInputs?.file_url || this.uploadedFileInfo?.cos_key,
|
|
7667
7695
|
file_name: this.customInputs?.file_name || this.uploadedFileInfo?.file_name,
|
|
7668
7696
|
job_info: this.customInputs?.job_info || this.jobDescription,
|
|
7669
7697
|
question_number: this.customInputs?.question_number || 5,
|
|
7670
7698
|
interview_type: this.digitalId
|
|
7671
|
-
} })) : (index.h("pcm-app-chat-modal", { isOpen: true, modalTitle: this.modalTitle, icon: this.icon, isShowHeader: this.isShowHeader, isNeedClose: this.isShowHeader, fullscreen: this.fullscreen, showWorkspaceHistory: this.showWorkspaceHistory, botId: "3022316191018907", digitalId: this.digitalId, conversationId: this.conversationId, defaultQuery: this.defaultQuery, maxRecordingTime: this.maxRecordingTime, waitingTime: this.waitingTime, showCopyButton: this.showCopyButton, showFeedbackButtons: this.showFeedbackButtons, showEndInterviewButton: this.showEndInterviewButton, customInputs: {
|
|
7699
|
+
} })) : (index.h("pcm-app-chat-modal", { isOpen: true, modalTitle: this.modalTitle, icon: this.icon, isShowHeader: this.isShowHeader, isNeedClose: this.isShowHeader, fullscreen: this.fullscreen, showWorkspaceHistory: this.showWorkspaceHistory, botId: "3022316191018907", digitalId: this.digitalId, conversationId: this.conversationId, defaultQuery: this.defaultQuery, maxRecordingTime: this.maxRecordingTime, waitingTime: this.waitingTime, playbackRate: this.playbackRate, showCopyButton: this.showCopyButton, showFeedbackButtons: this.showFeedbackButtons, showEndInterviewButton: this.showEndInterviewButton, customInputs: {
|
|
7672
7700
|
...this.customInputs,
|
|
7673
7701
|
file_url: this.customInputs?.file_url || this.uploadedFileInfo?.cos_key,
|
|
7674
7702
|
file_name: this.customInputs?.file_name || this.uploadedFileInfo?.file_name,
|
|
@@ -11616,6 +11644,10 @@ const ChatVirtualAPPModal = class {
|
|
|
11616
11644
|
* 等待录制时间(秒)默认10
|
|
11617
11645
|
*/
|
|
11618
11646
|
waitingTime = 10;
|
|
11647
|
+
/**
|
|
11648
|
+
* 数字人视频播放速率(0.5-2.0之间),默认1.0
|
|
11649
|
+
*/
|
|
11650
|
+
playbackRate = 1.0;
|
|
11619
11651
|
/**
|
|
11620
11652
|
* 是否显示结束面试按钮
|
|
11621
11653
|
*/
|
|
@@ -13034,7 +13066,13 @@ const ChatVirtualAPPModal = class {
|
|
|
13034
13066
|
'modal-overlay': true,
|
|
13035
13067
|
'fullscreen-overlay': this.fullscreen,
|
|
13036
13068
|
};
|
|
13037
|
-
return (index.h("div", { class: overlayClass, style: modalStyle }, index.h("div", { class: containerClass }, index.h("button", { class: "close-button", onClick: this.handleCloseClick }, index.h("svg", { viewBox: "0 0 24 24", width: "20", height: "20", fill: "currentColor" }, index.h("path", { d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" }))), this.digitalId && this.digitalHumanVideoUrl && (index.h("div", { class: "digital-human-background" }, index.h("video", { autoplay: true, playsinline: true, loop: !this.isPlayingDigitalHumanVideo, muted: !this.isPlayingDigitalHumanVideo, src: this.digitalHumanVideoUrl, class: "digital-human-background-video", onEnded: this.handleVideoElementEnded
|
|
13069
|
+
return (index.h("div", { class: overlayClass, style: modalStyle }, index.h("div", { class: containerClass }, index.h("button", { class: "close-button", onClick: this.handleCloseClick }, index.h("svg", { viewBox: "0 0 24 24", width: "20", height: "20", fill: "currentColor" }, index.h("path", { d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" }))), this.digitalId && this.digitalHumanVideoUrl && (index.h("div", { class: "digital-human-background" }, index.h("video", { autoplay: true, playsinline: true, loop: !this.isPlayingDigitalHumanVideo, muted: !this.isPlayingDigitalHumanVideo, src: this.digitalHumanVideoUrl, class: "digital-human-background-video", onEnded: this.handleVideoElementEnded, ref: el => {
|
|
13070
|
+
if (el) {
|
|
13071
|
+
// 只有非默认占位视频才应用语速控制
|
|
13072
|
+
const isDefaultVideo = this.digitalHumanVideoUrl === this.digitalHumanDefaultVideoUrl;
|
|
13073
|
+
el.playbackRate = isDefaultVideo ? 1.0 : this.playbackRate;
|
|
13074
|
+
}
|
|
13075
|
+
} }))), this.renderVideoPreview(), index.h("div", { class: "modal-content-layer" }, index.h("div", { class: "main-content" }, index.h("div", { class: "chat-history-section" }, this.renderChatHistory()), this.showEndInterviewButton && !this.isTaskCompleted && this.conversationId && (index.h("div", { class: "end-interview-button-container" }, index.h("button", { class: "end-interview-button", onClick: this.handleInterviewEnd, disabled: this.isEndingInterview || !this.isRecording, title: this.isEndingInterview ? '正在结束面试...' : !this.isRecording ? '请在录制时点击' : '结束面试' }, this.isEndingInterview ? '正在结束...' : '结束面试'))), this.renderRecordingStatusBar())), index.h("div", { style: { position: 'relative', zIndex: '100' } }, index.h("pcm-confirm-modal", { isOpen: this.showConfirmModal, modalTitle: "\u786E\u8BA4\u5B8C\u6210\u56DE\u7B54\uFF1F", okText: "\u786E\u8BA4\u5B8C\u6210", cancelText: "\u7EE7\u7EED\u5F55\u5236", okType: "danger", onOk: this.handleConfirmModalOk, onCancel: this.handleConfirmModalCancelEvent, onClosed: this.handleConfirmModalCancel }, index.h("div", { style: { marginBottom: '16px' } }, index.h("div", { style: {
|
|
13038
13076
|
fontSize: '14px',
|
|
13039
13077
|
color: '#1890ff',
|
|
13040
13078
|
fontWeight: '500',
|