import * as api from '@/api/im/index.js'; import { ElMessage, ElMessageBox } from '@/plugins/element-plus'; const state = () => ({ code: 'ImWaiter', condition: {}, list: [], total: 0, opts: { init: false, store: [], }, }); const getters = {}; const mutations = { setCode: (state, data) => (state.code = data), setCondition: (state, data) => (state.condition = data), setList: (state, data) => (state.list = data), setTotal: (state, data) => (state.total = data), setOpts: (state, data) => (state.opts = data), }; const actions = { search: async ({ state, commit, rootGetters }) => { let data = { ...state.condition }; let res = await api.searchWaiter({ ...rootGetters['local/page'](state.code), ...data }); if (res) { commit('setList', res.records); commit('setTotal', res.total); } else { ElMessage.error('查询失败'); commit('setList', []); } return res; }, load: async ({ commit }) => { commit('setOpts', { init: true, store: (await api.searchStore({ pageIndex: 1, length: 9999 }))?.records || [], }); }, save: async ({ state, dispatch }, data) => { if (data.id) { data.systemId = state.condition.systemid; } let save = data.id ? api.updateWaiter : api.createWaiter; let res = await save(data); if (res) { ElMessage.success('保存成功'); dispatch('search'); } else { ElMessage.error('保存失败'); } return res; }, remove: async ({ dispatch }, data) => { if (!data.waiterIds.length) { ElMessage.warning('请选择要删除的数据'); } else { try { await ElMessageBox.confirm('数据删除后无法恢复,确定要删除吗?', '危险操作'); let res = await api.removeWaiter(data); if (res) { ElMessage.success('删除成功'); dispatch('search'); } else { ElMessage.error('删除失败'); } } catch (e) { console.info('取消删除', e); } } }, }; export default { state, getters, mutations, actions, };