merchapp/java-mall-app-shop-admin/store/modules/user.js
2025-05-08 16:30:21 +08:00

203 lines
5.4 KiB
JavaScript

import { GetLogin, GetSmsCode, GetAccountLogin } from '../../api/login';
import { GetAuditStatus } from '../../api/audit';
// import $cookies from '../../utils/vue-cookies'
const defaultState = () => {
return {
userInfo: uni.getStorageSync('userInfo') || {
user_mobile: '',
},
uid: uni.getStorageSync('uid') || '',
ukey: uni.getStorageSync('ukey') || '',
auditStatusInfo: uni.getStorageSync('auditStatusInfo') || {
approval_invalid_col: [],
approval_status: -4,
approval_remark: '',
id: 0,
},
approvalStatus: uni.getStorageSync('approvalStatus'),
};
};
const state = defaultState();
const getters = {};
const mutations = {
GET_LOGIN(state, { userInfo, auditStatusInfo }) {
state.userInfo = userInfo;
state.auditStatusInfo = auditStatusInfo;
},
};
const actions = {
async GetAccountLogin({ commit }, params) {
const res = await GetAccountLogin(params);
if (res && res.status == 200) {
let mobile = '';
let isContain = res.data.user_mobile.indexOf('86');
if (isContain != -1 && res.data.user_mobile.length > 11) {
mobile = res.data.user_mobile.slice(2);
} else {
mobile = res.data.user_mobile;
}
const result = await GetAuditStatus({ mobile: mobile });
if (result && result.status == 200) {
res.data.merch_approval_status = result.data.approval_status;
}
const userInfo = res.data;
const auditStatusInfo = result.data;
commit('GET_LOGIN', { userInfo, auditStatusInfo });
uni.setStorageSync('uid', res.data.user_id);
uni.setStorageSync('ukey', res.data.key);
uni.setStorageSync('userInfo', res.data);
// #ifdef H5
$cookies.set('uid', res.data.user_id);
$cookies.set('ukey', res.data.key);
// #endif
// 如果是管理员 或者 通过的商家直接登录
if (res.data.user_is_admin == 1 || result.data.signed_status == 2) {
uni.switchTab({
url: '/pages/order/order',
});
return;
}
if ([1, 2, 3].includes(result.data.approval_status)) {
uni.navigateTo({
url: '/pages/audit/checkAudit',
});
return;
}
let approval_invalid_col = JSON.parse(result.data.approval_invalid_col);
if (
result.data.approval_status == 4 ||
approval_invalid_col.includes('all')
) {
uni.navigateTo({
url: '/pages/audit/shop1',
});
}
}
},
async GetLogin({ commit }, params) {
const res = await GetLogin(params);
if (res && res.status == 200) {
let mobile = '';
let isContain = res.data.user_mobile.indexOf('86');
if (isContain != -1 && res.data.user_mobile.length > 11) {
mobile = res.data.user_mobile.slice(2);
} else {
mobile = res.data.user_mobile;
}
const result = await GetAuditStatus({ mobile: mobile });
if (result && result.status == 200) {
res.data.merch_approval_status = result.data.approval_status;
}
const userInfo = res.data;
const auditStatusInfo = result.data;
commit('GET_LOGIN', { userInfo, auditStatusInfo });
uni.setStorageSync('uid', res.data.user_id);
uni.setStorageSync('ukey', res.data.key);
uni.setStorageSync('userInfo', res.data);
// // #ifdef H5
// $cookies.set("uid", res.data.user_id);
// $cookies.set("ukey", res.data.key);
// // #endif
// 如果是管理员 或者 通过的商家直接登录
if (res.data.user_is_admin == 1 || result.data.signed_status == 2) {
uni.switchTab({
url: '/pages/order/order',
});
return;
}
if ([1, 2, 3].includes(result.data.approval_status)) {
uni.navigateTo({
url: '/pages/audit/checkAudit',
});
return;
}
let approval_invalid_col = JSON.parse(result.data.approval_invalid_col);
if (
result.data.approval_status == 4 ||
approval_invalid_col.includes('all')
) {
uni.navigateTo({
url: '/pages/audit/shop1',
});
}
}
},
LoginOut() {
uni.showModal({
title: '退出登录',
content: `您是否要退出登录?`,
success: async (res) => {
if (res.confirm) {
let res = await OutLogin();
if (res && res.status == 200) {
uni.removeStorageSync('ukey');
uni.removeStorageSync('uid');
uni.removeStorageSync('accountDashboard');
uni.removeStorageSync('approvalStatus');
uni.removeStorageSync('approvalStatusInfo');
uni.removeStorageSync('auditInfo');
uni.removeStorageSync('contractDownloadUrl');
uni.removeStorageSync('pdfjs.history');
uni.removeStorageSync('userInfo');
this.$store.state.user.ukey = '';
this.$store.state.user.uid = '';
this.$store.state.user.auditStatusInfo = {
approval_invalid_col: [],
approval_status: -4,
approval_remark: '',
id: 0,
};
setTimeout(() => {
uni.redirectTo({
url: '/pages/index/index',
});
}, 100);
}
} else if (res.cancel) {
}
},
});
},
};
export default {
namespaced: true,
state,
getters,
mutations,
actions,
};