调整set_改成set+大写字母

master
jiangjunjie 2 weeks ago
parent 48ff3c47ab
commit 034020d5f9
  1. 639
      src/store/index.js
  2. 29
      src/tests/store-smoke.test.js
  3. 4
      src/utils/utils.js
  4. 133
      src/views/chat.vue

@ -1,5 +1,5 @@
import { defineStore } from 'pinia' import { defineStore } from 'pinia'
import { computed, ref } from 'vue' import { ref } from 'vue'
import { Toast, Dialog } from 'vant' import { Toast, Dialog } from 'vant'
import { fetchPost, upLoadImgHttp } from '@/utils/https' import { fetchPost, upLoadImgHttp } from '@/utils/https'
@ -8,16 +8,19 @@ import FormatDate from '@/utils/filters'
import utils from '@/utils/utils' import utils from '@/utils/utils'
import { Decryption, DecryptionECB, Encrypt } from '@/utils' import { Decryption, DecryptionECB, Encrypt } from '@/utils'
import _ from 'lodash' import _ from 'lodash'
// 幂等键统一采用用户消息前缀,便于和后端日志对齐排查。 // 幂等键统一采用用户消息前缀,便于和后端日志对齐排查。
const createIdempotentKey = () => `user_msg_${Date.now()}` const createIdempotentKey = () => `user_msg_${Date.now()}`
export const UPDATE_DIRECTION = 'UPDATE_DIRECTION' export const UPDATE_DIRECTION = 'UPDATE_DIRECTION'
let token = sessionStorage.token ? sessionStorage.token : ''
let userId = localStorage.userId ? localStorage.userId : '' // —— 模块级初始值(加 initial 前缀,避免与 setup 内同名 ref 产生 TDZ/遮蔽问题)——
let source = localStorage.source ? localStorage.source : '' const initialToken = sessionStorage.token ? sessionStorage.token : ''
let planCode = localStorage.planCode ? localStorage.planCode : '' const initialUserId = localStorage.userId ? localStorage.userId : ''
let entrance = localStorage.entrance ? localStorage.entrance : '' const initialSource = localStorage.source ? localStorage.source : ''
const initialPlanCode = localStorage.planCode ? localStorage.planCode : ''
const initialEntrance = localStorage.entrance ? localStorage.entrance : ''
// 取到身份证后解密 // 取到身份证后解密
let userInfo = localStorage.userInfo ? JSON.parse(localStorage.userInfo) : {} const initialUserInfo = localStorage.userInfo ? JSON.parse(localStorage.userInfo) : {}
// try { // try {
// if(!!userInfo.versionNo1){ // if(!!userInfo.versionNo1){
// const year = new Date().getFullYear() // const year = new Date().getFullYear()
@ -33,61 +36,62 @@ let userInfo = localStorage.userInfo ? JSON.parse(localStorage.userInfo) : {}
// } // }
// } // }
// } catch (error) { } // } catch (error) { }
let configId = localStorage.configId ? localStorage.configId : '' const initialConfigId = localStorage.configId ? localStorage.configId : ''
let sessionId = localStorage.sessionId ? localStorage.sessionId : '' const initialSessionId = localStorage.sessionId ? localStorage.sessionId : ''
let auStatus = localStorage.auStatus ? localStorage.auStatus : '' const initialHtmlExtParams = localStorage.htmlExtParams ? localStorage.htmlExtParams : ''
let bStatus = localStorage.bStatus ? localStorage.bStatus : '' const initialComplaint = localStorage.complaint ? localStorage.complaint : ''
let bthdate = localStorage.bthdate ? localStorage.bthdate : '' const initialNavigationCorpus = localStorage.navigationCorpus ? localStorage.navigationCorpus : ''
let workNum = localStorage.workNum ? localStorage.workNum : ''
let htmlExtParams = localStorage.htmlExtParams ? localStorage.htmlExtParams : '' const initialHeaderAvatar = localStorage.headerAvatar ? JSON.parse(localStorage.headerAvatar) : {}
let complaint = localStorage.complaint ? localStorage.complaint : '' const initialSysConfig = localStorage.sysConfig ? localStorage.sysConfig : ''
let navigationCorpus = localStorage.navigationCorpus ? localStorage.navigationCorpus : '' const initialIsLeaveMessageSuccess = sessionStorage.isLeaveMessageSuccess
// let manualService = sessionStorage.manualService ? sessionStorage.manualService : ''; //1机器人 2人工
let headerAvatar = localStorage.headerAvatar ? JSON.parse(localStorage.headerAvatar) : {}
let sysConfig = localStorage.sysConfig ? localStorage.sysConfig : ''
let isLeaveMessageSuccess = sessionStorage.isLeaveMessageSuccess
? sessionStorage.isLeaveMessageSuccess ? sessionStorage.isLeaveMessageSuccess
: false //留言是否成功 : false //留言是否成功
// 聊天消息 数据 // 聊天消息 数据
let chatList = localStorage.chatList ? JSON.parse(localStorage.chatList) : [] const initialChatList = localStorage.chatList ? JSON.parse(localStorage.chatList) : []
const initialSendMessageList = localStorage.sendMessageList
? JSON.parse(localStorage.sendMessageList)
: []
let sendMessageList = localStorage.sendMessageList ? JSON.parse(localStorage.sendMessageList) : [] const initialReceiveMessageList = localStorage.receiveMessageList
let receiveMessageList = localStorage.receiveMessageList
? JSON.parse(localStorage.receiveMessageList) ? JSON.parse(localStorage.receiveMessageList)
: [] : []
export const useAppStore = defineStore('app', () => { export const useAppStore = defineStore('app', () => {
// Session 相关状态(原 apiState) // Session 相关状态(原 apiState)
const token = ref(token) const token = ref(initialToken)
const userId = ref(userId) const userId = ref(initialUserId)
const configId = ref(configId) const configId = ref(initialConfigId)
const sessionId = ref(sessionId) const sessionId = ref(initialSessionId)
const source = ref(source) const source = ref(initialSource)
const planCode = ref(planCode) const planCode = ref(initialPlanCode)
const entrance = ref(entrance) const entrance = ref(initialEntrance)
const elder = ref(true) const elder = ref(true)
const headerAvatar = ref(headerAvatar) const notitle = ref('')
const htmlExtParams = ref(htmlExtParams) const userInfo = ref(initialUserInfo)
const complaint = ref(complaint) const sysConfig = ref(initialSysConfig)
const navigationCorpus = ref(navigationCorpus) const headerAvatar = ref(initialHeaderAvatar)
const htmlExtParams = ref(initialHtmlExtParams)
const complaint = ref(initialComplaint)
const navigationCorpus = ref(initialNavigationCorpus)
const routeAction = ref('push') const routeAction = ref('push')
const direction = ref('forward') const direction = ref('forward')
const mescrollContent = ref('') const mescrollContent = ref('')
const isLeaveMessage = ref(false) const isLeaveMessage = ref(false)
const isLeaveMessageSuccess = ref(isLeaveMessageSuccess) const isLeaveMessageSuccess = ref(initialIsLeaveMessageSuccess)
const manualService = ref(1) const manualService = ref(1)
const queuedTimeout = ref(false) const queuedTimeout = ref(false)
const sendLoading = ref(false) const sendLoading = ref(false)
const isSendSuccess = ref(false) const isSendSuccess = ref(false)
const timestamp = ref(0) const timestamp = ref(0)
const sendParmas = ref({}) const sendParmas = ref({})
const chatList = ref(chatList) const chatList = ref(initialChatList)
const sendMessageList = ref(sendMessageList) const sendMessageList = ref(initialSendMessageList)
const receiveMessageList = ref(receiveMessageList) const receiveMessageList = ref(initialReceiveMessageList)
const chatId = ref(chatId) const chatId = ref('')
const currentItemId = ref('') const currentItemId = ref('')
const issubmit = ref(true) const issubmit = ref(true)
const otherTips = ref('') const otherTips = ref('')
@ -120,397 +124,435 @@ export const useAppStore = defineStore('app', () => {
const isBqCalcClaim = ref(false) const isBqCalcClaim = ref(false)
const msgReply = ref(true) const msgReply = ref(true)
const hotUserData = ref(null) const hotUserData = ref(null)
const branchCompany = ref('')
function setIsBqCalcClaim(isBqCalcClaim) { // —— Session ——
isBqCalcClaim.value = isBqCalcClaim function setIsBqCalcClaim(payload) {
isBqCalcClaim.value = payload
} }
function set_token(token) {
token.value = token function setToken(payload) {
token.value = payload
try { try {
sessionStorage.token = token sessionStorage.token = payload
} catch (e) { } catch (e) {
console.log(e) console.log(e)
} }
} }
function set_sessionId(sessionId) {
sessionId.value = sessionId function setSessionId(payload) {
sessionId.value = payload
try { try {
localStorage.sessionId = sessionId localStorage.sessionId = payload
} catch (e) { } catch (e) {
console.log(e) console.log(e)
} }
} }
function set_configId(configId) {
configId.value = configId function setConfigId(payload) {
configId.value = payload
try { try {
localStorage.configId = configId localStorage.configId = payload
} catch (e) { } catch (e) {
console.log(e) console.log(e)
} }
} }
function set_appentry(appentry) {
appentry.value = appentry function setAppentry(payload) {
appentry.value = payload
} }
function set_bpErrorInfo(bpErrorInfo) {
bpErrorInfo.value = bpErrorInfo function setBpErrorInfo(payload) {
bpErrorInfo.value = payload
} }
function del_token() {
function delToken() {
token.value = '' token.value = ''
} }
function set_userid(userId) {
userId.value = userId function setUserId(payload) {
try { userId.value = payload
localStorage.userId = userId
} catch (e) {
console.log(e)
}
}
function set_sessionId(sessionId) {
sessionId.value = sessionId
try {
localStorage.sessionId = sessionId
} catch (e) {
console.log(e)
}
}
function set_configId(configId) {
configId.value = configId
try { try {
localStorage.configId = configId localStorage.userId = payload
} catch (e) { } catch (e) {
console.log(e) console.log(e)
} }
} }
function set_source(source) {
source.value = source function setSource(payload) {
source.value = payload
try { try {
localStorage.source = source localStorage.source = payload
} catch (e) { } catch (e) {
console.log(e) console.log(e)
} }
} }
function set_notitle(notitle) {
notitle.value = notitle function setNotitle(payload) {
notitle.value = payload
try { try {
localStorage.notitle = notitle localStorage.notitle = payload
} catch (e) { } catch (e) {
console.log(e) console.log(e)
} }
} }
function set_elder(elder) {
elder.value = elder function setElder(payload) {
elder.value = payload
try { try {
localStorage.elder = elder localStorage.elder = payload
} catch (e) { } catch (e) {
console.log(e) console.log(e)
} }
} }
function set_plan_code(planCode) {
planCode.value = planCode function setPlanCode(payload) {
planCode.value = payload
try { try {
localStorage.planCode = planCode localStorage.planCode = payload
} catch (e) { } catch (e) {
console.log(e) console.log(e)
} }
} }
function set_entrance(entrance) {
entrance.value = entrance function setEntrance(payload) {
entrance.value = payload
try { try {
localStorage.entrance = entrance localStorage.entrance = payload
} catch (e) { } catch (e) {
console.log(e) console.log(e)
} }
} }
function set_userInfo(userInfo) {
userInfo.value = userInfo function setUserInfo(payload) {
userInfo.value = payload
try { try {
localStorage.userInfo = JSON.stringify(userInfo) localStorage.userInfo = JSON.stringify(payload)
} catch (e) { } catch (e) {
console.log(e) console.log(e)
} }
} }
function set_htmlExtParams(htmlExtParams) {
htmlExtParams.value = htmlExtParams function setHtmlExtParams(payload) {
htmlExtParams.value = payload
try { try {
localStorage.htmlExtParams = htmlExtParams localStorage.htmlExtParams = payload
} catch (e) { } catch (e) {
console.log(e) console.log(e)
} }
} }
function set_complaint(complaint) {
complaint.value = complaint function setComplaint(payload) {
complaint.value = payload
try { try {
localStorage.complaint = complaint localStorage.complaint = payload
} catch (e) { } catch (e) {
console.log(e) console.log(e)
} }
} }
function set_navigationCorpus(navigationCorpus) {
navigationCorpus.value = navigationCorpus function setNavigationCorpus(payload) {
navigationCorpus.value = payload
try { try {
localStorage.navigationCorpus = navigationCorpus localStorage.navigationCorpus = payload
} catch (e) { } catch (e) {
console.log(e) console.log(e)
} }
} }
function set_manualService(manualService) {
manualService.value = manualService function setManualService(payload) {
manualService.value = payload
try { try {
localStorage.manualService = JSON.stringify(manualService) localStorage.manualService = JSON.stringify(payload)
} catch (e) { } catch (e) {
console.log(e) console.log(e)
} }
} }
function set_sysConfig(sysConfig) {
sysConfig.value = sysConfig function setSysConfig(payload) {
sysConfig.value = payload
try { try {
localStorage.sysConfig = JSON.stringify(sysConfig) localStorage.sysConfig = payload
} catch (e) { } catch (e) {
console.log(e) console.log(e)
} }
} }
function set_headerAvatar(headerAvatar) {
headerAvatar.value = headerAvatar function setHeaderAvatar(payload) {
headerAvatar.value = payload
try { try {
localStorage.headerAvatar = JSON.stringify(headerAvatar) localStorage.headerAvatar = JSON.stringify(payload)
} catch (e) { } catch (e) {
console.log(e) console.log(e)
} }
} }
function set_sendLoading(sendLoading) {
sendLoading.value = sendLoading // —— 消息发送状态 ——
function setSendLoading(payload) {
sendLoading.value = payload
} }
function set_isSendSuccess(isSendSuccess) {
isSendSuccess.value = isSendSuccess function setIsSendSuccess(payload) {
isSendSuccess.value = payload
} }
function set_qaId(qaId) {
qaId.value = qaId function setQaId(payload) {
qaId.value = payload
} }
function set_problemFeedback(problemFeedback) {
problemFeedback.value = problemFeedback function setProblemFeedback(payload) {
problemFeedback.value = payload
} }
function set_otherTips(otherTips) {
otherTips.value = otherTips function setOtherTips(payload) {
otherTips.value = payload
} }
function set_lastMessage(lastMessage) {
lastMessage.value = lastMessage function setLastMessage(payload) {
lastMessage.value = payload
} }
function set_sendFailList(sendFailList) {
sendFailList.value.push(sendFailList) function setSendFailList(payload) {
sendFailList.value.push(payload)
} }
function set_isLostMessage(isLostMessage) {
isLostMessage.value = isLostMessage function setIsLostMessage(payload) {
isLostMessage.value = payload
} }
function del_sendFailList(delSendFailList) {
sendFailList.value = delSendFailList function delSendFailList(payload) {
sendFailList.value = payload
} }
function set_leaveMessage(leaveMessage) {
leaveMessage.value = leaveMessage function setLeaveMessage(payload) {
isLeaveMessage.value = payload
} }
function set_isLeaveMessageSuccess(leaveMessage) {
isLeaveMessageSuccess.value = isLeaveMessageSuccess function setIsLeaveMessageSuccess(payload) {
isLeaveMessageSuccess.value = payload
try { try {
sessionStorage.isLeaveMessageSuccess = isLeaveMessageSuccess sessionStorage.isLeaveMessageSuccess = payload
} catch (e) { } catch (e) {
console.log(e) console.log(e)
} }
} }
function set_mescrollContent(mescrollContent) { function setMescrollContent(payload) {
mescrollContent.value = mescrollContent mescrollContent.value = payload
} }
function set_sendMessageList(sendMessageList) {
sendMessageList.value = sendMessageList function setSendMessageList(payload) {
sendMessageList.value = payload
} }
function set_receiveMessageList(receiveMessageList) {
receiveMessageList.value = receiveMessageList function setReceiveMessageList(payload) {
receiveMessageList.value = payload
} }
function set_tts(tts) {
tts.value = tts function setTts(payload) {
tts.value = payload
}
function setHxOpenSuccesed(payload) {
hxOpenSucceseds.value = payload
} }
function set_hxOpenSuccesed(sendMessageList) {
sendMessageList.value = sendMessageList function setTimestamp(payload) {
timestamp.value = payload
} }
function addSendMessageList(sendMessageList) {
sendMessageList.value = sendMessageList function setSendParmas(payload) {
sendParmas.value = payload
} }
function set_sendMessageList(sendMessageList) {
sendMessageList.value = sendMessageList function setQueuedTimeout(payload) {
queuedTimeout.value = payload
} }
function addSendMessageList(sendMessageList) {
sendMessage = sendMessage || {} // 存储发送的消息到 chatList
console.log("接收发送的消息===", sendMessage); function addSendMessageList(payload = {}) {
console.log('接收发送的消息===', payload)
sendParmas.value = { sendParmas.value = {
token: token.value, token: token.value,
fromFlag: sendMessage.fromFlag || 1, // 1为自己 2为其他 other提示消息 fromFlag: payload.fromFlag || 1, // 1为自己 2为其他 other提示消息
userId: userId.value, userId: userId.value,
sessionId: sessionId.value, sessionId: sessionId.value,
reqAndResType: sendMessage.reqAndResType, // 1文本 2图片 3问提评价 reqAndResType: payload.reqAndResType, // 1文本 2图片 3问提评价
msgType: sendMessage.msgType || '', // msgType: payload.msgType || '',
msgText: sendMessage.msgText, msgText: payload.msgText,
file: sendMessage.file || '', file: payload.file || '',
filename: sendMessage.filename || '', filename: payload.filename || '',
formData: sendMessage.formData || '', formData: payload.formData || '',
source: source.value, source: source.value,
timestamp: sendMessage.timestamp || (new Date()).valueOf(), timestamp: payload.timestamp || new Date().valueOf(),
msgSource: manualService.value, // 1机器人 2人工 msgSource: manualService.value, // 1机器人 2人工
cmd: sendMessage.cmd || '', cmd: payload.cmd || '',
sendLoading: sendMessage.sendLoading, sendLoading: payload.sendLoading,
isSendSuccess: sendMessage.isSendSuccess, isSendSuccess: payload.isSendSuccess,
voiceNo: sendMessage.voiceNo, voiceNo: payload.voiceNo,
quoteData: sendMessage.quoteData || null quoteData: payload.quoteData || null,
} bpErrorContent: payload.bpErrorContent || '', // 电子回访断点服务
console.log("发送消息==", sendParmas.value); }
console.log('发送消息==', sendParmas.value)
timestamp.value = sendParmas.value.timestamp; timestamp.value = sendParmas.value.timestamp
// 存储正在发送的那条数据 // 存储正在发送的那条数据
set_currentItemId(endParmas.timestamp) setCurrentItemId(sendParmas.value.timestamp)
sendParmas.value.bpErrorContent = sendMessage.bpErrorContent || '', // 电子回访断点服务
chatList.value.push(sendParmas.value);
// console.log("消息列表数据1==", chatList);
try {
// localStorage.chatList = JSON.stringify(chatList)
// console.log("addSendMessageList==", chatList); chatList.value.push(sendParmas.value)
} catch (e) {
console.log(e)
}
}
function set_chatList(chatList) {// 消息列表
let normalizedItem = utils.normalizeMessage(chatList);
chatList.value.push(normalizedItem);
try {
// localStorage.chatList = JSON.stringify(chatList)
// console.log("set_chatList==", chatList);
} catch (e) {
console.log(e)
} }
// 消息列表
function setChatList(payload) {
const normalizedItem = utils.normalizeMessage(payload)
chatList.value.push(normalizedItem)
} }
function del_chatList(index) {
function delChatList(index) {
chatList.value.splice(index, 1) chatList.value.splice(index, 1)
} }
function delall_chatList() {
chatList.value.splice(0, chatList.value.length); function delAllChatList() {
chatList.value.splice(0, chatList.value.length)
} }
function del_set_sendFailList(del_Id) {
function delSendFailListById(delId) {
if (sendFailList.value && sendFailList.value.length > 0) { if (sendFailList.value && sendFailList.value.length > 0) {
console.log('未删除前sendFailList===', sendFailList.value.length);
sendFailList.value.forEach((item, index) => { sendFailList.value.forEach((item, index) => {
if (delId === item.timestamp) {
if (del_Id === item.timestamp) {
sendFailList.value.splice(index, 1) sendFailList.value.splice(index, 1)
} }
}); })
console.log('删除后的数据sendFailList==', sendFailList.value.length);
} }
} }
// 存储到消息队列中 // 存储到消息队列中
function set_chatId(chatId) { function setChatId(payload) {
chatId.value.push(chatId); chatId.value.push(payload)
// console.log("存储的消息chatId:", chatId)
} }
function set_currentItemId(currentItemId) {
currentItemId.value = currentItemId; function setCurrentItemId(payload) {
// console.log("存储的消息chatId:", chatId) currentItemId.value = payload
} }
function set_findActiveItem(findActiveItem) {
function setFindActiveItem(findActiveItem) {
if (chatList.value && chatList.value.length > 0) { if (chatList.value && chatList.value.length > 0) {
chatList.value.forEach(item => { chatList.value.forEach((item) => {
if (currentItemId.value == item.timestamp) { if (currentItemId.value == item.timestamp) {
item.isSendSuccess = findActiveItem; item.isSendSuccess = findActiveItem
item.sendLoading = false; item.sendLoading = false
} }
}); })
} }
} }
function set_activeItemExtra(state, data) {
function setActiveItemExtra(data) {
if (chatList.value && chatList.value.length > 0) { if (chatList.value && chatList.value.length > 0) {
chatList.value.forEach(item => { chatList.value.forEach((item) => {
if (currentItemId.value == item.timestamp) { if (currentItemId.value == item.timestamp) {
if (data && data.imgKey) { if (data && data.imgKey) {
Vue.set(item, 'imgKey', data.imgKey); item.imgKey = data.imgKey
} }
if (data && data.imgUrl) { if (data && data.imgUrl) {
Vue.set(item, 'imgUrl', data.imgUrl); item.imgUrl = data.imgUrl
} }
} }
}); })
} }
} }
function set_reSendMessage(state, reSendMessageId) {
if (chatList.value && chatList.value.length > 0) {
function setReSendMessage(reSendMessageId) {
if (chatList.value && chatList.value.length > 0) {
chatList.value.forEach((item, index) => { chatList.value.forEach((item, index) => {
if (reSendMessageId === item.timestamp) { if (reSendMessageId === item.timestamp) {
chatList.value.splice(index, 1) chatList.value.splice(index, 1)
} }
}); })
} }
del_set_sendFailList(reSendMessageId) delSendFailListById(reSendMessageId)
} }
function scrollBottom() { function scrollBottom() {
setTimeout(() => { setTimeout(() => {
try { try {
mescrollContent.value.scrollTop = mescrollContent.value.scrollHeight || 0; mescrollContent.value.scrollTop = mescrollContent.value.scrollHeight || 0
} catch (error) { } catch (error) {
console.log(error.message) console.log(error.message)
} }
}, 500); }, 500)
} }
// 页面是否后台了
function set_isBackstage(isBackstage) { // —— 其他状态 ——
isBackstage.value = isBackstage; function setIsBackstage(payload) {
isBackstage.value = payload
} }
// 存储语音 // 存储语音
function set_VoiceData(payload) { function setVoiceData(payload) {
voiceDataList.value.push(payload); voiceDataList.value.push(payload)
} }
// sdk是否已加载好 // sdk是否已加载好
function set_sdkLoaded(sdkLoaded) { function setSdkLoaded(payload) {
sdkLoaded.value = sdkLoaded; sdkLoaded.value = payload
} }
function set_isBackstage(isBackstage) {
isBackstage.value = isBackstage; function setPcaData(payload) {
pcaData.value = payload
} }
function set_pcaData(payload) { function setChannelReform(payload) {
pcaData.value = payload; channelReform.value = payload
} }
function set_channelReform(payload) {
channelReform.value = payload; function setMsgStatus(payload) {
msgStatus.value = payload
} }
function set_msgStatus(payload) {
msgStatus.value = payload; function setMsgReply(payload) {
msgReply.value = payload
} }
function set_msgReply(payload) {
msgReply.value = payload; function setIsHumanChat(payload) {
isHumanChat.value = payload
} }
function set_isHumanChat(payload) {
isHumanChat.value = payload; function setGaokeUser(payload) {
gaokeUser.value = payload
} }
function set_gaokeUser(payload) {
gaokeUser.value = payload; function setBranchCompany(payload) {
branchCompany.value = payload
} }
function set_branchCompany(payload) {
branchCompany.value = payload; function setHotUser(payload) {
hotUser.value = payload
} }
function set_hotUser(payload) {
hotUser.value = payload; function setHotUserData(payload) {
hotUserData.value = payload
} }
function set_hotUserData(payload) {
hotUserData.value = payload; function setReviewRestricted(payload) {
reviewRestricted.value = payload
} }
function set_reviewRestricted(payload) {
hotUserData.value = payload; function setIntegratedUser(payload) {
integratedUser.value = payload
} }
function set_integratedUser(payload) {
integratedUser.value = payload; function setHxSessionId(payload) {
hxSessionId.value = payload
}
function setShowHumanAppraise(payload) {
showHumanAppraise.value = payload
} }
return { return {
// State
token, token,
userId, userId,
configId, configId,
@ -519,11 +561,13 @@ export const useAppStore = defineStore('app', () => {
planCode, planCode,
entrance, entrance,
elder, elder,
notitle,
userInfo,
sysConfig,
headerAvatar, headerAvatar,
htmlExtParams, htmlExtParams,
complaint, complaint,
navigationCorpus, navigationCorpus,
headerAvatar,
routeAction, routeAction,
direction, direction,
mescrollContent, mescrollContent,
@ -551,7 +595,7 @@ export const useAppStore = defineStore('app', () => {
problemFeedback, problemFeedback,
isBackstage, isBackstage,
sdkLoaded, sdkLoaded,
chatAr, chatArr,
bpErrorInfo, bpErrorInfo,
voiceDataList, voiceDataList,
hxOpenSucceseds, hxOpenSucceseds,
@ -568,33 +612,78 @@ export const useAppStore = defineStore('app', () => {
integratedUser, integratedUser,
showHumanAppraise, showHumanAppraise,
mydFlag, mydFlag,
isBqCalcClaim,
msgReply, msgReply,
hotUserData, hotUserData,
branchCompany,
// Actions
setIsBqCalcClaim, setIsBqCalcClaim,
set_token, setToken,
setSessionId, setSessionId,
set_configId, setConfigId,
set_appentry, setAppentry,
set_bpErrorInfo, setBpErrorInfo,
del_token, delToken,
set_userid, setUserId,
set_source, setSource,
set_notitle, setNotitle,
set_planCode, setElder,
set_entrance, setPlanCode,
set_elder, setEntrance,
set_headerAvatar, setUserInfo,
set_htmlExtParams, setHtmlExtParams,
set_compl, setComplaint,
set_navigationCorpus, setNavigationCorpus,
set_manualService, setManualService,
set_queuedTimeout, setSysConfig,
set_sendLoading, setHeaderAvatar,
set_isSendSuccess, setSendLoading,
set_timestamp, setIsSendSuccess,
set_sendParmas, setQaId,
set_chatList, setProblemFeedback,
set_chatId, setOtherTips,
setLastMessage,
setSendFailList,
setIsLostMessage,
delSendFailList,
delSendFailListById,
setLeaveMessage,
setIsLeaveMessageSuccess,
setMescrollContent,
setSendMessageList,
setReceiveMessageList,
setTts,
setHxOpenSuccesed,
setTimestamp,
setSendParmas,
setQueuedTimeout,
addSendMessageList,
setChatList,
delChatList,
delAllChatList,
setChatId,
setCurrentItemId,
setFindActiveItem,
setActiveItemExtra,
setReSendMessage,
scrollBottom,
setIsBackstage,
setVoiceData,
setSdkLoaded,
setPcaData,
setChannelReform,
setMsgStatus,
setMsgReply,
setIsHumanChat,
setGaokeUser,
setBranchCompany,
setHotUser,
setHotUserData,
setReviewRestricted,
setIntegratedUser,
setHxSessionId,
setShowHumanAppraise,
} }
}) })
export default useAppStore export default useAppStore

@ -0,0 +1,29 @@
import { describe, it, expect } from 'vitest'
import { createPinia, setActivePinia } from 'pinia'
import { useAppStore } from '@/store/index.js'
describe('store/index.js smoke', () => {
it('初始化并调用 camelCase setter', () => {
setActivePinia(createPinia())
const store = useAppStore()
expect(typeof store.setSource).toBe('function')
expect(typeof store.setUserInfo).toBe('function')
expect(typeof store.setSessionId).toBe('function')
store.setSource('95810000')
store.setNotitle('1')
store.setUserInfo({ name: '测试' })
store.setSessionId('sid-1')
store.setChatId('cid-1')
store.setChatList({ msgText: 'hi', timestamp: 1 })
store.addSendMessageList({ reqAndResType: '1', msgText: 'hello' })
expect(store.source).toBe('95810000')
expect(store.notitle).toBe('1')
expect(store.userInfo.name).toBe('测试')
expect(store.sessionId).toBe('sid-1')
expect(store.chatList.length).toBeGreaterThan(0)
expect(store.sendParmas.msgText).toBe('hello')
})
})

@ -816,8 +816,8 @@ export default {
// 触发自定义人工满意度评价弹窗 // 触发自定义人工满意度评价弹窗
console.log('触发自定义人工满意度评价弹窗'); console.log('触发自定义人工满意度评价弹窗');
const hxSessionId = item.hxSessionId const hxSessionId = item.hxSessionId
appStore().set_hxSessionId(hxSessionId); appStore().setHxSessionId(hxSessionId);
appStore().set_showHumanAppraise(true); appStore().setShowHumanAppraise(true);
} else { } else {
if (!appStore().sdkLoaded) { if (!appStore().sdkLoaded) {
console.log('sdk未加载'); console.log('sdk未加载');

@ -25,8 +25,19 @@ import Utils from '@/utils/utils'
// 状态管理 // 状态管理
const store = useAppStore() const store = useAppStore()
const router = useRouter() const router = useRouter()
console.log(store, 'store'); console.log(store, 'store')
const { set_source , set_userInfo, set_notitle , set_configId,set_entrance,set_appentry,set_htmlExtParams,set_complaint, set_navigationCorpus, setSessionId }= store const {
setSource,
setUserInfo,
setNotitle,
setConfigId,
setEntrance,
setAppentry,
setHtmlExtParams,
setComplaint,
setNavigationCorpus,
setSessionId,
} = store
// 响应式数据 // 响应式数据
const isToken = ref(false) const isToken = ref(false)
const isWX = ref(false) const isWX = ref(false)
@ -39,84 +50,84 @@ const source = computed(() => store.source)
// 生命周期 // 生命周期
onMounted(async () => { onMounted(async () => {
var liccsAds = localStorage.getItem("liccsAds"); // 记录用户弹窗提示 var liccsAds = localStorage.getItem('liccsAds') // 记录用户弹窗提示
localStorage.clear(); localStorage.clear()
localStorage.liccsAds = liccsAds || ""; localStorage.liccsAds = liccsAds || ''
//清除session 清除上次的记录 //清除session 清除上次的记录
sessionStorage.clear(); sessionStorage.clear()
urlParams.value = Utils.getUrlParams(); urlParams.value = Utils.getUrlParams()
console.log("txfModules参数", urlParams.value.txfModules); console.log('txfModules参数', urlParams.value.txfModules)
console.log('this.urlParams--', urlParams.value) console.log('this.urlParams--', urlParams.value)
let userInfo = { let userInfo = {
phone: urlParams.value.phone || "", phone: urlParams.value.phone || '',
name: urlParams.value.name || "", name: urlParams.value.name || '',
sex: urlParams.value.sex || "", sex: urlParams.value.sex || '',
openid: urlParams.value.openid || "", openid: urlParams.value.openid || '',
idtype: urlParams.value.idtype || "", idtype: urlParams.value.idtype || '',
pid: urlParams.value.pid || "", pid: urlParams.value.pid || '',
auStatus: urlParams.value.auStatus || "", //实名认证状态 枚举:1、0、其他(1为已认证状态,其他为非认证认证状态) auStatus: urlParams.value.auStatus || '', //实名认证状态 枚举:1、0、其他(1为已认证状态,其他为非认证认证状态)
bdStatus: urlParams.value.bStatus || urlParams.value.bdStatus || "", //老客户绑定状态 1为已绑定状态,其他为非绑定状态 bdStatus: urlParams.value.bStatus || urlParams.value.bdStatus || '', //老客户绑定状态 1为已绑定状态,其他为非绑定状态
bthdate: urlParams.value.bthdate || "", //出生日期 bthdate: urlParams.value.bthdate || '', //出生日期
workNum: urlParams.value.workNum || "", //营销员工号 workNum: urlParams.value.workNum || '', //营销员工号
unit: urlParams.value.unit || "", //单位 unit: urlParams.value.unit || '', //单位
orgname: urlParams.value.orgname || "", //机构名称 orgname: urlParams.value.orgname || '', //机构名称
txfModules: urlParams.value.txfModules || "", //太享福渠道活动与功能显示 txfModules: urlParams.value.txfModules || '', //太享福渠道活动与功能显示
sceneId: urlParams.value.sceneId || "", //场景标识(微信跟随) sceneId: urlParams.value.sceneId || '', //场景标识(微信跟随)
entrance: urlParams.value.entrance || "", // 入口标识 entrance: urlParams.value.entrance || '', // 入口标识
planCode: urlParams.value.planCode || urlParams.value.modelCode || "", //星云渠道产品代码 planCode: urlParams.value.planCode || urlParams.value.modelCode || '', //星云渠道产品代码
// 断点服务 // 断点服务
bpErrorCode: urlParams.value.bErrorCode || urlParams.value.brErrorCode || "", bpErrorCode: urlParams.value.bErrorCode || urlParams.value.brErrorCode || '',
bpErrorContent: urlParams.value.bErrorContent || urlParams.value.errorMsg || "", bpErrorContent: urlParams.value.bErrorContent || urlParams.value.errorMsg || '',
bpErrorModule: urlParams.value.bErrorModule || "", // 电子回访断点服务 bpErrorModule: urlParams.value.bErrorModule || '', // 电子回访断点服务
bpErrorPicture: urlParams.value.bErrorPicture || "", // 微信给付断点服务 bpErrorPicture: urlParams.value.bErrorPicture || '', // 微信给付断点服务
entryIdnum: '', // 查门店证件号加密传参 entryIdnum: '', // 查门店证件号加密传参
entryOpenid: '', // 查门店openid加密传参 entryOpenid: '', // 查门店openid加密传参
userType: urlParams.value.usertype || "", // 95980000渠道(b2bi),说明一下是游客 userType: urlParams.value.usertype || '', // 95980000渠道(b2bi),说明一下是游客
}; }
isWX.value = Utils.isWeiXin(); isWX.value = Utils.isWeiXin()
// set_userInfo(userInfo);//用户信息 // setUserInfo(userInfo);//用户信息
// set_source(urlParams.value.ht || ""); //来源 // setSource(urlParams.value.ht || ""); //来源
// set_notitle(urlParams.value.notitle || ""); //是否展示头部 // setNotitle(urlParams.value.notitle || ""); //是否展示头部
// set_configId(urlParams.value.configId || ""); //环信参数 // setConfigId(urlParams.value.configId || ""); //环信参数
// set_entrance(urlParams.value.entrance || ""); //入口标识 // setEntrance(urlParams.value.entrance || ""); //入口标识
// set_appentry(urlParams.value.appentry || ""); // 是否为老版本app // setAppentry(urlParams.value.appentry || ""); // 是否为老版本app
// set_htmlExtParams(urlParams.value.htmlExtParams || ""); //扩展参数 // setHtmlExtParams(urlParams.value.htmlExtParams || ""); //扩展参数
// set_complaint(urlParams.value.complaint || ""); //扩展参数 // setComplaint(urlParams.value.complaint || ""); //扩展参数
// set_navigationCorpus(urlParams.value.navigationCorpus || ""); //扩展参数 // setNavigationCorpus(urlParams.value.navigationCorpus || ""); //扩展参数
// 渠道校验 // 渠道校验
let checkToast = null; let checkToast = null
try { try {
checkToast = showLoadingToast({ checkToast = showLoadingToast({
message: "加载中...", message: '加载中...',
duration: 0, duration: 0,
loadingType: "spinner", loadingType: 'spinner',
forbidClick: true, forbidClick: true,
}); })
const checkRes = await Post("config/downSource", { const checkRes = await Post('config/downSource', {
source: urlParams.value.ht || "95810000" source: urlParams.value.ht || '95810000',
}); })
checkToast.clear(); checkToast.clear()
if (checkRes.code === 0 && checkRes.data !== null) { if (checkRes.code === 0 && checkRes.data !== null) {
Dialog.alert({ Dialog.alert({
title: "提示", title: '提示',
message: checkRes.data.toast, message: checkRes.data.toast,
confirmButtonText: "确定" confirmButtonText: '确定',
}).then(res => { }).then((res) => {
Utils.closeWindow(); Utils.closeWindow()
}); })
return; return
} }
} catch (error) { } catch (error) {
console.log("渠道校验异常:", error); console.log('渠道校验异常:', error)
// if (checkToast) { // if (checkToast) {
// checkToast.clear(); // checkToast.clear();
// } // }
@ -185,15 +196,15 @@ const getToken = async () => {
params.userId = decodeURIComponent(urlParams.value.appTicket).replace(/ /g, '+') params.userId = decodeURIComponent(urlParams.value.appTicket).replace(/ /g, '+')
} }
showLoadingToast({ message: '加载中...', duration: 0, loadingType: 'spinner', forbidClick: true }) showLoadingToast({ message: '加载中...', duration: 0, loadingType: 'spinner', forbidClick: true })
console.log('Post', Post); console.log('Post', Post)
try { try {
const res = await Post('user/info', params) const res = await Post('user/info', params)
console.log('res', res); console.log('res', res)
// await Post('user/info', params) // await Post('user/info', params)
// closeToast() // closeToast()
return res return res
} catch (error) { } catch (error) {
console.log('error', error); console.log('error', error)
// closeToast() // closeToast()
throw error throw error
} }

Loading…
Cancel
Save