You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
shop-admin/src/store/modules/system/customer.js

64 lines
1.8 KiB

import * as api from '@/api/system/customer.js';
import { ElMessage } from '@/plugins/element-plus';
const state = () => ({
code: 'CustomerManagement',
condition: {},
list: [],
total: 0,
opts: {
init: false,
gender: [
{ label: '男', value: 1 },
{ label: '女', value: 2 },
],
},
});
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 };
if (data.dateRange?.length) {
data.registeredStartTime = data.dateRange[0];
data.registeredEndTime = data.dateRange[1];
}
delete data.dateRange;
let res = await api.search({ ...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 ({ state, commit }) => {
commit('setOpts', {
...state.opts,
init: true,
});
},
enable: async ({ dispatch }, data) => {
let res = await api.enable(data);
if (res) {
ElMessage.success((data.isEnable ? '启用' : '禁用') + '成功');
dispatch('search');
} else {
ElMessage.error((data.isEnable ? '启用' : '禁用') + '失败');
}
},
};
export default {
state,
getters,
mutations,
actions,
};