meeting.js 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736
  1. function guid() {
  2. return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
  3. var r = Math.random() * 16 | 0,
  4. v = c == 'x' ? r : (r & 0x3 | 0x8);
  5. return v.toString(16);
  6. });
  7. }
  8. var Meeting = function Meeting() {
  9. this.localUserInfo = {
  10. //创建会议的参数对象
  11. id: `MID${guid()}`,
  12. masterDomain: '3981f448463d4cdb8735083a5114e626',
  13. name: '', //会议名称
  14. // masterId: "", //主持人用户ID
  15. masterName: 'zhihui', //主持人名字
  16. masterNumber: '', //主持人号码
  17. region: '', //号码对应的PAAS域ID
  18. record: true, //是否录像录音true:录像录音 false:不录
  19. type: 'video', //会议类型“audio”: 音频会议 “video”: 音视频会议
  20. mode: 'group', //会议模式“p2p”:点对点“group”:群聊
  21. };
  22. this.InvitedMembers = {
  23. //邀请会议的参数对象
  24. id: "", //会议id
  25. inviteId: "", //邀请人ID
  26. inviteName: "", //邀请人名字
  27. inviteNumber: "", //邀请人号码
  28. member: [],
  29. };
  30. this.InvitedMembersSingle = {
  31. //单兵
  32. id: "", //会议id
  33. inviteId: "", //邀请人ID
  34. inviteName: "", //邀请人名字
  35. inviteNumber: "", //邀请人号码
  36. member: [],
  37. };
  38. this.InvitedMembersVehicle = {
  39. //车载
  40. id: "", //会议id
  41. inviteId: "", //邀请人ID
  42. inviteName: "", //邀请人名字
  43. inviteNumber: "", //邀请人号码
  44. member: [],
  45. };
  46. this.InvitedMembersUav = {
  47. //无人机
  48. id: "", //会议id
  49. inviteId: "", //邀请人ID
  50. inviteName: "", //邀请人名字
  51. inviteNumber: "", //邀请人号码
  52. member: [],
  53. };
  54. this.InvitedMembersTalkie = {
  55. //对讲机
  56. id: "", //会议id
  57. inviteId: "", //邀请人ID
  58. inviteName: "", //邀请人名字
  59. inviteNumber: "", //邀请人号码
  60. member: [],
  61. };
  62. this.inviteSelf = {
  63. inviteId: '',
  64. department: '',
  65. inviteName: '',
  66. inviteDomain:'',
  67. region: '',
  68. inviteNumber: '',
  69. type: 'client',
  70. };
  71. this.meetingInfoback = ""; //各个接口返回信息
  72. this.$Message = {
  73. warning: (data) => {
  74. console.log(data);
  75. // alert(data)
  76. }
  77. };
  78. this.targetid = "vPlayArea"
  79. };
  80. Meeting.prototype = {
  81. initSocket(userCode, callback) {
  82. const self = this;
  83. //初始websocket实例,保存在window中方便调用。一个浏览器tab页面只能初始化一次。所有的控件窗口,通过该websocket实例去生成不同的窗口实例,不同的控件窗口通过自己的窗口实例去调用初始化、关闭、隐藏等
  84. window.theSocket = this.theSocket = new InitWebSocketClass(
  85. userCode,
  86. localStorage.getItem('token'),
  87. {
  88. //客户端登陆成功通知;
  89. loginSuccess: (v) => {
  90. console.log('loginSuccess-->', v);
  91. // self.initWnd();
  92. },
  93. //客户端窗口被拉起通知
  94. onCreateVideoSuccess: (v) => {
  95. console.log('客户端onCreateVideoSuccess-----', v);
  96. },
  97. //重点:统一分发客户端ws消息;vue 可以统一用$bus分发.第三方消息分发自定
  98. onSocketBackInfos: (data) => {
  99. //视频窗口创建成功通知
  100. if (
  101. data &&
  102. data.method === 'createVideoDialogReuslt' &&
  103. data.params.result === 0
  104. ) {
  105. if (data.params.handleName === '#' + this.targetid) {
  106. //客户端窗口创建好后,界面显示窗口;
  107. callback && callback();
  108. self[self.targetid].resize();
  109. this.$Message.warning('视频窗口创建成功!');
  110. }
  111. }
  112. },
  113. },
  114. );
  115. //socket实例初始化websocket回调方法;
  116. window.theSocket
  117. .initWebSocket()
  118. .then((v) => {
  119. if (v) {
  120. this.$Message.warning('视频插件登陆完成!');
  121. }
  122. callback();
  123. })
  124. .catch((v) => {
  125. this.$Message.warning(
  126. '若要观看实时视频,请先安装视频插件大华应急指挥调度实战平台客户端打开失败, 请尝试刷新页面重试',
  127. );
  128. });
  129. },
  130. //初始化视频窗口实例,先获取自己用户code,再初始化窗口,严格按照封装参数传,别漏了
  131. getUserCode(callback) {
  132. let self = this;
  133. $.ajax({
  134. type: 'GET',
  135. url: setting.URL + '/ras/user/info',
  136. contentType: 'application/json', //如果提交的是json数据类型,则必须有此参数,表示提交的数据类型
  137. dateType: 'json',
  138. beforeSend: (xhr) => {
  139. xhr.setRequestHeader('X-Subject-Token', localStorage.getItem('token'));
  140. xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');
  141. },
  142. success: (res) => {
  143. if (typeof res === 'string') {
  144. res = JSON.parse(res);
  145. }
  146. console.log(res && res.userCode);
  147. //obj
  148. if (res && res.userCode) {
  149. let { userCode } = res;
  150. //初始化websocket;
  151. return self.initSocket(userCode, callback);
  152. }
  153. },
  154. });
  155. },
  156. //初始化视频窗口-dom
  157. initWnd() {
  158. //左边窗口类型参数 分割 2行2列
  159. const typeObj = {
  160. rows: 1,
  161. cols: 1,
  162. wndSpaceing: 0,
  163. embedVideoMode: true,
  164. playerCtrlBarEnable: false,
  165. displayMode: 3,
  166. playMode: 0,
  167. playParams: {},
  168. webControlExpend: true,
  169. };
  170. if (window[this.targetid] && window[this.targetid] instanceof VideoPlay) {
  171. this[this.targetid] = window[this.targetid];
  172. return;
  173. }
  174. //左边窗口实例
  175. window[this.targetid] = this[this.targetid] = new VideoPlay(
  176. '#' + this.targetid,
  177. window.theSocket.websocket, //一个浏览器tab页面公用一个
  178. window.theSocket.socketCode, //一个浏览器tab页面公用一个
  179. typeObj,
  180. );
  181. //左边窗口初始化
  182. this[this.targetid].init();
  183. },
  184. //播放视频
  185. playVideo(item) {
  186. if (!window.theSocket.websocket) {
  187. this.$Message.warning('请先打开视频插件');
  188. return;
  189. }
  190. if (item.type == 'client') {
  191. this.slectOptionmini(item.userId).then((arr) => {
  192. if (arr) {
  193. this[this.targetid].openAppVideo(arr);
  194. }
  195. });
  196. } else if (item.type == 'single') {
  197. //播放单兵视频
  198. this.pullFlow(item.channelId);
  199. } else if (item.type == 'vehicle') {
  200. //播放车载视频
  201. this.pullFlow(item.channelId);
  202. } else if (item.type == 'uav_dev') {
  203. //播放无人机视频
  204. this.pullFlow(item.channelId);
  205. }
  206. },
  207. // setDesignDivision(rows, cols) {
  208. // // console.log(this.localUserInfo);
  209. // const params = JSON.stringify({
  210. // loginIp: setting.URL,
  211. // method: "SetDesignDivision",
  212. // userCode: this.localUserInfo.masterId,
  213. // params: {
  214. // handleName:'#vPlayArea',
  215. // rows: Number(rows),
  216. // cols: Number(cols)
  217. // },
  218. // socketCode: window.theSocket.socketCode
  219. // });
  220. // console.log(params);
  221. // this.webSocketSend(params);
  222. // },
  223. //设备视频拉流
  224. pullFlow(chinnelId) {
  225. if (chinnelId) {
  226. if (this[this.targetid]) {
  227. this[this.targetid].showBrower(true,this.targetid);
  228. this[this.targetid].dragResize(0, 0, 0, 0);
  229. }
  230. window[this.targetid] &&
  231. window[this.targetid].realTimeVideo &&
  232. window[this.targetid].realTimeVideo([
  233. {
  234. channelId: chinnelId,
  235. },
  236. ]);
  237. }
  238. },
  239. /* 创建会商 */
  240. async creatMeeting() {
  241. let _this = this;
  242. if (!_this.localUserInfo.name) {
  243. _this.$Message.warning('请创建会商名称');
  244. return;
  245. }
  246. // debugger
  247. await $.ajax({
  248. type: 'POST',
  249. url: setting.URL + '/mcu/meeting',
  250. contentType: 'application/json', //如果提交的是json数据类型,则必须有此参数,表示提交的数据类型
  251. dateType: 'json',
  252. data: JSON.stringify(_this.localUserInfo),
  253. beforeSend: function (xhr) {
  254. xhr.setRequestHeader('X-Subject-Token', localStorage.getItem('token'));
  255. xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');
  256. //xhr.setRequestHeader("Origin",null);
  257. },
  258. success: function (res) {
  259. //obj
  260. _this.InvitedMembers.id = res.id; //创建了会议id,保存起来,为了邀请成员;
  261. _this.InvitedMembersSingle.id = res.id; //单兵;
  262. _this.InvitedMembersVehicle.id = res.id; //车载;
  263. _this.InvitedMembersUav.id = res.id; //无人机;
  264. _this.InvitedMembersTalkie.id = res.id; //单兵;
  265. _this.meetingId = res.id;
  266. localStorage.setItem('meetingId', res.id);
  267. _this._debug('创建会商返回的信息', res);
  268. // _this.searchMeetingMember(); //add创建会商然后,开始查会议成员显示在列表中;
  269. },
  270. error: function (data) {},
  271. });
  272. },
  273. /* 邀请会商成员 */
  274. startInvite(member) {
  275. let _this = this;
  276. _this.InvitedMembers.member = [
  277. _this.inviteSelf,
  278. ...([member] || []),
  279. // {
  280. // type: "tandemPhone",
  281. // number: _this.outLinenum,
  282. // userName: _this.outLinenum,
  283. // region: _this.paasId,
  284. // },
  285. ];
  286. $.ajax({
  287. type: 'POST',
  288. url: setting.URL + '/mcu/meeting/member',
  289. contentType: 'application/json', //如果提交的是json数据类型,则必须有此参数,表示提交的数据类型
  290. dateType: 'json',
  291. data: JSON.stringify(_this.InvitedMembers),
  292. beforeSend: function (xhr) {
  293. xhr.setRequestHeader('X-Subject-Token', localStorage.getItem('token'));
  294. xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');
  295. },
  296. success: function (res) {
  297. //obj
  298. _this._debug('邀请会商成后的信息', res);
  299. //_this.searchMeetingMember(); //add创建会商然后,开始查会议成员显示在列表中;
  300. },
  301. error: function (data) {
  302. if (data.responseJSON.code == 'mcuIdNotExist') {
  303. _this.$Message.warning('未创建会商');
  304. } else if (data.responseJSON.code == 'mcuIdInvalid') {
  305. _this.$Message.warning('会议ID无效');
  306. } else if (data.responseJSON.code == 'mcuMeetingMemMax') {
  307. _this.$Message.warning('会议用户数满');
  308. }
  309. },
  310. });
  311. },
  312. /* 关闭会商操作 */
  313. deleteMeeting() {
  314. debugger
  315. try {
  316. let _this = this;
  317. let deleteMeetingId = _this.meetingId;
  318. if (!deleteMeetingId) {
  319. _this.$Message.warning('未创建会商');
  320. _this._debug('未创建会商', '');
  321. return;
  322. }
  323. $.ajax({
  324. type: 'DELETE',
  325. url: setting.URL + '/mcu/meeting/' + deleteMeetingId,
  326. contentType: 'application/json', //如果提交的是json数据类型,则必须有此参数,表示提交的数据类型
  327. dateType: 'json',
  328. data: JSON.stringify(_this.localUserInfo),
  329. beforeSend: function (xhr) {
  330. xhr.setRequestHeader(
  331. 'X-Subject-Token',
  332. localStorage.getItem('token'),
  333. );
  334. xhr.setRequestHeader(
  335. 'Content-Type',
  336. 'application/json;charset=UTF-8',
  337. );
  338. },
  339. success: function (res) {
  340. //obj
  341. _this._debug('关闭会议成功', res);
  342. localStorage.removeItem('meetingId');
  343. _this.meetingId = ''; //置空
  344. _this.meetMemberList = []; //置空
  345. _this.meetMemberList2 = []; //置空
  346. },
  347. error: function (data) {
  348. //obj
  349. _this._debug('关闭会议错误提示', data);
  350. if (data.responseJSON.code === 'mcuIdNotExist') {
  351. _this.$Message.warning('未创建会商');
  352. }
  353. },
  354. });
  355. } catch (E) {}
  356. },
  357. deleteAllMeeting(callback) {
  358. let _this = this;
  359. let s = '?';
  360. var index = 0;
  361. var doindex = 0;
  362. let searchParams = {
  363. userDomain: '',
  364. userId: localStorage.getItem('userId'),
  365. local: '0',
  366. };
  367. for (let k in searchParams) {
  368. s = s + k + '=' + searchParams[k] + '&';
  369. }
  370. s = s.substr(0, s.length - 1);
  371. //console.log(s);
  372. $.ajax({
  373. type: 'GET',
  374. url: setting.URL + '/imu/group/list' + s,
  375. contentType: 'application/json', //如果提交的是json数据类型,则必须有此参数,表示提交的数据类型
  376. dateType: 'json',
  377. beforeSend: function (xhr) {
  378. xhr.setRequestHeader('X-Subject-Token', localStorage.getItem('token'));
  379. xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');
  380. //xhr.setRequestHeader("Origin",null);
  381. },
  382. success: function (res) {
  383. //string
  384. if (res) {
  385. _this.allGroupColumnsData = JSON.parse(res).results;
  386. _this._debug('查询所有该用户参与的群组信息success', res);
  387. //所有与我有关的会商;
  388. let allRelateMeeting = [];
  389. if (JSON.parse(res).results !== null) {
  390. JSON.parse(res).results.forEach((item) => {
  391. if (item.meetId) {
  392. index++;
  393. allRelateMeeting.push(item);
  394. $.ajax({
  395. type: 'DELETE',
  396. url: setting.URL + '/mcu/meeting/' + item.meetId,
  397. contentType: 'application/json', //如果提交的是json数据类型,则必须有此参数,表示提交的数据类型
  398. dateType: 'json',
  399. data: JSON.stringify(_this.localUserInfo),
  400. beforeSend: function (xhr) {
  401. xhr.setRequestHeader(
  402. 'X-Subject-Token',
  403. localStorage.getItem('token'),
  404. );
  405. xhr.setRequestHeader(
  406. 'Content-Type',
  407. 'application/json;charset=UTF-8',
  408. );
  409. },
  410. success: function (res) {
  411. //obj
  412. doindex++;
  413. if (doindex == index) {
  414. callback();
  415. }
  416. },
  417. error: function (data) {
  418. //obj
  419. doindex++;
  420. if (doindex == index) {
  421. callback();
  422. }
  423. },
  424. });
  425. }
  426. });
  427. } else {
  428. callback();
  429. }
  430. _this._debug('查询所有该用户参与的会商success', allRelateMeeting);
  431. }
  432. },
  433. error: function (data) {
  434. callback();
  435. },
  436. });
  437. },
  438. /* 通过deviceCode查询设备channelId */
  439. searchChinnelId(deviceCode, deviceType) {
  440. let _this = this;
  441. return new Promise((resolve) => {
  442. $.ajax({
  443. type: 'GET',
  444. url: setting.URL + '/videoService/devicesManager/devices/' + deviceCode,
  445. contentType: 'application/json', //如果提交的是json数据类型,则必须有此参数,表示提交的数据类型
  446. dateType: 'json',
  447. beforeSend: function (xhr) {
  448. xhr.setRequestHeader(
  449. 'X-Subject-Token',
  450. localStorage.getItem('token'),
  451. );
  452. xhr.setRequestHeader(
  453. 'Content-Type',
  454. 'application/json;charset=UTF-8',
  455. );
  456. //xhr.setRequestHeader("Origin",null);
  457. },
  458. success: function (res) {
  459. //obj
  460. if (res) {
  461. if (deviceType == 'single') {
  462. //单兵
  463. _this.channelId = res.encoderUnit.channels[0].channelId;
  464. resolve(res.encoderUnit.channels[0].channelId);
  465. _this._debug(
  466. '单兵channelId',
  467. res.encoderUnit.channels[0].channelId,
  468. );
  469. } else if (deviceType == 'vehicle') {
  470. //车载
  471. _this.channelId = res.encoderUnit.channels[0].channelId;
  472. resolve(res.encoderUnit.channels[0].channelId);
  473. _this._debug(
  474. '车载channelId',
  475. res.encoderUnit.channels[0].channelId,
  476. );
  477. } else if (deviceType == 'uav') {
  478. //无人机
  479. _this.channelId = res.encoderUnit.channels[0].channelId;
  480. resolve(res.encoderUnit.channels[0].channelId);
  481. _this._debug(
  482. '无人机channelId',
  483. res.encoderUnit.channels[0].channelId,
  484. );
  485. } else if (deviceType == 'talkie') {
  486. //对讲机
  487. if (res.encoderUnit.channels[0].channelId) {
  488. _this.channelId = res.encoderUnit.channels[0].channelId;
  489. resolve(res.encoderUnit.channels[0].channelId);
  490. }
  491. _this._debug(
  492. '对讲机channelId',
  493. res.devAudioUnit.channels[0].channelId,
  494. );
  495. }
  496. }
  497. },
  498. error: function (data) {
  499. //
  500. },
  501. });
  502. });
  503. },
  504. queryUser(userCode) {
  505. let _this = this;
  506. return new Promise((resolve) => {
  507. $.ajax({
  508. type: 'GET',
  509. url: setting.URL + '/ras/user/' + userCode,
  510. contentType: 'application/json', //如果提交的是json数据类型,则必须有此参数,表示提交的数据类型
  511. dateType: 'json',
  512. beforeSend: function (xhr) {
  513. xhr.setRequestHeader(
  514. 'X-Subject-Token',
  515. localStorage.getItem('token'),
  516. );
  517. xhr.setRequestHeader(
  518. 'Content-Type',
  519. 'application/json;charset=UTF-8',
  520. );
  521. },
  522. success: function (res) {
  523. //obj
  524. if (res) {
  525. resolve(JSON.parse(res));
  526. }
  527. },
  528. error: function (data) {
  529. // debugger
  530. },
  531. });
  532. });
  533. },
  534. queryDevice(deviceCode) {
  535. let _this = this;
  536. return new Promise((resolve) => {
  537. $.ajax({
  538. type: 'GET',
  539. url: setting.URL + '/videoService/devicesManager/devices/' + deviceCode,
  540. contentType: 'application/json', //如果提交的是json数据类型,则必须有此参数,表示提交的数据类型
  541. dateType: 'json',
  542. beforeSend: function (xhr) {
  543. xhr.setRequestHeader(
  544. 'X-Subject-Token',
  545. localStorage.getItem('token'),
  546. );
  547. xhr.setRequestHeader(
  548. 'Content-Type',
  549. 'application/json;charset=UTF-8',
  550. );
  551. },
  552. success: (res) => {
  553. if (res) {
  554. try {
  555. // $.ajax({
  556. // type: 'POST',
  557. // url: setting.URL + '/rvsl/ecd',
  558. // contentType: 'application/json', //如果提交的是json数据类型,则必须有此参数,表示提交的数据类型
  559. // dateType: 'json',
  560. // data: JSON.stringify({ deviceCode: [res.deviceCode] }),
  561. // beforeSend: function (xhr) {
  562. // xhr.setRequestHeader(
  563. // 'X-Subject-Token',
  564. // localStorage.getItem('token'),
  565. // );
  566. // xhr.setRequestHeader(
  567. // 'Content-Type',
  568. // 'application/json;charset=UTF-8',
  569. // );
  570. // },
  571. // success: function (res1) {
  572. // _this.localUserInfo.masterDomain = res1.data[0].ecdId;
  573. // resolve(res);
  574. // },
  575. // error: function (data) {},
  576. // });
  577. } catch (error) {
  578. // resolve(res);
  579. } finally {
  580. resolve(res);
  581. }
  582. //obj
  583. }
  584. },
  585. error: function (data) {
  586. // debugger
  587. },
  588. });
  589. });
  590. },
  591. /* app拉流 */
  592. slectOptionmini(userCode) {
  593. let _this = this;
  594. return new Promise((resolve) => {
  595. $.ajax({
  596. type: 'GET',
  597. url: setting.URL + '/ras/user/' + userCode,
  598. contentType: 'application/json', //如果提交的是json数据类型,则必须有此参数,表示提交的数据类型
  599. dateType: 'json',
  600. beforeSend: function (xhr) {
  601. xhr.setRequestHeader(
  602. 'X-Subject-Token',
  603. localStorage.getItem('token'),
  604. );
  605. xhr.setRequestHeader(
  606. 'Content-Type',
  607. 'application/json;charset=UTF-8',
  608. );
  609. },
  610. success: function (res) {
  611. //obj
  612. if (res && res.chnId) {
  613. let arr = [
  614. {
  615. channelId: res.chnId,
  616. userCode: res.userCode,
  617. regionId: res.paasId,
  618. domainId: '',
  619. },
  620. ];
  621. resolve(arr);
  622. }
  623. },
  624. error: function (data) {},
  625. });
  626. });
  627. },
  628. /* 打开客户端 */
  629. async openClient(callback) {
  630. return this.getUserCode(callback);
  631. },
  632. closeClient() {
  633. try {
  634. this.theSocket &&
  635. this.theSocket.closeClient &&
  636. this.theSocket.closeClient();
  637. } catch (E) {}
  638. },
  639. closeVideo() {
  640. try {
  641. // this.theSocket.closeAllVideo && this.theSocket.closeAllVideo();
  642. this[this.targetid].closeAllVideo();
  643. this[this.targetid].showBrower(false, this.targetid);
  644. setTimeout(() => {
  645. this[this.targetid].showBrower(false, this.targetid);
  646. }, 100);
  647. } catch (E) {}
  648. },
  649. /* 获取群聊fromName */
  650. async getLocalUserInfo() {
  651. let _this = this;
  652. await $.ajax({
  653. type: 'GET',
  654. url: setting.URL + '/ras/user/info',
  655. contentType: 'application/json', //如果提交的是json数据类型,则必须有此参数,表示提交的数据类型
  656. dateType: 'json',
  657. beforeSend: function (xhr) {
  658. xhr.setRequestHeader('X-Subject-Token', localStorage.getItem('token'));
  659. xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');
  660. },
  661. success: function (res) {
  662. if ( !(res instanceof Object)){
  663. res = JSON.parse(res);
  664. }
  665. //obj
  666. _this.loginPassword = res.loginPassword; //获取登录为密码.为登录用户话机注册做准备(需要res解密)
  667. _this.localUserInfo.masterName = res.userName;
  668. // _this.localUserInfo.masterId = res.userCode;
  669. _this.localUserInfo.masterNumber = res.userPhone;
  670. _this.localUserInfo.region = res.paasId;
  671. _this.InvitedMembers.inviteId = res.userCode;
  672. _this.InvitedMembers.inviteName = res.userName;
  673. _this.InvitedMembers.inviteDomain = '3981f448463d4cdb8735083a5114e626';
  674. _this.InvitedMembers.inviteNumber = res.userPhone;
  675. // _this.inviteSelf = {
  676. // inviteName: res.userName + '(系统APP接入)',
  677. // department: res.deptName,
  678. // inviteDomain: '3981f448463d4cdb8735083a5114e626',
  679. // inviteId: res.userCode,
  680. // region: res.paasId,
  681. // inviteNumber: res.userPhone,
  682. // type: 'client',
  683. // };
  684. //单兵
  685. _this.InvitedMembersSingle.inviteId = res.userCode;
  686. _this.InvitedMembersSingle.inviteName = res.userName;
  687. _this.InvitedMembersSingle.inviteNumber = res.userPhone;
  688. //车载
  689. _this.InvitedMembersVehicle.inviteId = res.userCode;
  690. _this.InvitedMembersVehicle.inviteName = res.userName;
  691. _this.InvitedMembersVehicle.inviteNumber = res.userPhone;
  692. //无人机
  693. _this.InvitedMembersUav.inviteId = res.userCode;
  694. _this.InvitedMembersUav.inviteName = res.userName;
  695. _this.InvitedMembersUav.inviteNumber = res.userPhone;
  696. //对讲机
  697. _this.InvitedMembersTalkie.inviteId = res.userCode;
  698. _this.InvitedMembersTalkie.inviteName = res.userName;
  699. _this.InvitedMembersTalkie.inviteNumber = res.userPhone;
  700. // debugger
  701. },
  702. error: function (data) {
  703. _this.$Message.error('获取视屏用户失败');
  704. },
  705. });
  706. },
  707. _debug(tip, res) {
  708. let _this = this;
  709. _this.meetingInfoback += tip + '--》 ' + JSON.stringify(res) + '\n\n';
  710. // let container = _this.$el.querySelector("#meetResBack textarea");
  711. // container.scrollTop = container.scrollHeight;
  712. },
  713. settargetId(id) {
  714. let _this = this;
  715. if (id != '') {
  716. _this.targetid = id;
  717. }
  718. _this.initWnd();
  719. },
  720. };