react_hsbc_teller 2.0.94 → 2.0.96

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react_hsbc_teller",
3
- "version": "2.0.94",
3
+ "version": "2.0.96",
4
4
  "description": "React",
5
5
  "private": false,
6
6
  "main": "lib/hsbc.js",
@@ -737,6 +737,25 @@ class API extends Server{
737
737
  throw err;
738
738
  }
739
739
  }
740
+ async oneClickCopy(params = {}){
741
+ try{
742
+ let result = await this.axios('post', '/hsbc/oneClickCopy/callback', params);
743
+ if (result && (result.data instanceof Object) && result.code === 200){
744
+ return result.data||[];
745
+ } else{
746
+ let err = {
747
+ tip: '服务异常',
748
+ response: result,
749
+ data: params,
750
+ // url: 'https://api.cangdu.org/shopro/data/products',
751
+ }
752
+ throw err;
753
+ }
754
+ }catch(err){
755
+ throw err;
756
+ }
757
+ }
758
+
740
759
  // /**
741
760
  // * 用途:获取记录数据
742
761
  // * @url https://api.cangdu.org/shopro/data/record
@@ -4,6 +4,7 @@ import Pdf from './pdf.js'
4
4
 
5
5
  class Demo extends Component {
6
6
  state = {
7
+ isTagFilter: true,
7
8
  shareMask: false,
8
9
  mtoken
9
10
  :
@@ -19,6 +20,7 @@ sessionId
19
20
  // imRoomId: '',
20
21
  // sessionId: '',
21
22
  pdfRendering: false,
23
+ zeroVolAlert: false,
22
24
  isVideo: false,
23
25
  tellerAccount: '20250528',
24
26
  // callbackUrl: 'http://182.92.184.31:8720/hsbc/callback',
@@ -48,7 +50,8 @@ sessionId
48
50
  salesBranchCode: 'salesBranchCode', //网点编号(分行号)
49
51
  financialOffice: "defaultOfficeId", // 理财室
50
52
  audioinputNameList: ['默认值 - 外部麦克风 (Realtek(R) Audio)'],
51
- needPreSale: true
53
+ needPreSale: true,
54
+ needIpad: false,
52
55
  }
53
56
  componentWillMount() {
54
57
  // if(window.localStorage.getItem('sessionId') && window.localStorage.getItem('sessionId') != 'null' && window.localStorage.getItem('sessionId') != 'undefined') {
@@ -214,6 +217,9 @@ userExit =(val)=>{
214
217
  console.log('componentDidCatch')
215
218
  console.error(error, info)
216
219
  }
220
+ onOneClickCopyResult(val) {
221
+ console.log('onOneClickCopyResult', val)
222
+ }
217
223
  render() {
218
224
  return (
219
225
  <div className="test">
@@ -221,6 +227,7 @@ userExit =(val)=>{
221
227
  this.state.isVideo ?
222
228
  <div>
223
229
  <HSBC
230
+ needIpad={this.state.needIpad}
224
231
  needPreSale={this.state.needPreSale}
225
232
  isOpenSound={true}
226
233
  shareMask={this.state.shareMask}
@@ -269,6 +276,7 @@ userExit =(val)=>{
269
276
  staffPermission={this.staffPermission}
270
277
  onRoomAttendanceList={this.onRoomAttendanceList}
271
278
  onNewJoinerIn={this.onNewJoinerIn}
279
+ onOneClickCopyResult={this.onOneClickCopyResult}
272
280
  >
273
281
 
274
282
  <Pdf></Pdf>
@@ -0,0 +1,291 @@
1
+ import React, { Component } from "react"
2
+ import "./transcription.less"
3
+ import API from "@/api/api"
4
+ import { FormattedMessage, injectIntl } from "react-intl";
5
+ import Modal from "antd/lib/modal";
6
+ import 'antd/lib/modal/style'
7
+ import { Button } from '../../../../../node_modules/antd/lib/index';
8
+ import { message } from 'antd';
9
+ @injectIntl
10
+ class Transcription extends Component {
11
+ state = {
12
+ data: {
13
+ "roomId": "7742532490251215",
14
+ "sessionId": "46694435",
15
+ "appAccount": "20250528",
16
+ "appointmentId": "1072390549",
17
+ "step": "customer-risk",
18
+ "callbackUrl": "https://aag.wealth-platform.prod.ali.cloud.cn.hsbc/nosaml/api/meeting/wealth/api/v1/meeting/oneClickCopy/callback",
19
+ "list": [{
20
+ "title": "风险承受程度和语句确认",
21
+ "productName": ["汇丰代客境外理财计划-富达基金 - 环球科技基金 - 美元-累计"],
22
+ "productCode": "IPFD1234/IPFD2234/IPFD3334",
23
+ "transactionNumber": "20260316152044056919",
24
+ "file": [{
25
+ "transactionNumber": "20260316152044056919",
26
+ "docId": "ff9fd0cc-854a-456d-bc17-3b9e9e8901fa",
27
+ "docType": "QDII-UT-DOC7",
28
+ "appointmentId": "1072390549",
29
+ "step": "copy-risk",
30
+ "previewContent": "根据您在我行最新风险承受能力问卷评估的结果,您的风险承受程度为 5级--“激进型”。 如您的风险承受能力发生变化,请重新进行评估。请在以下抄录框中,填写您的风险承受程度“激进型“",
31
+ "reminderContent": "为保障您的投资权益请输入以上风险承受程度",
32
+ "copyContent": "激进型"
33
+ },
34
+ {
35
+ "transactionNumber": "20260316152044056919",
36
+ "docId": "ff9fd0cc-854a-456d-bc17-3b9e9e8901fa",
37
+ "docType": "QDII-UT-DOC7",
38
+ "appointmentId": "1072390549",
39
+ "step": "copy-statement",
40
+ "previewContent": "本人已经阅读相关风险提示,充分了解并清楚知晓本产品的风险,愿意承担相关投资风险。",
41
+ "reminderContent": "为保障您的投资权益请输入以上风险提示语句",
42
+ "copyContent": "本人已经阅读相关风险提示,充分了解并清楚知晓本产品的风险,愿意承担相关投资风险。"
43
+ }]
44
+ },
45
+ {
46
+ "title": "风险承受程度和语句确认-English",
47
+ "productName": ["汇丰代客境外理财计划-富达基金 - 环球科技基金 - 美元-累计"],
48
+ "productCode": "IPFD1234/IPFD2234/IPFD3334",
49
+ "transactionNumber": "20260316152044056919",
50
+ "file": [{
51
+ "transactionNumber": "20260316152044056919",
52
+ "docId": "ff9fd0cc-854a-456d-bc17-3b9e9e8901fa",
53
+ "docType": "QDII-UT-DOC7",
54
+ "appointmentId": "1072390549",
55
+ "step": "copy-risk",
56
+ "previewContent": "According to your latest risk profile questionnaire result in our bank, your risk tolerance level is Level 0 – “Conservative”. Whenever any factor(s) affecting your risk tolerance level changes, you should reassess your risk profile.Please state your risk tolerance level as “{rpqName}” in this section.",
57
+ "reminderContent": "为保障您的投资权益请输入以上风险承受程度",
58
+ "copyContent": "“Conservative”"
59
+ },
60
+ {
61
+ "transactionNumber": "20260316152044056919",
62
+ "docId": "ff9fd0cc-854a-456d-bc17-3b9e9e8901fa",
63
+ "docType": "QDII-UT-DOC7",
64
+ "appointmentId": "1072390549",
65
+ "step": "copy-statement",
66
+ "previewContent": "I/We have read the relevant risk disclosure, obtained sufficient knowledge and understood clearly the product risk, and will undertake the relevant risk.",
67
+ "reminderContent": "为保障您的投资权益请输入以上风险提示语句",
68
+ "copyContent": "I/We have read the relevant risk disclosure, obtained sufficient knowledge and understood clearly the product risk, and will undertake the relevant risk."
69
+ }]
70
+ },
71
+ {
72
+ "title": "风险语句确认",
73
+ "productName": ["汇丰代客境外理财计划-贝莱德基金 - 环球科技基金 - 美元-累计"],
74
+ "productCode": "IPFD1234/IPFD2234/IPFD3334",
75
+ "transactionNumber": "20260316152044056920",
76
+ "file": [{
77
+ "productCode": "IPFD5678",
78
+ "transactionNumber": "20260316152044056920",
79
+ "docId": "ff9fd0cc-854a-456d-bc17-3b9e9e8901fa",
80
+ "docType": "QDII-UT-DOC7",
81
+ "appointmentId": "1072390549",
82
+ "step": "copy-statement",
83
+ "previewContent": "本人(等)已经阅读风险揭示,愿意承担投资风险。",
84
+ "reminderContent": "为保障您的投资权益请输入以上风险提示语句",
85
+ "copyContent": "本人(等)已经阅读风险揭示,愿意承担投资风险。"
86
+ }]
87
+ }]
88
+ },
89
+ formData: {},
90
+ index: 0,
91
+ isModalVisibleEnd: false,
92
+ isModalVisibleSubmitError: false,
93
+ isLoading: false,
94
+ }
95
+ componentWillMount() {
96
+ // 初始化数据
97
+ let data = this.props.data || this.state.data;
98
+ this.setState({
99
+ data: data,
100
+ formData: data.list && data.list.length > 0 ? data.list[this.state.index] : {}
101
+ });
102
+ }
103
+ copy(index, item) {
104
+ let list = [...this.state.formData.file];
105
+ list[index].copy = item;
106
+ this.setState({
107
+ formData: { ...this.state.formData, file: list },
108
+ });
109
+ }
110
+ // 检查是否所有 copy 都有值
111
+ isAllCopied() {
112
+ if (!this.state.formData.file || this.state.formData.file.length === 0) {
113
+ return false;
114
+ }
115
+ return this.state.formData.file.every(item => item.copy && item.copy.trim() !== '');
116
+ }
117
+ // 高亮匹配文本的方法
118
+ highlightMatch(text, searchText) {
119
+ if (!searchText || !text) {
120
+ return text;
121
+ }
122
+
123
+ const parts = text.split(searchText);
124
+ if (parts.length === 1) {
125
+ return text;
126
+ }
127
+
128
+ return parts.map((part, index) => (
129
+ <span key={index}>
130
+ {part}
131
+ {index < parts.length - 1 && <strong style={{ color: '#000000' }}>{searchText}</strong>}
132
+ </span>
133
+ ));
134
+ }
135
+ next() {
136
+ // 防止重复点击
137
+ if (this.state.isLoading) {
138
+ return;
139
+ }
140
+
141
+ if (this.state.index == this.state.data.list.length - 1) {
142
+ console.log('完成')
143
+ this.setState({ isLoading: true });
144
+ this.finishClick().finally(() => {
145
+ this.setState({ isLoading: false });
146
+ });
147
+ } else {
148
+ this.setState({
149
+ index: this.state.index + 1,
150
+ formData: this.state.data.list[this.state.index + 1] || {}
151
+ });
152
+ }
153
+ }
154
+ sendMessage = () => {
155
+ this.props.sendMessage({
156
+ 'typeId': 952702,
157
+ 'sessionId': window.imRoom.sessionId,
158
+ })
159
+ }
160
+ finishClick = async () => {
161
+ try {
162
+ let result = await API.oneClickCopy({
163
+ ...this.props.data
164
+ });
165
+ console.log(result)
166
+
167
+ if (result.code == 200) {
168
+ this.sendMessage()
169
+ this.props.finish()
170
+ } else {
171
+ this.setState({
172
+ isModalVisibleSubmitError: true
173
+ })
174
+ }
175
+ } catch (err) {
176
+ this.setState({
177
+ isModalVisibleSubmitError: true
178
+ })
179
+ console.log('pdfCallback', err)
180
+ }
181
+ }
182
+ handleSubmit = () => {
183
+ this.setState({
184
+ isModalVisibleSubmitError: false
185
+ })
186
+ }
187
+ exit = () => {
188
+ this.setState({
189
+ isModalVisibleEnd: true
190
+ })
191
+ }
192
+ handleCancelEnd = () => {
193
+ this.setState({
194
+ isModalVisibleEnd: false
195
+ })
196
+ }
197
+ handleOkEnd = () => {
198
+ this.setState({
199
+ isModalVisibleEnd: false
200
+ })
201
+ // 异常退出
202
+ this.props.handleReceiveMsg({
203
+ 'typeId': 952701,
204
+ 'sessionId': window.imRoom.sessionId,
205
+ })
206
+ this.props.finish();
207
+
208
+ }
209
+ render() {
210
+ return (
211
+ <div className="transcription">
212
+ <div className="thehead">
213
+ <div className="title">
214
+ <div className="title-color"></div>
215
+ <div className="title-text">{this.state.formData.title}</div>
216
+ </div>
217
+ <div className='btns'>
218
+ <div className="reset" onClick={() => this.exit()}><FormattedMessage id="exit" /></div>
219
+ </div>
220
+ </div>
221
+ <div className="prompt">
222
+ 交易流水号:{this.state.formData.transactionNumber}
223
+ </div>
224
+ <div className="prompt">产品代码:{this.state.formData.productCode}</div>
225
+ <div className="prompt">{this.state.formData.reminderContent}</div>
226
+ {
227
+ this.state.formData.file && this.state.formData.file.map((item, index) => {
228
+ return (
229
+ <div className="item" key={index}>
230
+ <div className="item-value">
231
+ <div className="item-content">{this.highlightMatch(item.previewContent, item.copyContent)}</div>
232
+ <div className="item-button">
233
+ <button className="item-button-copy" onClick={() => this.copy(index, item.copyContent)}>一键输入</button>
234
+ </div>
235
+ </div>
236
+
237
+ <div >
238
+ <div className="item-input">{item.copy}</div>
239
+ </div>
240
+ </div>
241
+ )
242
+ })
243
+ }
244
+ <div className="submit">
245
+ <button
246
+ className="item-button-copy"
247
+ onClick={() => this.next()}
248
+ disabled={!this.isAllCopied() || this.state.isLoading}
249
+ style={!this.isAllCopied() || this.state.isLoading ? {
250
+ background: '#CCCCCC',
251
+ borderColor: '#CCCCCC',
252
+ color: '#999999',
253
+ cursor: 'not-allowed'
254
+ } : {}}
255
+ >
256
+ {this.state.isLoading ? '提交中...' : '确认'}
257
+ </button>
258
+
259
+ </div>
260
+ <Modal transitionName="" maskTransitionName="" getContainer={document.getElementById('multiModule')} destroyOnClose={true} closable={false} centered={true} visible={this.state.isModalVisibleEnd} footer={[<div key='end'>
261
+ <Button className="modelButtonCancel" onClick={this.handleCancelEnd}><FormattedMessage id="cancel" /></Button>
262
+ <Button className="modelButtonOk" type="primary" danger onClick={this.handleOkEnd}><FormattedMessage id="ok" /></Button>
263
+ </div>
264
+ ]}>
265
+ <div className='endModal'>
266
+ <div className='modalEndTitle'>
267
+ <FormattedMessage id="whether" />
268
+ </div>
269
+ <div className='modalEnd'>
270
+ <FormattedMessage id="progress" />
271
+ </div>
272
+ </div>
273
+ </Modal>
274
+ <Modal transitionName="" maskTransitionName="" destroyOnClose={true} closable={false} centered={true} visible={this.state.isModalVisibleSubmitError} footer={[<div key='end'>
275
+ <Button className="modelButtonOk" type="primary" danger onClick={this.handleSubmit}><FormattedMessage id="ok" /></Button>
276
+ </div>
277
+ ]}>
278
+ <div className='endModal'>
279
+ <div className='modalEndTitle'>
280
+ <FormattedMessage id="message" />
281
+ </div>
282
+ <div className='modalEnd'>
283
+ <FormattedMessage id="submission" />
284
+ </div>
285
+ </div>
286
+ </Modal>
287
+ </div>
288
+ )
289
+ }
290
+ }
291
+ export default Transcription;
@@ -0,0 +1,112 @@
1
+ .transcription{
2
+ height: 100%;
3
+ background: #fff;
4
+ position: relative;
5
+ display: flex;
6
+ flex-direction: column;
7
+ .thehead{
8
+ display: flex;
9
+ justify-content: space-between;
10
+ padding: 14px 24px 0;
11
+ .title{
12
+ display: flex;
13
+ .title-color{
14
+ width: 2px;
15
+ height: 1.5rem;
16
+ background: #00847F;
17
+ margin-top: 0.25rem;
18
+ }
19
+ .title-text{
20
+ font-size: 1.5rem;
21
+ color: #323232;
22
+ margin-left: 8px;
23
+ font-weight: 500;
24
+ }
25
+
26
+ }
27
+ .btns{
28
+ display: flex;
29
+ }
30
+ .qianshu{
31
+ width: 96px;
32
+ height: 2rem;
33
+ background: #F9F2F3;
34
+ border-radius: 2px;
35
+ border: 1px solid #E5B2B5;
36
+ font-size: 14px;
37
+ color: #DB0011;
38
+ line-height: 2rem;
39
+ text-align: center;
40
+ }
41
+ .reset{
42
+ width: 96px;
43
+ height: 2rem;
44
+ background: white;
45
+ border-radius: 2px;
46
+ border: 1px solid #DCDCDC;
47
+ font-size: 14px;
48
+ color: #646464;
49
+ line-height: 2rem;
50
+ text-align: center;
51
+ margin-right: 8px;
52
+ }
53
+ }
54
+ .prompt{
55
+ padding: 14px 24px 0;
56
+ font-size: 1rem;
57
+ }
58
+ .item{
59
+ padding: 14px 24px ;
60
+ .item-value{
61
+ display: flex;
62
+ justify-content: space-between;
63
+ align-items: center;
64
+ }
65
+ .item-content{
66
+ // border: 1px #666666 solid;
67
+ // padding: 14px 24px;
68
+ min-height: 50px;
69
+ }
70
+ .item-button{
71
+ display: flex;
72
+ justify-content: flex-end;
73
+ padding-bottom: 14px;
74
+ }
75
+ .item-button-title{
76
+ font-size: 1rem;
77
+ color: #323232;
78
+ margin-left: 8px;
79
+ font-weight: 500;
80
+ }
81
+
82
+ .item-input{
83
+ border: 1px #666666 solid;
84
+ padding: 14px 24px;
85
+ min-height: 50px;
86
+ color: #000000;
87
+ font-weight: bolder;
88
+ }
89
+ }
90
+ .submit {
91
+ text-align: center;
92
+ }
93
+ .item-button-copy{
94
+ width: 96px;
95
+ height: 2rem;
96
+ background: #F9F2F3;
97
+ border-radius: 2px;
98
+ border: 1px solid #E5B2B5;
99
+ font-size: 14px;
100
+ color: #DB0011;
101
+ line-height: 2rem;
102
+ text-align: center;
103
+ cursor: pointer;
104
+
105
+ &:disabled {
106
+ background: #CCCCCC;
107
+ border-color: #CCCCCC;
108
+ color: #999999;
109
+ cursor: not-allowed;
110
+ }
111
+ }
112
+ }
@@ -2,6 +2,7 @@ import React, { Component } from 'react';
2
2
  import './multiModule.less'
3
3
  import Copy from "./components/copy/copylist" //抄录
4
4
  import Subscribe from "./components/subscribe/subscribe" //签署
5
+ import Transcription from "./components/transcription/transcription" // 一建抄录
5
6
  class multiModule extends Component {
6
7
  state = {
7
8
  };
@@ -17,6 +18,7 @@ class multiModule extends Component {
17
18
  {/* <Subscribe /> */}
18
19
  {this.props.moduleName=='copy'?<Copy data={this.props.data} handleReceiveMsg={this.handleReceiveMsg} finish={this.finish}/>:null}
19
20
  {this.props.moduleName=='subscribe'?<Subscribe data={this.props.data} handleReceiveMsg={this.handleReceiveMsg} finish={this.finish}/>:null}
21
+ {this.props.moduleName=='transcription'?<Transcription data={this.props.data} handleReceiveMsg={this.handleReceiveMsg} finish={this.finish}></Transcription>:null}
20
22
  </div>
21
23
  );
22
24
  }
@@ -66,7 +66,7 @@ import axios from 'axios';
66
66
  import CryptoJS from "crypto-js";
67
67
 
68
68
 
69
- const SDK_VERISON = '2.0.94'
69
+ const SDK_VERISON = '2.0.96'
70
70
  const IDtypeFront = '请客户在其设备后置摄像头下展示证件正面(如:身份证照片页面)'
71
71
  const IDtypeBack = '请在后置摄像头下展示证件反面(如:身份证国徽页)'
72
72
  const { Option } = Select;
@@ -727,7 +727,7 @@ class Video extends Component {
727
727
  height: (420 * SCALE)
728
728
  })
729
729
  // 开启业务录制的时候type传值,在后面加标识,全局的不加
730
- const filePath = 'recordId_' + this.props.tellerAccount + new Date().valueOf() + type;
730
+ const filePath = 'recordId_' + this.props.tellerAccount + new Date().valueOf() + '_' + type;
731
731
  const recordParam = {};
732
732
  recordParam.width = 1280 * SCALE;
733
733
  recordParam.height = 720 * SCALE;
@@ -761,7 +761,11 @@ class Video extends Component {
761
761
  },
762
762
  ];
763
763
  recordParam.tagPositions = list
764
- // recordParam.tagFilter = 'tag' //之前是为了透出小蜜的,现在注释掉是因为客户需要放开
764
+ // 新加参数 isTagFilter true 的时候是开启只录制tag的,false是关闭录制全部的
765
+ if(this.props.isTagFilter) {
766
+ recordParam.tagFilter = 'tag' //之前是为了透出小蜜的,现在注释掉是因为客户需要放开
767
+ }
768
+
765
769
  console.log('recordParam', recordParam);
766
770
  // 开启音频录制,如果有业务id用,没用sessionid 用于在成功回调里去区分是音频还是正常
767
771
  that.test_controller.StartRemoteRecord(filePath, recordParam, record_business_id ? record_business_id + '_' + type : this.state.sessionId + '_' + type)
@@ -2235,6 +2239,31 @@ class Video extends Component {
2235
2239
  if(this.state.sessionId == Mival.data.sessionId ) {
2236
2240
  this.messageClick('客户端音量过低', 'error')
2237
2241
  }
2242
+ } else if (Mival.typeId == 9527) {
2243
+ // 一建抄录
2244
+ if(this.state.sessionId == Mival.sessionId) {
2245
+ this.setState({
2246
+ moduleData: Mival,
2247
+ isBackdrop: false
2248
+ }, ()=>{
2249
+ this.showModal('transcription')
2250
+ })
2251
+ }
2252
+ } else if (Mival.typeId == 952701) {
2253
+ if(this.state.sessionId == Mival.sessionId) {
2254
+ // 一建抄录--异常退出
2255
+ this.props.onOneClickCopyResult ({
2256
+ state: '0'
2257
+ })
2258
+ }
2259
+
2260
+ } else if (Mival.typeId == 952702) {
2261
+ if(this.state.sessionId == Mival.sessionId) {
2262
+ // 一建抄录--正常退出
2263
+ this.props.onOneClickCopyResult ({
2264
+ state: '1'
2265
+ })
2266
+ }
2238
2267
  }
2239
2268
  }
2240
2269
  getUserTitle = (userId) => {
@@ -3143,8 +3172,9 @@ class Video extends Component {
3143
3172
  console.log('新加⼊房间者', participant);
3144
3173
  this.saveLog('mrtc someone joined room, userId=' + participant)
3145
3174
  this.state.isCustomer = true
3146
-
3147
- if (participant.includes(IPAD_SUFFIX) && this.state.businessId){
3175
+ // 改为根据this.props.needIpad判断是否需要ipad
3176
+ // if (participant.includes(IPAD_SUFFIX) && this.state.businessId){
3177
+ if (participant.includes(IPAD_SUFFIX) && this.props.needIpad){
3148
3178
  this.saveVideoPoint('padConnected', 'ipad已连接');
3149
3179
  }
3150
3180
  if (participant.includes(H5_SUFFIX)){
@@ -3254,11 +3284,12 @@ class Video extends Component {
3254
3284
 
3255
3285
  }
3256
3286
 
3257
- // 记录ipad摄像头流,需要单独开启录制
3258
- if (feed.mediaSource == 'VIDEO_SOURCE_CAMERA' && feed.uid.includes(IPAD_SUFFIX)) {
3287
+ // 记录ipad摄像头流,需要单独开启录制 额外需要判断是否要求ipad加入 this.props.needIpad
3288
+ if (feed.mediaSource == 'VIDEO_SOURCE_CAMERA' && feed.uid.includes(IPAD_SUFFIX) && this.props.needIpad) {
3259
3289
  this.state.ipadTag = feed.tag;
3260
- // 如果已经开启了业务录制且ipad未在录制,立即开启ipad录制(ipad后加入)
3261
- if (this.state.businessId && !this.state.ipadRecordId) {
3290
+ // ipad未在录制,立即开启ipad录制(ipad后加入)---不需要根据是否业务了,上面根据this.props.needIpad判断是否需要ipad
3291
+ if (!this.state.ipadRecordId) {
3292
+ // if (this.state.businessId && !this.state.ipadRecordId) {
3262
3293
  this.enableIpadRecording(this.state.businessId)
3263
3294
  }
3264
3295
  }
@@ -3342,7 +3373,9 @@ class Video extends Component {
3342
3373
  console.log('取消发布者', feed)
3343
3374
 
3344
3375
  // ipad取消发布提醒
3345
- if (feed.uid.includes(IPAD_SUFFIX) && this.state.businessId){
3376
+ // if (feed.uid.includes(IPAD_SUFFIX) && this.state.businessId){
3377
+ // 现在不根据是否双录来判断,根据外部传入的this.props.needIpad
3378
+ if (feed.uid.includes(IPAD_SUFFIX) && this.props.needIpad){
3346
3379
  // ipad单独处理,双录过程中ipad如果取消发布,要提示+循环播报直到ipad重新入会
3347
3380
  this.setState({
3348
3381
  IpadLeaveErrorModalVisible: true,
@@ -3363,7 +3396,7 @@ class Video extends Component {
3363
3396
  }
3364
3397
  setTimeout(this.ipadMediaClosePlay, 0);
3365
3398
  } else if (feed.uid.includes(IPAD_SUFFIX)) {
3366
- // 非双录下ipad离开提示iPad已断开
3399
+ // 非双录下ipad离开提示iPad已断开-----this.props.needIpad为false
3367
3400
  this.setState({
3368
3401
  ipadTag: '',
3369
3402
  })
@@ -3427,7 +3460,10 @@ class Video extends Component {
3427
3460
  return
3428
3461
  }
3429
3462
 
3430
- if (participant.includes(IPAD_SUFFIX) && this.state.businessId){
3463
+ // if (participant.includes(IPAD_SUFFIX) && this.state.businessId){
3464
+ //判断条件从之前的是否双录过程中,改成--根据this.props.needIpad来判断,true是需要ipad,false是不需要ipad
3465
+ if (participant.includes(IPAD_SUFFIX) && this.props.needIpad){
3466
+
3431
3467
  // ipad单独处理,双录过程中ipad如果离开,要提示+循环播报直到ipad重新入会
3432
3468
  this.setState({
3433
3469
  IpadLeaveErrorModalVisible: true,
@@ -3448,7 +3484,7 @@ class Video extends Component {
3448
3484
  this.saveLog('iPad leave room during recording')
3449
3485
  return
3450
3486
  } else if (participant.includes(IPAD_SUFFIX)) {
3451
- // 非双录下ipad离开提示iPad已断开
3487
+ // 非双录下ipad离开提示iPad已断开 --this.props.needIpad为false
3452
3488
  this.setState({
3453
3489
  ipadTag: '',
3454
3490
  })
@@ -7413,7 +7449,7 @@ class Video extends Component {
7413
7449
  this.state.envInfo.microResult=='合格' &&
7414
7450
  this.state.envInfo.speakerResult=='合格' &&
7415
7451
  (this.state.envInfo.lightResult=='合格' || this.props.recordMode == 2 ) &&
7416
- (this.state.ipadTag || this.props.recordMode != 2)
7452
+ (this.state.ipadTag || !this.props.needIpad)
7417
7453
 
7418
7454
  const sectionStyle = this.state.tabTitles.length > 0 ? {
7419
7455
  zIndex: '-1',
@@ -8368,6 +8404,8 @@ Video.defaultProps = {
8368
8404
  needPreSale: true, // 是否开启音频录制 默认true--只控制售前full
8369
8405
  signalDisconnectedTime: 20, // 网络异常断开多久后异常弹窗提示
8370
8406
  zeroVolAlert: true, // true 开启音量持续提示,,false不开启
8407
+ isTagFilter: true, // 默认true 的时候是开启只录制标签是tag的(剔除掉小蜜的声音的),false是关闭录制全部的
8408
+ needIpad: true,// 默认true 控制是否开启iPad(断连提示,弹窗关闭,录制判断),false不需要
8371
8409
  logUrl: 'http://hsbc.cn-shanghai.log.aliyuncs.com/logstores/hsbc/track?APIVersion=0.6.0&app=meeting-ui',
8372
8410
  internalUrl: 'https://wp-staff-gateway.wealth-platform.uat.ali.cloud.cn.hsbc/meeting-ui/OHB/CN/HSBC?chnlID=OHB&locale=zh_CN&chnlCC=CN&chnlGMC=HSBC&targetFunc=supervisorMeeting&sourceFunc=rmMeeting'
8373
8411
  }
File without changes