telStatus.ts 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. /**
  2. *
  3. * @description telStatus 当前用户签入的状态
  4. * @method setDutyState 设置签入签出状态
  5. * @method setCallOut 设置外呼模式状态
  6. * @method setRest 设置休息状态
  7. * @method setTalkingDeal 设置话后整理状态
  8. * @method setHold 设置保持状态
  9. * @method setPhoneControlState 设置电话控件状态
  10. * @method setCallInfo 设置当前通话信息
  11. * @method resetState 重置状态
  12. */
  13. import { defineStore } from 'pinia';
  14. export enum TelStates {
  15. dutyOff = 'dutyOff', // 签出
  16. dutyOn = 'dutyOn', // 签入
  17. onCallOut = 'onCallOut', // 外呼模式中
  18. rest = 'rest', // 小休
  19. ring = 'ring', // 来电响铃
  20. onHold = 'onHold', // 保持中
  21. onMute = 'onMute', // 静音中
  22. onCall = 'onCall', // 一通电话通话中
  23. onTalkingDeal = 'onTalkingDeal', // 事后处理中
  24. onConference = 'onConference', // 三方会议中
  25. onThreeWay = 'onThreeWay', // 三方通话中
  26. }
  27. export enum RestStates {
  28. resting = 'resting', // 小休中
  29. InReview = 'InReview', // 小休审批中
  30. unRest = 'unRest' // 未小休
  31. }
  32. export const useTelStatus = defineStore('telStatus', {
  33. state: (): {
  34. telStatusInfo: {
  35. isCallOut: boolean;
  36. fromTel: string;
  37. callId: string;
  38. isMute: boolean;
  39. isMeeting: boolean;
  40. isDutyOn: boolean;
  41. isHold: boolean;
  42. isTalkingDeal: boolean;
  43. telsNo: string;
  44. groupName: string;
  45. telGongHao: string;
  46. telType: string;
  47. telArea: string;
  48. isRest: RestStates;
  49. phoneControlState: TelStates;
  50. telIVR: string
  51. }
  52. } => ({
  53. telStatusInfo: {
  54. isDutyOn: false, // 是否签入
  55. isRest: RestStates.unRest, // 是否休息 'resting'|'InReview'|'unRest'; 休息中 审核中 其他状态
  56. isTalkingDeal: false, //是否事后处理
  57. isMeeting: false, //是否三方会议中
  58. isHold: false, // 是否保持中
  59. isMute: false,
  60. isCallOut: false, // 是否是外呼模式
  61. phoneControlState: TelStates.dutyOff, //当前状态 默认签出
  62. telsNo: "", // 分机号
  63. groupName: "", // 分机组名称
  64. telGongHao: "", // 电话工号
  65. telArea: "", // 电话区号
  66. callId: "", // 电话guid
  67. telIVR: "", // 电话IVR
  68. telType: "", //来电 外呼 转接
  69. fromTel: "", // 来电号码
  70. }
  71. }),
  72. actions: {
  73. // 设置签入签出状态
  74. setDutyState(data: boolean): void {
  75. this.telStatusInfo.isDutyOn = data;
  76. },
  77. // 设置休息状态
  78. setRest(data: RestStates): void {
  79. this.telStatusInfo.isRest = data;
  80. },
  81. // 设置时候处理状态
  82. setTalkingDeal(data: boolean): void {
  83. this.telStatusInfo.isTalkingDeal = data;
  84. },
  85. // 设置保持状态
  86. setHold(data: boolean): void {
  87. this.telStatusInfo.isHold = data;
  88. },
  89. // 设置静音状态
  90. setMute(data: boolean): void {
  91. this.telStatusInfo.isMute = data;
  92. },
  93. // 设置外呼模式
  94. setCallOut(data: boolean): void {
  95. this.telStatusInfo.isCallOut = data;
  96. },
  97. // 设置是否在三方会议中
  98. setMetTing(data: boolean): void {
  99. this.telStatusInfo.isMeeting = data;
  100. },
  101. // 设置电话控件状态
  102. setPhoneControlState(data: TelStates): void {
  103. this.telStatusInfo.phoneControlState = data;
  104. },
  105. // 设置当前通话信息
  106. setCallInfo(data:any): void {
  107. this.telStatusInfo = {
  108. ...this.telStatusInfo,
  109. ...data
  110. };
  111. },
  112. // 签出重置所有状态
  113. resetState(): void {
  114. this.telStatusInfo = {
  115. isDutyOn: false, // 是否签入
  116. isRest: RestStates.unRest, // 是否休息
  117. isTalkingDeal: false, //是否事后处理
  118. isMeeting: false, //是否三方会议中
  119. isHold:false, // 是否保持中
  120. isMute: false, // 是否静音
  121. isCallOut:false, // 是否是外呼模式
  122. phoneControlState: TelStates.dutyOff, //当前状态 默认签出
  123. telsNo: "", // 分机号
  124. groupName: "", // 分机组名称
  125. telGongHao: "", // 电话工号
  126. telArea: "", // 电话区号
  127. callId: "", // 电话guid
  128. telIVR: "", // 电话IVR
  129. telType: "", //来电 外呼 转接
  130. fromTel: "", // 来电号码
  131. }
  132. }
  133. },
  134. // 开启数据缓存
  135. persist: {
  136. enabled: true,
  137. strategies: [
  138. {
  139. //key的名称
  140. key: `${import.meta.env.VITE_STORAGE_NAME}_telStatusInfo`,
  141. //更改默认存储,我更改为localStorage
  142. storage: localStorage,
  143. // 可以选择哪些进入local存储,这样就不用全部都进去存储了
  144. // 默认是全部进去存储
  145. },
  146. // {
  147. // key: `${import.meta.env.VITE_STORAGE_NAME}_base`,
  148. // storage: localStorage,
  149. // paths: ['isDutyOn','isRest']
  150. // },
  151. // {
  152. // key: `${import.meta.env.VITE_STORAGE_NAME}_base2`,
  153. // storage: sessionStorage,
  154. // paths: ['telsNo']
  155. // },
  156. ]
  157. }
  158. });