merchapp/java-mall-app-shop-admin/store/modules/user.js
2025-06-24 18:44:20 +08:00

342 lines
10 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { GetAuditInfo, GetAuditStatus } from "../../api/audit";
import { GetAccountLogin, GetLogin } from "../../api/login";
import { OutLogin } from "../../api/user";
import $Socket from "../../utils/socket";
import Vue from "vue";
// import $cookies from '../../utils/vue-cookies'
const defaultState = () => {
return {
userInfo: uni.getStorageSync("userInfo") || {},
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"),
socket: {},
getMsg: {},
imWeidu: {},
};
};
const state = defaultState();
const getters = {};
const mutations = {
GET_LOGIN(state, { userInfo, auditStatusInfo }) {
state.userInfo = userInfo;
state.auditStatusInfo = auditStatusInfo;
},
LOGIN_OUT(state) {
state.userInfo = {};
state.uid = "";
state.ukey = "";
state.auditStatusInfo = {
approval_invalid_col: [],
approval_status: -4,
approval_remark: "",
id: 0,
};
state.approvalStatus = "";
state.socket = {};
state.getMsg = {};
state.imWeidu = {};
},
CONNECT_SOCKET(state, { socket }) {
state.socket = socket;
},
GET_IM_MSG(state, { msg }) {
state.getMsg = msg;
var im = {};
let _imWeiDu = uni.getStorageSync("imWeiDu");
if (_imWeiDu) {
im = _imWeiDu;
}
if (!im[msg.id]) {
im[msg.id] = { weidu: 0 };
}
im[msg.id].weidu += 1;
im.userId = state.userInfo.user_id;
state.imWeidu = im;
uni.setStorageSync("imWeiDu", im);
},
REMOVE_IM_KEY(state, imId) {
Vue.delete(state.imWeidu, imId);
let imWeiDu = uni.getStorageSync("imWeiDu");
if (!imWeiDu && !imWeiDu[imId]) return;
delete imWeiDu[imId];
uni.setStorageSync("imWeiDu", imWeiDu);
},
};
const actions = {
async GetAccountLogin({ dispatch }, 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 userInfo = res.data;
await dispatch("checkAccountIsPass", {
mobile: mobile,
userInfo: userInfo,
});
uni.setStorageSync("uid", res.data.user_id);
uni.setStorageSync("ukey", res.data.key);
uni.setStorageSync("userInfo", res.data);
}
},
async GetLogin({ dispatch }, 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 userInfo = res.data;
uni.setStorageSync("uid", res.data.user_id);
uni.setStorageSync("ukey", res.data.key);
uni.setStorageSync("userInfo", res.data);
await dispatch("checkAccountIsPass", {
mobile: mobile,
userInfo: userInfo,
});
await dispatch("connectSocket", res.data);
}
},
async LoginOut({ commit }, isTokenExpires) {
if (isTokenExpires) {
await OutLogin();
uni.removeStorageSync("ukey");
uni.removeStorageSync("uid");
uni.removeStorageSync("accountDashboard");
uni.removeStorageSync("approvalStatus");
uni.removeStorageSync("auditInfo");
uni.removeStorageSync("auditId");
uni.removeStorageSync("contractDownloadUrl");
uni.removeStorageSync("pdfjs.history");
uni.removeStorageSync("userInfo");
uni.removeStorageSync("typeItem");
uni.removeStorageSync("locationItem");
uni.removeStorageSync("district_data");
uni.removeStorageSync("auditItem");
commit("LOGIN_OUT");
uni.redirectTo({
url: "/pages/login/login",
});
return;
}
uni.showModal({
title: "退出登录",
content: `您是否要退出登录?`,
success: async (res) => {
if (res.confirm) {
await OutLogin();
uni.removeStorageSync("ukey");
uni.removeStorageSync("uid");
uni.removeStorageSync("accountDashboard");
uni.removeStorageSync("approvalStatus");
uni.removeStorageSync("auditInfo");
uni.removeStorageSync("auditId");
uni.removeStorageSync("contractDownloadUrl");
uni.removeStorageSync("pdfjs.history");
uni.removeStorageSync("userInfo");
commit("LOGIN_OUT");
uni.redirectTo({
url: "/pages/login/login",
});
} else if (res.cancel) {
}
},
});
},
async checkAccountIsPass({ commit }, { mobile, userInfo }) {
let res = await GetAuditStatus({ mobile: mobile });
if (res && res.status == 200) {
const auditStatusInfo = res.data;
commit("GET_LOGIN", { userInfo, auditStatusInfo });
const lastIM = uni.getStorageSync("imWeiDu");
if (lastIM) {
if (lastIM.userId != userInfo.user_id) {
uni.removeStorageSync("imWeiDu");
}
}
let {
approval_status,
store_status ,
has_ec_signed,
has_apply_mer,
has_apply_split,
has_apply_receiver,
has_bind_receiver
}
= res.data;
//2-未通过3-待审核4-未申请过5-已提交审核; 21 拉卡拉审核未通过
if ([2, 3, 5, 21].includes(approval_status)) {
uni.navigateTo({
url: "/pages/audit/checkAudit",
});
return;
}
if (approval_status == 4) {
uni.navigateTo({
url: "/pages/audit/shop1",
});
return;
}
// 1.
// 合同签署待办
// 触发条件approval_status=5 且 has_ec_signed=2 且 lkl_ec_result_url 非空
// 页面显示:
// 操作按钮:签署合同(跳转至拉卡拉签约页)
// 提示信息:"您的入驻材料已通过审核,请于 24 小时内完成合同签署(超时需重新提交),以便继续完成入驻流程"
// 2.
// 合同签署结果
// 成功状态approval_status=5 且 has_ec_signed=1 且 has_apply_mer=2
// 提示信息:"合同签署完成,商家信息正在提交审核,请耐心等待"
// 失败状态approval_status=21||2 且 has_ec_signed=2
// 操作按钮联系管理员IM
// 提示信息:"合同签署异常,请联系客服协助处理"
// 3.
// 商家进件审核结果
// 成功状态approval_status=5 且 has_apply_mer=1 且 store_status=2
// 操作按钮:创建店铺
// 提示信息:"商家资质审核通过,系统正在初始化店铺,请稍后操作"
// 失败状态approval_status=21||2 且 has_apply_mer=2 且 has_ec_signed=1
// 操作按钮联系管理员IM
// 提示信息:"商家进件审核未通过,请联系客服获取详情"
// 4.
// 店铺创建结果
// 成功状态approval_status=5 且 has_apply_mer=1 且 store_status=1 且 has_apply_split=2
// 提示信息:"店铺创建成功,系统正在处理分账业务申请"
// 失败状态approval_status=21/2 且 has_apply_mer=1 且 store_status=2
// 操作按钮联系管理员IM
// 提示信息:"店铺初始化失败,请联系客服处理"
// 5.
// 分账业务申请结果
// 成功状态approval_status=5 且 store_status=1 且 has_apply_split=1 且 has_bind_receiver=2
// 提示信息:"分账业务申请已通过,系统正在处理接收方绑定"
// 失败状态approval_status=21||2 且 has_apply_split=2 且 store_status=1
// 操作按钮联系管理员IM
// 提示信息:"分账业务审核未通过,请联系客服获取详情"
// 6.
// 分账接收方绑定结果
// 成功状态approval_status=1||5 且 has_apply_split=1 且 has_bind_receiver=1
// 提示信息:"分账接收方绑定成功,入驻流程即将完成"
// 失败状态approval_status=21||2 且 has_bind_receiver=2 且 has_apply_split=1
// 操作按钮联系管理员IM
// 提示信息:"分账接收方审核未通过,请联系客服处理"
// 7.
// 入驻完成
// 触发条件approval_status=1 且 has_ec_signed=1 且 has_apply_mer=1 且 store_status=1 且 has_apply_split=1 且 has_bind_receiver=1
// 提示信息:"恭喜您,入驻流程已全部完成!"
if(store_status == 2
|| has_ec_signed == 2
|| has_apply_mer == 2
|| has_apply_split == 2
|| has_apply_receiver == 2
|| has_bind_receiver == 2
&& approval_status == 1
){
uni.navigateTo({
url: "/pages/audit/checkAudit",
});
return;
}
// store_status int '店铺创建状态1-已启用入驻已审批合同已生成2-未启用',
if (approval_status == 1 && store_status == 1 && has_ec_signed == 1&& has_apply_mer == 1&& has_apply_split == 1&& has_ec_signed == 1&&has_apply_receiver==1&&has_bind_receiver==1) {
let result = await GetAuditInfo({ mobile: mobile });
uni.setStorageSync(
"contractDownloadUrl",
result.data.contract_download_url
);
uni.setStorageSync("auditId", result.data.id);
uni.setStorageSync("auditInfo", result.data);
uni.switchTab({
url: "/pages/order/order",
});
return;
}
}
},
connectSocket({ commit }, userInfo) {
if (!userInfo) return;
var socket = new $Socket({
url: userInfo.im.node_site_url,
maxInterValCount: 5,
interValTime: 20000,
onClose: (res) => {
console.log("sockrt关闭");
},
onOpen: (res) => {
console.log("sockrt连接成功");
},
onMsg: (res) => {
console.log("onMsg", res);
if (res) {
let msg = JSON.parse(res.data);
commit("GET_IM_MSG", { msg });
}
},
});
socket.connectserver(userInfo.im);
commit("CONNECT_SOCKET", { socket });
},
};
export default {
namespaced: true,
state,
getters,
mutations,
actions,
};