/* * @Author: ch * @Date: 2022-06-07 15:41:05 * @LastEditors: ch * @LastEditTime: 2022-06-14 14:59:41 * @Description: file content */ import * as api from '@/api/chat'; import dayjs from 'dayjs'; const state = { curCustomerService: {}, sessionData: [], customerServiceList: [], messageType: { 1: 'text', 2: 'audio', 3: 'image', 4: 'video', 5: 'revoke', 6: 'custom', 7: 'notify' }, opts: { customerServiceType: [ { label: '售前', value: 1, }, { label: '售后', value: 2, }, { label: '发货', value: 3, }, ], }, }; const getters = { parseTime: () => { return (timestamp) => { dayjs(new Date(timestamp)).format('MM-DD HH:mm:ss'); }; }, parseText: () => { return ({ payload, type }) => { if (type === 2) { payload = '[语音]'; } else if (type === 3) { payload = '[图片]'; } else if (type === 4) { payload = '[视频]'; } else if (type === 5) { payload = '[撤回消息]'; } else if (type === 6 || type === 1) { if (payload.customType === 'transferWaiterSession') { let str = `${payload.fromNickname}将会话转移给了${payload.toNickname}`; if (payload.reason) { str += `,并留言:${payload.reason}`; } payload = str; } else { try { // payload = JSON.parse(payload.value); if ('text' in payload) { payload = payload.text; } else if ('linkJump' in payload) { payload = '[超链接]'; } else if ('orderNo' in payload) { payload = '[订单信息]'; } else if ('productImageUrl' in payload) { payload = '[商品信息]'; } else { payload = '[未知数据]'; } } catch (e) { payload = '[解析异常]'; } } } else if (type === 7) { payload = payload.text; } else { payload = '[未知类型]'; } return payload; }; }, parseImage: () => { return (payload) => { try { // payload = JSON.parse(payload); if ('url' in payload) { payload = payload.url; } else { payload = '[未知图片]'; } } catch (e) { payload = '[解析异常]'; } return payload; }; }, parseVideo: () => { return (payload) => { try { // payload = JSON.parse(payload); if ('url' in payload) { payload = payload.url; } else { payload = '[未知视频]'; } } catch (e) { payload = '[解析异常]'; } return payload; }; }, parseContent: () => { return (payload) => { if (payload.customType === 'transferWaiterSession') { payload.type = 'transferWaiterSession'; } else { try { // payload = JSON.parse(payload); if ('linkJump' in payload) { payload.type = 'link'; } else if ('orderNo' in payload) { payload.type = 'order'; } else if ('productImageUrl' in payload) { payload.type = 'product'; } else { payload = '[未知消息]'; } } catch (e) { payload = '[解析异常]'; } } return payload; }; }, }; const mutations = { SET_CUR_SERVICE(state, data) { state.curCustomerService = data || {}; }, SET_SESSION_DATA(state, data) { state.sessionData = data; }, SET_SERVICE_LIST(state, data) { state.customerServiceList = data; }, }; const actions = { queryCurCustomerService: ({ commit }) => { api.getCustomerService().then((res) => { commit('SET_CUR_SERVICE', res); }); }, /** * 查询可转移客服列表 */ queryCustomerService: ({ commit }) => { api.customerServiceList({ length: 100, pageIndex: 1, }).then((res) => { commit('SET_SERVICE_LIST', res.records); }); }, /** * 提交转移会话 */ submitTransferSession: ({}, data) => { return api .transferCustomerService({ storeId: 1, ...data, }) .then((res) => { console.log(res, 'resresres'); }); }, }; export default { state, getters, mutations, actions, };