Commit 5ddfb0f0 authored by marsandheart's avatar marsandheart

修改了切换上一步/下一步时候的继续播放问题

parent b24b77ec
...@@ -13,370 +13,364 @@ import QuestionItem from './DoubleRecord.components/QuestionItem'; ...@@ -13,370 +13,364 @@ import QuestionItem from './DoubleRecord.components/QuestionItem';
const defaultPdfPath = 'https://gitee.com/JYWan/JYWeiBo/raw/master/aia_doc-1.pdf'; const defaultPdfPath = 'https://gitee.com/JYWan/JYWeiBo/raw/master/aia_doc-1.pdf';
// 调用app的展示PDF方法,合同展示节点使用 // 为什么这个放在useState里面就不能生效,放在外面就可以生效?useState看来也不能用,后面还是用redux吧
const showPDF = (pdfPath, pdfName) => { let isPlaying = 'N';
if (!window.webkit) { const setIsPlaying = (val) => {
alert('window.webkit 未定义'); isPlaying = val;
return;
}
window.webkit.messageHandlers.aiaPDFPreView.postMessage({
pdfPath,
pdfName
});
}; };
// question不一定都是问题,也可能是答案,其实分为需要读/不需要读 和 需要操作/不需要操作
const defaultSteps = [
{
id: '1',
label: '节点一',
titleText: '开场',
questions: [
{
questionId: '1',
needPlay: true,
needCheck: false,
playStatus: '0', // 0 未开始;1 播放中;2 暂停中; 3 已结束
checked: false,
text: (
<span>
<span className={styles.seller}>销售人员:</span>
根据银保监会有关规定,接下来我将以录音录像的方式对本次销售过程关键环节予以记录,请问您是否同意?
</span>
),
voice:
'根据银保监会有关规定,接下来我将以录音录像的方式对本次销售过程关键环节予以记录,请问您是否同意?'
},
{
questionId: '2',
needPlay: false,
needCheck: true,
playStatus: '0',
checked: false,
text: (
<span>
<span className={styles.buyer}>投保人:</span>
同意。
</span>
),
voice: '同意。'
},
{
questionId: '3',
needPlay: true,
needCheck: false,
playStatus: '0',
checked: false,
text: (
<span>
<span className={styles.seller}>销售人员:</span>
张三先生,您好,我是友邦保险上海分公司的销售人员02293049423。
</span>
),
voice: '张三先生,您好,我是友邦保险上海分公司的销售人员02293049423。'
},
{
questionId: '4',
needPlay: true,
needCheck: true,
playStatus: '0',
checked: false,
text: <span>请销售人员对镜头出示展业证,在镜头上展示3秒,保证对焦准确,画质清晰。</span>,
voice: '请销售人员对镜头出示展业证,在镜头上展示3秒,保证对焦准确,画质清晰。'
},
{
questionId: '5',
needPlay: true,
needCheck: true,
playStatus: '0',
checked: false,
text: (
<span>
<span className={styles.seller}>销售人员:</span>
张三先生,为规范保险销售从业人员的销售行为,也为了更好地保护您的合法权益,请出示您的身份证件,在镜头上展示3秒,保证对焦准确,画质清晰。
</span>
),
voice:
' 张三先生,为规范保险销售从业人员的销售行为,也为了更好地保护您的合法权益,请出示您的身份证件,在镜头上展示3秒,保证对焦准确,画质清晰。'
}
]
},
// {
// id: '2',
// label: '节点二',
// titleText: '告知声明',
// questions: [
// {
// questionId: '',
// needPlay: false,
// needCheck: false,
// playStatus: '0',
// checked: false,
// text: '',
// voice: ''
// }
// ]
// },
// {
// id: '3',
// label: '节点三',
// titleText: '确认购买产品关键要素及风险提示(第一部分:投保信息真实性及犹豫期)',
// questions: [
// {
// questionId: '',
// needPlay: false,
// needCheck: false,
// playStatus: '0',
// checked: false,
// text: '',
// voice: ''
// }
// ]
// },
// {
// id: '4',
// label: '节点四',
// titleText: '确认购买产品关键要素及风险提示(第二部分:产品类型及缴费方式)',
// questions: [
// {
// questionId: '',
// needPlay: false,
// needCheck: false,
// playStatus: '0',
// checked: false,
// text: '',
// voice: ''
// }
// ]
// },
// {
// id: '5',
// label: '节点五',
// titleText: '确认购买产品关键要素及风险提示(保险责任、利益不确定性及观察期)',
// questions: [
// {
// questionId: '',
// needPlay: false,
// needCheck: false,
// playStatus: '0',
// checked: false,
// text: '',
// voice: ''
// }
// ]
// },
{
id: '6',
label: '节点六',
titleText:
'确认购买产品关键要素及风险提示(人身保险投保提示书、计划建议书、免责条款书面说明、风险提示及签字)',
questions: [
{
questionId: '1',
needPlay: true,
needCheck: false,
playStatus: '0',
checked: false,
text: (
<span>
<span className={styles.seller}>销售人员:</span>
销售过程中我已向您详细讲解人身保险投保提示书、免除保险人责任条款、保险合同内容变更申请书。为保障您的权益,接下来请您阅读并核实是否与我讲解的内容一致,如您发现任何不一致的地方,请您当场提出。
接下来,请销售人员向投保人展示相关文件。
</span>
),
voice:
'销售过程中我已向您详细讲解人身保险投保提示书、免除保险人责任条款、保险合同内容变更申请书。为保障您的权益,接下来请您阅读并核实是否与我讲解的内容一致,如您发现任何不一致的地方,请您当场提出。接下来,请销售人员向投保人展示相关文件。'
},
{
questionId: '2',
needPlay: true,
needCheck: true,
playStatus: '0',
checked: false,
text: (
<span>
请销售人员向投保人展示纸质《人身保险投保提示书》,请投保人(张三)认真阅读核实并签字确认,客户签字后,请销售人员向镜头前展示文件名及签字部分,停留至少3秒,保证清晰。
</span>
),
voice:
'请销售人员向投保人展示纸质《人身保险投保提示书》,请投保人(张三)认真阅读核实并签字确认,客户签字后,请销售人员向镜头前展示文件名及签字部分,停留至少3秒,保证清晰。'
},
{
questionId: '3',
needPlay: true,
needCheck: true,
playStatus: '0',
checked: false,
text: (
<span>请销售人员点击链接向镜头清晰展示纸质《人身保险投保提示书》标题及签字部分。</span>
),
voice: '请销售人员点击链接向镜头清晰展示纸质《人身保险投保提示书》标题及签字部分。'
},
{
questionId: '4',
needPlay: true,
needCheck: false,
playStatus: '0',
checked: false,
text: (
<span>
请销售人员向投保人展示免除保险人责任条款说明,请投保人特别关注条款中的“明确说明与如实告知、年龄计算及错误处理、保险事故的通知等内容”。请投保人认真阅读核实,稍后请投保人签字确认。
</span>
),
voice:
'请销售人员向投保人展示免除保险人责任条款说明,请投保人特别关注条款中的“明确说明与如实告知、年龄计算及错误处理、保险事故的通知等内容”。请投保人认真阅读核实,稍后请投保人签字确认。'
},
{
questionId: '5',
needPlay: true,
needCheck: true,
playStatus: '0',
checked: false,
text: (
<span>
请销售人员点击链接向镜头展示
<TouchSpan
className={styles.extlink}
onClick={() => {
showPDF(defaultPdfPath, '免除保险人责任条款');
}}
>
《免除保险人责任条款》
</TouchSpan>
至少3秒,保证标题清晰后给投保人阅读。
</span>
),
voice:
'请销售人员点击链接向镜头展示《免除保险人责任条款》至少3秒,保证标题清晰后给投保人阅读。'
},
{
questionId: '6',
needPlay: true,
needCheck: true,
playStatus: '0',
checked: false,
text: <span>请销售人员确认已向镜头清晰展示免除保险人责任条款。</span>,
voice: '请销售人员确认已向镜头清晰展示免除保险人责任条款。'
},
{
questionId: '7',
needPlay: true,
needCheck: true,
playStatus: '0',
checked: false,
text: <span>请销售人员向投保人展示保险条款,请投保人认真阅读。</span>,
voice: '请销售人员向投保人展示保险条款,请投保人认真阅读。'
},
{
questionId: '8',
needPlay: true,
needCheck: true,
playStatus: '0',
checked: false,
text: (
<span>
请销售人员点击链接向镜头展示
<TouchSpan
className={styles.extlink}
onClick={() => {
showPDF(defaultPdfPath, '保险条款');
}}
>
《保险条款》
</TouchSpan>
至少3秒,保证标题清晰后给投保人阅读
</span>
),
voice: '请销售人员点击链接向镜头展示《保险条款》至少3秒,保证标题清晰后给投保人阅读。'
},
{
questionId: '9',
needPlay: true,
needCheck: true,
playStatus: '0',
checked: false,
text: <span>请销售人员确认已向镜头清晰展示保险条款。</span>,
voice: '请销售人员确认已向镜头清晰展示保险条款。'
},
{
questionId: '10',
needPlay: true,
needCheck: false,
playStatus: '0',
checked: false,
text: <span>请销售人员向投保人展示保险合同内容变更申请书,请投保人认真阅读。</span>,
voice: '请销售人员向投保人展示保险合同内容变更申请书,请投保人认真阅读。'
},
{
questionId: '11',
needPlay: true,
needCheck: true,
playStatus: '0',
checked: false,
text: (
<span>
请销售人员点击链接向镜头展示
<TouchSpan
className={styles.extlink}
onClick={() => {
showPDF(defaultPdfPath, '保险合同内容变更申请书');
}}
>
保险合同内容变更申请书
</TouchSpan>
至少3秒,保证标题清晰后给投保人阅读。稍后请投保人签字确认。
</span>
),
voice:
'请销售人员点击链接向镜头展示 保险合同内容变更申请书 至少3秒,保证标题清晰后给投保人阅读。稍后请投保人签字确认。'
},
{
questionId: '12',
needPlay: true,
needCheck: true,
playStatus: '0',
checked: false,
text: <span>请销售人员确认已向镜头清晰展示保险合同内容变更申请书。</span>,
voice: '请销售人员确认已向镜头清晰展示保险合同内容变更申请书。'
}
]
},
{
id: '7',
label: '节点七',
titleText: '签字确认',
questions: [
{
questionId: '1',
needPlay: true,
needCheck: false,
playStatus: '0',
checked: false,
text:
'刚才已请投保人阅读过投保提示书、免除保险人责任条款、保险条款及保险合同内容变更申请书,在确保镜头可以录制客户签字过程情况下,请投保人张三签字确认。',
voice:
'刚才已请投保人阅读过投保提示书、免除保险人责任条款、保险条款及保险合同内容变更申请书,在确保镜头可以录制客户签字过程情况下,请投保人张三签字确认。'
},
{
questionId: '2',
needPlay: true,
needCheck: true,
playStatus: '0',
checked: false,
text: '客户签署完成后,请销售人员向镜头展示客户签字至少3秒,保证清晰。',
voice: '客户签署完成后,请销售人员向镜头展示客户签字至少3秒,保证清晰。'
}
]
}
];
export default function(props) { export default function(props) {
// question不一定都是问题,也可能是答案,其实分为需要读/不需要读 和 需要操作/不需要操作
const defaultSteps = [
{
id: '1',
label: '节点一',
titleText: '开场',
questions: [
{
questionId: '1',
needPlay: true,
needCheck: false,
playStatus: '0', // 0 未开始;1 播放中;2 暂停中; 3 已结束
checked: false,
text: (
<span>
<span className={styles.seller}>销售人员:</span>
根据银保监会有关规定,接下来我将以录音录像的方式对本次销售过程关键环节予以记录,请问您是否同意?
</span>
),
voice:
'根据银保监会有关规定,接下来我将以录音录像的方式对本次销售过程关键环节予以记录,请问您是否同意?'
},
{
questionId: '2',
needPlay: false,
needCheck: true,
playStatus: '0',
checked: false,
text: (
<span>
<span className={styles.buyer}>投保人:</span>
同意。
</span>
),
voice: '同意。'
},
{
questionId: '3',
needPlay: true,
needCheck: false,
playStatus: '0',
checked: false,
text: (
<span>
<span className={styles.seller}>销售人员:</span>
张三先生,您好,我是友邦保险上海分公司的销售人员02293049423。
</span>
),
voice: '张三先生,您好,我是友邦保险上海分公司的销售人员02293049423。'
},
{
questionId: '4',
needPlay: true,
needCheck: true,
playStatus: '0',
checked: false,
text: <span>请销售人员对镜头出示展业证,在镜头上展示3秒,保证对焦准确,画质清晰。</span>,
voice: '请销售人员对镜头出示展业证,在镜头上展示3秒,保证对焦准确,画质清晰。'
},
{
questionId: '5',
needPlay: true,
needCheck: true,
playStatus: '0',
checked: false,
text: (
<span>
<span className={styles.seller}>销售人员:</span>
张三先生,为规范保险销售从业人员的销售行为,也为了更好地保护您的合法权益,请出示您的身份证件,在镜头上展示3秒,保证对焦准确,画质清晰。
</span>
),
voice:
' 张三先生,为规范保险销售从业人员的销售行为,也为了更好地保护您的合法权益,请出示您的身份证件,在镜头上展示3秒,保证对焦准确,画质清晰。'
}
]
},
// {
// id: '2',
// label: '节点二',
// titleText: '告知声明',
// questions: [
// {
// questionId: '',
// needPlay: false,
// needCheck: false,
// playStatus: '0',
// checked: false,
// text: '',
// voice: ''
// }
// ]
// },
// {
// id: '3',
// label: '节点三',
// titleText: '确认购买产品关键要素及风险提示(第一部分:投保信息真实性及犹豫期)',
// questions: [
// {
// questionId: '',
// needPlay: false,
// needCheck: false,
// playStatus: '0',
// checked: false,
// text: '',
// voice: ''
// }
// ]
// },
// {
// id: '4',
// label: '节点四',
// titleText: '确认购买产品关键要素及风险提示(第二部分:产品类型及缴费方式)',
// questions: [
// {
// questionId: '',
// needPlay: false,
// needCheck: false,
// playStatus: '0',
// checked: false,
// text: '',
// voice: ''
// }
// ]
// },
// {
// id: '5',
// label: '节点五',
// titleText: '确认购买产品关键要素及风险提示(保险责任、利益不确定性及观察期)',
// questions: [
// {
// questionId: '',
// needPlay: false,
// needCheck: false,
// playStatus: '0',
// checked: false,
// text: '',
// voice: ''
// }
// ]
// },
{
id: '6',
label: '节点六',
titleText:
'确认购买产品关键要素及风险提示(人身保险投保提示书、计划建议书、免责条款书面说明、风险提示及签字)',
questions: [
{
questionId: '1',
needPlay: true,
needCheck: false,
playStatus: '0',
checked: false,
text: (
<span>
<span className={styles.seller}>销售人员:</span>
销售过程中我已向您详细讲解人身保险投保提示书、免除保险人责任条款、保险合同内容变更申请书。为保障您的权益,接下来请您阅读并核实是否与我讲解的内容一致,如您发现任何不一致的地方,请您当场提出。
接下来,请销售人员向投保人展示相关文件。
</span>
),
voice:
'销售过程中我已向您详细讲解人身保险投保提示书、免除保险人责任条款、保险合同内容变更申请书。为保障您的权益,接下来请您阅读并核实是否与我讲解的内容一致,如您发现任何不一致的地方,请您当场提出。接下来,请销售人员向投保人展示相关文件。'
},
{
questionId: '2',
needPlay: true,
needCheck: true,
playStatus: '0',
checked: false,
text: (
<span>
请销售人员向投保人展示纸质《人身保险投保提示书》,请投保人(张三)认真阅读核实并签字确认,客户签字后,请销售人员向镜头前展示文件名及签字部分,停留至少3秒,保证清晰。
</span>
),
voice:
'请销售人员向投保人展示纸质《人身保险投保提示书》,请投保人(张三)认真阅读核实并签字确认,客户签字后,请销售人员向镜头前展示文件名及签字部分,停留至少3秒,保证清晰。'
},
{
questionId: '3',
needPlay: true,
needCheck: true,
playStatus: '0',
checked: false,
text: (
<span>请销售人员点击链接向镜头清晰展示纸质《人身保险投保提示书》标题及签字部分。</span>
),
voice: '请销售人员点击链接向镜头清晰展示纸质《人身保险投保提示书》标题及签字部分。'
},
{
questionId: '4',
needPlay: true,
needCheck: false,
playStatus: '0',
checked: false,
text: (
<span>
请销售人员向投保人展示免除保险人责任条款说明,请投保人特别关注条款中的“明确说明与如实告知、年龄计算及错误处理、保险事故的通知等内容”。请投保人认真阅读核实,稍后请投保人签字确认。
</span>
),
voice:
'请销售人员向投保人展示免除保险人责任条款说明,请投保人特别关注条款中的“明确说明与如实告知、年龄计算及错误处理、保险事故的通知等内容”。请投保人认真阅读核实,稍后请投保人签字确认。'
},
{
questionId: '5',
needPlay: true,
needCheck: true,
playStatus: '0',
checked: false,
text: (
<span>
请销售人员点击链接向镜头展示
<TouchSpan
className={styles.extlink}
onClick={() => {
showPDF(defaultPdfPath, '免除保险人责任条款');
}}
>
《免除保险人责任条款》
</TouchSpan>
至少3秒,保证标题清晰后给投保人阅读。
</span>
),
voice:
'请销售人员点击链接向镜头展示《免除保险人责任条款》至少3秒,保证标题清晰后给投保人阅读。'
},
{
questionId: '6',
needPlay: true,
needCheck: true,
playStatus: '0',
checked: false,
text: <span>请销售人员确认已向镜头清晰展示免除保险人责任条款。</span>,
voice: '请销售人员确认已向镜头清晰展示免除保险人责任条款。'
},
{
questionId: '7',
needPlay: true,
needCheck: true,
playStatus: '0',
checked: false,
text: <span>请销售人员向投保人展示保险条款,请投保人认真阅读。</span>,
voice: '请销售人员向投保人展示保险条款,请投保人认真阅读。'
},
{
questionId: '8',
needPlay: true,
needCheck: true,
playStatus: '0',
checked: false,
text: (
<span>
请销售人员点击链接向镜头展示
<TouchSpan
className={styles.extlink}
onClick={() => {
showPDF(defaultPdfPath, '保险条款');
}}
>
《保险条款》
</TouchSpan>
至少3秒,保证标题清晰后给投保人阅读
</span>
),
voice: '请销售人员点击链接向镜头展示《保险条款》至少3秒,保证标题清晰后给投保人阅读。'
},
{
questionId: '9',
needPlay: true,
needCheck: true,
playStatus: '0',
checked: false,
text: <span>请销售人员确认已向镜头清晰展示保险条款。</span>,
voice: '请销售人员确认已向镜头清晰展示保险条款。'
},
{
questionId: '10',
needPlay: true,
needCheck: false,
playStatus: '0',
checked: false,
text: <span>请销售人员向投保人展示保险合同内容变更申请书,请投保人认真阅读。</span>,
voice: '请销售人员向投保人展示保险合同内容变更申请书,请投保人认真阅读。'
},
{
questionId: '11',
needPlay: true,
needCheck: true,
playStatus: '0',
checked: false,
text: (
<span>
请销售人员点击链接向镜头展示
<TouchSpan
className={styles.extlink}
onClick={() => {
showPDF(defaultPdfPath, '保险合同内容变更申请书');
}}
>
保险合同内容变更申请书
</TouchSpan>
至少3秒,保证标题清晰后给投保人阅读。稍后请投保人签字确认。
</span>
),
voice:
'请销售人员点击链接向镜头展示 保险合同内容变更申请书 至少3秒,保证标题清晰后给投保人阅读。稍后请投保人签字确认。'
},
{
questionId: '12',
needPlay: true,
needCheck: true,
playStatus: '0',
checked: false,
text: <span>请销售人员确认已向镜头清晰展示保险合同内容变更申请书。</span>,
voice: '请销售人员确认已向镜头清晰展示保险合同内容变更申请书。'
}
]
},
{
id: '7',
label: '节点七',
titleText: '签字确认',
questions: [
{
questionId: '1',
needPlay: true,
needCheck: false,
playStatus: '0',
checked: false,
text:
'刚才已请投保人阅读过投保提示书、免除保险人责任条款、保险条款及保险合同内容变更申请书,在确保镜头可以录制客户签字过程情况下,请投保人张三签字确认。',
voice:
'刚才已请投保人阅读过投保提示书、免除保险人责任条款、保险条款及保险合同内容变更申请书,在确保镜头可以录制客户签字过程情况下,请投保人张三签字确认。'
},
{
questionId: '2',
needPlay: true,
needCheck: true,
playStatus: '0',
checked: false,
text: '客户签署完成后,请销售人员向镜头展示客户签字至少3秒,保证清晰。',
voice: '客户签署完成后,请销售人员向镜头展示客户签字至少3秒,保证清晰。'
}
]
}
];
const [steps, updateSteps] = useState(defaultSteps); const [steps, updateSteps] = useState(defaultSteps);
const [imgSrc1, setImgSrc1] = useState(''); const [imgSrc1, setImgSrc1] = useState('');
const [imgSrc2, setImgSrc2] = useState(''); const [imgSrc2, setImgSrc2] = useState('');
const [stepId, setStepId] = useState('1'); const [stepId, setStepId] = useState('1');
const [questionId, setQuestionId] = useState('1'); const [questionId, setQuestionId] = useState('1');
// const [signVisible, setSignVisible] = useState(false); // const [isPlaying, setIsPlaying] = useState('N');
const currentStep = steps.find((s) => s.id === stepId); const currentStep = steps.find((s) => s.id === stepId);
...@@ -395,7 +389,7 @@ export default function(props) { ...@@ -395,7 +389,7 @@ export default function(props) {
return; return;
} else if (!targetQuestion.needPlay) { } else if (!targetQuestion.needPlay) {
setPlayStatus(questionId, '3'); setPlayStatus(questionId, '3');
} else { } else if(targetQuestion.playStatus !== '2'){
setPlayStatus(questionId, '1'); setPlayStatus(questionId, '1');
voiceStart(targetQuestion.voice); voiceStart(targetQuestion.voice);
} }
...@@ -515,8 +509,25 @@ export default function(props) { ...@@ -515,8 +509,25 @@ export default function(props) {
setQuestionId(nextQuestionId); // 设置完之后触发useEffect,由useEffect调用app的朗读 setQuestionId(nextQuestionId); // 设置完之后触发useEffect,由useEffect调用app的朗读
}; };
// 调用app的展示PDF方法,合同展示节点使用
const showPDF = (pdfPath, pdfName) => {
console.log('show pdf');
if (isPlaying === 'Y') {
return;
}
if (!window.webkit) {
alert('window.webkit 未定义');
return;
}
window.webkit.messageHandlers.aiaPDFPreView.postMessage({
pdfPath,
pdfName
});
};
// 调用app的语音播报,监听语音结束,在刚进入页面时自动调用一次,每一个问题结束后判断是否自动调用 // 调用app的语音播报,监听语音结束,在刚进入页面时自动调用一次,每一个问题结束后判断是否自动调用
const voiceStart = (voiceContent) => { const voiceStart = (voiceContent) => {
setIsPlaying('Y');
console.log(`播放: ${voiceContent}`); console.log(`播放: ${voiceContent}`);
// setTimeout(() => { // setTimeout(() => {
...@@ -532,6 +543,7 @@ export default function(props) { ...@@ -532,6 +543,7 @@ export default function(props) {
window.aiaVoiceFinish = () => { window.aiaVoiceFinish = () => {
console.log('finish one step'); console.log('finish one step');
setIsPlaying('N');
finishOneVoice(); finishOneVoice();
}; };
}; };
...@@ -559,6 +571,7 @@ export default function(props) { ...@@ -559,6 +571,7 @@ export default function(props) {
// 调用app的语音停止,在跳转、翻页的时候调用,避免翻页后继续播放 // 调用app的语音停止,在跳转、翻页的时候调用,避免翻页后继续播放
const voiceStop = () => { const voiceStop = () => {
console.log('停止播放'); console.log('停止播放');
setIsPlaying('N');
if (!window.webkit) { if (!window.webkit) {
alert('window.webkit 未定义'); alert('window.webkit 未定义');
return; return;
...@@ -605,18 +618,34 @@ export default function(props) { ...@@ -605,18 +618,34 @@ export default function(props) {
// ); // );
}; };
// 查找最后一个未读的问题,用于跳转上一步、下一步之后回到刚才的问题。
const findLastUnreadQuestion = (sId) => {
const questions = steps.find((s) => s.id === sId).questions;
const len = questions.length;
let questionId = '';
for (let i = 0; i < len; i++) {
questionId = questions[i].questionId;
if (!questions[i].checked) {
break;
}
}
return questionId;
};
// 上一个节点,如果是第一节点则回到上一页 // 上一个节点,如果是第一节点则回到上一页
const lastStep = () => { const lastStep = () => {
setPlayStatus(questionId, '3');
voiceStop();
if (stepId === '1') { if (stepId === '1') {
voiceStop();
setPlayStatus(questionId, '3');
window.history.go(-1); window.history.go(-1);
} else { } else {
const currentStepIdx = steps.findIndex((s) => s.id === stepId); const currentStepIdx = steps.findIndex((s) => s.id === stepId);
const lastStepId = steps[currentStepIdx - 1].id; const lastStepId = steps[currentStepIdx - 1].id;
voicePause();
setPlayStatus(questionId, '2');
setStepId(lastStepId); setStepId(lastStepId);
setQuestionId('1'); setQuestionId(findLastUnreadQuestion(lastStepId));
} }
}; };
...@@ -627,7 +656,7 @@ export default function(props) { ...@@ -627,7 +656,7 @@ export default function(props) {
return; return;
} }
setPlayStatus(questionId, '3'); setPlayStatus(questionId, '3');
voiceStop(); // voiceStop();
if (stepId === 7) { if (stepId === 7) {
// setSignVisible(true); // setSignVisible(true);
return; return;
...@@ -636,7 +665,7 @@ export default function(props) { ...@@ -636,7 +665,7 @@ export default function(props) {
const nextStepId = steps[currentStepIdx + 1].id; const nextStepId = steps[currentStepIdx + 1].id;
setStepId(nextStepId); setStepId(nextStepId);
setQuestionId('1'); setQuestionId(findLastUnreadQuestion(nextStepId));
} }
}; };
...@@ -649,7 +678,14 @@ export default function(props) { ...@@ -649,7 +678,14 @@ export default function(props) {
return ( return (
<div className={styles.page}> <div className={styles.page}>
<div className={styles.header}> <div className={styles.header}>
<img src={Logo} alt="logo" className={styles.aiaLogo}></img> <img
src={Logo}
alt="logo"
className={styles.aiaLogo}
onClick={() => {
console.log(JSON.stringify({ stepId, questionId, isPlaying }));
}}
></img>
<div>双录指引</div> <div>双录指引</div>
<div className={styles.homeIcon}> <div className={styles.homeIcon}>
<img src={IconHome} alt="logo"></img> <img src={IconHome} alt="logo"></img>
......
...@@ -98,6 +98,10 @@ const InsuredInfo = (props) => { ...@@ -98,6 +98,10 @@ const InsuredInfo = (props) => {
}; };
const removeTableData = async (key) => { const removeTableData = async (key) => {
if (key === '1') {
return;
}
showLoading(); showLoading();
await sleep(500); await sleep(500);
hideLoading(); hideLoading();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment