新增 components/ai-brief-card/ai-brief-card.vue:卡片 + 全文底部弹层(page-container + v-if 拦截返回键),每日首弹用 storage 按天记录;模板遵守小程序限制(无 ?./??、无 :class 函数调用)。
工作台页面挂载卡片并接入 refreshWorkbenchData,组件内部按「门店+日期」去重——页面 onShow 反复触发也只拉一次,切店/跨天自动重拉(跨天首次会重新生成并触发新一天的首弹)。
54 lines
1.1 KiB
JavaScript
54 lines
1.1 KiB
JavaScript
import Vue from 'vue'
|
||
import Vuex from 'vuex'
|
||
import { disconnectWebSocket } from '@/utils/ws/initWebSocket.js';
|
||
|
||
Vue.use(Vuex)
|
||
const store = new Vuex.Store({
|
||
state: {
|
||
utils: null,
|
||
docSession: [], //医生首页消息会话列表
|
||
},
|
||
mutations: {
|
||
SET_DOCSESSION(state, res) {
|
||
state.docSession = res;
|
||
},
|
||
},
|
||
actions: {
|
||
/**
|
||
* 登出
|
||
* 职责:断开WebSocket连接,清理状态
|
||
*/
|
||
logout({
|
||
state,
|
||
dispatch
|
||
}) {
|
||
dispatch('closeWebSocket');
|
||
},
|
||
|
||
/**
|
||
* 初始化(保留用于其他初始化逻辑)
|
||
* 注意:WebSocket初始化已在App.vue中统一处理
|
||
*/
|
||
init({
|
||
state,
|
||
dispatch
|
||
}) {
|
||
// WebSocket初始化已移至App.vue,这里保留其他初始化逻辑
|
||
// state.utils = new Utils()
|
||
// 获取会话列表
|
||
// dispatch('getSessionList')
|
||
},
|
||
|
||
/**
|
||
* 关闭WebSocket
|
||
* 职责:断开WebSocket连接
|
||
*/
|
||
closeWebSocket() {
|
||
disconnectWebSocket();
|
||
},
|
||
// 老 getConsult(Yii register/list 轮询挂号列表)已随接口迁移 xk-api 一并移除:
|
||
// 挂号列表页自身分页拉取(patient-list),无页面消费该全局状态
|
||
}
|
||
})
|
||
export default store
|