123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- /**
- *
- * @description telStatus 当前用户签入的状态
- * @method setDutyState 设置签入签出状态
- * @method setCallOut 设置外呼模式状态
- * @method setRest 设置休息状态
- * @method setTalkingDeal 设置话后整理状态
- * @method setHold 设置保持状态
- * @method setPhoneControlState 设置电话控件状态
- * @method setCallInfo 设置当前通话信息
- * @method resetState 重置状态
- */
- import { defineStore } from 'pinia';
- export enum TelStates {
- dutyOff = 'dutyOff', // 签出
- dutyOn = 'dutyOn', // 签入
- onCallOut = 'onCallOut', // 外呼模式中
- rest = 'rest', // 小休
- ring = 'ring', // 来电响铃
- onHold = 'onHold', // 保持中
- onMute = 'onMute', // 静音中
- onCall = 'onCall', // 一通电话通话中
- onTalkingDeal = 'onTalkingDeal', // 事后处理中
- onConference = 'onConference', // 三方会议中
- onThreeWay = 'onThreeWay', // 三方通话中
- }
- export enum RestStates {
- resting = 'resting', // 小休中
- InReview = 'InReview', // 小休审批中
- unRest = 'unRest' // 未小休
- }
- export const useTelStatus = defineStore('telStatus', {
- state: (): {
- telStatusInfo: {
- isCallOut: boolean;
- fromTel: string;
- callId: string;
- isMute: boolean;
- isMeeting: boolean;
- isDutyOn: boolean;
- isHold: boolean;
- isTalkingDeal: boolean;
- telsNo: string;
- groupName: string;
- telGongHao: string;
- telType: string;
- telArea: string;
- isRest: RestStates;
- phoneControlState: TelStates;
- telIVR: string
- }
- } => ({
- telStatusInfo: {
- isDutyOn: false, // 是否签入
- isRest: RestStates.unRest, // 是否休息 'resting'|'InReview'|'unRest'; 休息中 审核中 其他状态
- isTalkingDeal: false, //是否事后处理
- isMeeting: false, //是否三方会议中
- isHold: false, // 是否保持中
- isMute: false,
- isCallOut: false, // 是否是外呼模式
- phoneControlState: TelStates.dutyOff, //当前状态 默认签出
- telsNo: "", // 分机号
- groupName: "", // 分机组名称
- telGongHao: "", // 电话工号
- telArea: "", // 电话区号
- callId: "", // 电话guid
- telIVR: "", // 电话IVR
- telType: "", //来电 外呼 转接
- fromTel: "", // 来电号码
- }
- }),
- actions: {
- // 设置签入签出状态
- setDutyState(data: boolean): void {
- this.telStatusInfo.isDutyOn = data;
- },
- // 设置休息状态
- setRest(data: RestStates): void {
- this.telStatusInfo.isRest = data;
- },
- // 设置时候处理状态
- setTalkingDeal(data: boolean): void {
- this.telStatusInfo.isTalkingDeal = data;
- },
- // 设置保持状态
- setHold(data: boolean): void {
- this.telStatusInfo.isHold = data;
- },
- // 设置静音状态
- setMute(data: boolean): void {
- this.telStatusInfo.isMute = data;
- },
- // 设置外呼模式
- setCallOut(data: boolean): void {
- this.telStatusInfo.isCallOut = data;
- },
- // 设置是否在三方会议中
- setMetTing(data: boolean): void {
- this.telStatusInfo.isMeeting = data;
- },
- // 设置电话控件状态
- setPhoneControlState(data: TelStates): void {
- this.telStatusInfo.phoneControlState = data;
- },
- // 设置当前通话信息
- setCallInfo(data:any): void {
- this.telStatusInfo = {
- ...this.telStatusInfo,
- ...data
- };
- },
- // 签出重置所有状态
- resetState(): void {
- this.telStatusInfo = {
- isDutyOn: false, // 是否签入
- isRest: RestStates.unRest, // 是否休息
- isTalkingDeal: false, //是否事后处理
- isMeeting: false, //是否三方会议中
- isHold:false, // 是否保持中
- isMute: false, // 是否静音
- isCallOut:false, // 是否是外呼模式
- phoneControlState: TelStates.dutyOff, //当前状态 默认签出
- telsNo: "", // 分机号
- groupName: "", // 分机组名称
- telGongHao: "", // 电话工号
- telArea: "", // 电话区号
- callId: "", // 电话guid
- telIVR: "", // 电话IVR
- telType: "", //来电 外呼 转接
- fromTel: "", // 来电号码
- }
- }
- },
- // 开启数据缓存
- persist: {
- enabled: true,
- strategies: [
- {
- //key的名称
- key: `${import.meta.env.VITE_STORAGE_NAME}_telStatusInfo`,
- //更改默认存储,我更改为localStorage
- storage: localStorage,
- // 可以选择哪些进入local存储,这样就不用全部都进去存储了
- // 默认是全部进去存储
- },
- // {
- // key: `${import.meta.env.VITE_STORAGE_NAME}_base`,
- // storage: localStorage,
- // paths: ['isDutyOn','isRest']
- // },
- // {
- // key: `${import.meta.env.VITE_STORAGE_NAME}_base2`,
- // storage: sessionStorage,
- // paths: ['telsNo']
- // },
- ]
- }
- });
|