| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339 |
- import storage from "@/utils/storage";
- import { getToken, setToken, removeToken } from "@/utils/auth";
- import { defineStore } from "pinia";
- // 接口引用
- import { login, logout, getInfo, getMobileTenantConfig, getCodeImg } from "@/api/login";
- import { getUserProfile, appAdd, appDel } from "@/api/system/user";
- import { phoneVerify } from "@/api/common/index.js";
- // 组件引用
- import modal from "@/plugins/modal.plugins.js";
- const useStores = defineStore("useStores", {
- state: () => ({
- token: getToken(),
- name: storage.get("name"),//用户名称
- nickName: storage.get("nickName"),//用户昵称
- phonenumber: storage.get("phonenumber"),//用户手机号
- avatar: storage.get("avatar"),
- roles: storage.get("roles"),
- permissions: storage.get("permissions"),
- loginTitle: storage.get("loginTitle"),
- loginBottomTitle: storage.get("loginBottomTitle"),
- loginBg: storage.get("loginBg"),
- loginLogo: storage.get("loginLogo"),
- tenantId: storage.get("tenantId"),
- user: {},
- userArr: {},
- postGroup: "", //岗位
- roleGroup: "", //角色
- codeTime: 0,//验证码倒计时
- codeTimeInterval: null,//验证码倒计时定时器
- }),
- persist: {
- // 自定义数据持久化方式
- // key: 'store-key', 指定key进行存储,此时非key的值不会持久化,刷新就会丢失
- storage: window ? window.localStorage : uni.setStorageSync(), // 指定换成地址
- // paths: ['nested.data'],// 指定需要持久化的state的路径名称
- beforeRestore: (context) => {
- // console.log("Before" + context);
- },
- afterRestore: (context) => {
- // console.log("After" + context);
- },
- },
- actions: {
- // 登录
- Login(data) {
- // const modal = inject("$modal");
- return new Promise((resolve, reject) => {
- login(data)
- .then((res) => {
- this.SET_TOKEN(res.data.access_token)
- setToken(res.data.access_token);
- this.codeTime = 0
- resolve();
- })
- .catch((error) => {
- modal.closeLoading();
- modal.msg(error);
- reject(error);
- });
- });
- },
- //获取登录页数据
- GetMobileTenantConfig(params) {
- getMobileTenantConfig(params).then((res) => {
- if (res.data.length > 0) {
- let data = res.data[0];
- this.SET_LOGINMOBILELIST({
- loginTitle: data.loginTitle,
- loginBottomTitle: data.loginFooter,
- loginBg: data.loginBackUrl,
- loginLogo: data.loginLogo,
- tenantId: data.tenantId,
- })
- }
- });
- },
- // 获取用户信息
- getUser() {
- getUserProfile().then((response) => {
- this.user = response.data.user;
- this.userArr = JSON.parse(JSON.stringify(response.data.user));
- this.postGroup = response.postGroup;
- this.roleGroup = response.roleGroup;
- });
- },
- // 获取用户信息
- GetInfo() {
- return new Promise((resolve, reject) => {
- getInfo()
- .then((res) => {
- var data = res.data;
- if (data.roles && data.roles.length > 0) {
- this.SET_ROLES(data.roles);
- this.SET_PERMISSIONS(data.permissions);
- } else {
- this.SET_ROLES(["ROLE_DEFAULT"]);
- }
- this.SET_NAME(data.user.userName);
- this.SET_NICKNAME(data.user.nickName);
- this.SET_PHONE(data.user.phonenumber);
- this.SET_AVATAR(data.user.avatar);
- resolve(res);
- })
- .catch((error) => {
- modal.msgError(error);
- reject(error);
- });
- });
- },
- /**
- * @获取手机验证码
- * @param { 手机号 } phone
- * @param { 成功 } success
- * @param { 失败 } error
- */
- GetCodeImg({ phone, success, error }) {
- if (!phone) {
- modal.msg("请输入手机号");
- return;
- }
- if (!/^1(?:3\d|4[4-9]|5[0-35-9]|6[67]|7[013-8]|8\d|9\d)\d{8}$/.test(phone)) {
- modal.msg("请输入正确的手机号");
- return;
- }
- if (this.codeTime > 0) {
- modal.msg("不能重复获取");
- return;
- } else {
- modal.loading("加载中");
- getCodeImg({
- phone: phone,
- }).then((res) => {
- if (res.status === "SUCCESS") {
- success(res)
- modal.closeLoading();
- } else {
- error(res)
- }
- });
- this.codeTime = 60;
- this.SetInterval("codeTime");
- }
- },
- // 手机验证码倒计时定时器
- SetInterval(key) {
- if (this.codeTimeInterval) {
- clearInterval(this.codeTimeInterval);
- }
- this.codeTimeInterval = setInterval(() => {
- this[key]--;
- if (this[key] < 1) {
- clearInterval(this.codeTimeInterval);
- this[key] = 0;
- }
- }, 1000);
- },
- /**
- * @手机验证码校验
- * @param { 数据 } data
- * @param { 成功 } success
- * @param { 失败 } error
- */
- PhoneVerify({ data, success, error }) {
- if (!data.phone) {
- modal.msg("请输入手机号");
- return;
- }
- if (!/^1(?:3\d|4[4-9]|5[0-35-9]|6[67]|7[013-8]|8\d|9\d)\d{8}$/.test(data.phone)) {
- modal.msg("请输入正确的手机号");
- return;
- }
- if (!data.verify) {
- modal.msg("请输入验证码");
- return;
- }
- phoneVerify({
- phone: data.phone,
- verify: data.verify,
- }).then((res) => {
- if (res.status === "SUCCESS") {
- success(res)
- } else {
- error(res)
- }
- modal.closeLoading();
- });
- },
- /**
- * @注册
- * @param { 数据 } data
- * @param { 成功 } success
- * @param { 失败 } error
- */
- UserAdd({ data, success, error }) {
- if (!data.nickName) {
- modal.showToast("昵称不能为空");
- return;
- }
- if (!data.newPassword) {
- modal.showToast("新密码不能为空");
- return;
- }
- if (data.newPassword.length < 6 && data.newPassword.length > 20) {
- modal.showToast("长度在 6 到 20 个字符");
- return;
- }
- if (!data.confirmPassword) {
- modal.showToast("确认密码不能为空");
- return;
- }
- if (data.confirmPassword != data.newPassword) {
- modal.showToast("两次输入的密码不一致");
- return;
- }
- modal.loading("加载中");
- appAdd({
- tenantId: this.tenantId,
- nickName: data.nickName,
- phonenumber: data.phone,
- userName: data.phone,
- status: "0",
- password: data.newPassword,
- }).then((res) => {
- if (res.status === "SUCCESS") {
- success(res)
- modal.closeLoading();
- }
- })
- },
- UserDel({ data, success, error }) {
- modal.loading("加载中");
- appDel(data).then((res) => {
- if (res.status === "SUCCESS") {
- success(res)
- modal.closeLoading();
- }
- })
- },
- // 退出系统
- LogOut() {
- return new Promise((resolve, reject) => {
- logout()
- .then(() => {
- this.SET_TOKEN("");//清空token
- this.SET_ROLES([]);
- this.SET_PERMISSIONS([]);
- this.SET_LOGINMOBILELIST({
- loginTitle: "",
- loginBottomTitle: "",
- loginBg: "",
- loginLogo: "",
- tenantId: "",
- });//清空登录页数据
- removeToken();
- storage.clean();
- resolve();
- })
- .catch((error) => {
- modal.msgError(error);
- reject(error);
- });
- });
- },
- SET_TOKEN(token) {
- this.token = token;
- },
- SET_NAME(name) {
- this.name = name;
- storage.set("name", name);
- },
- SET_NICKNAME(nickName) {
- this.nickName = nickName;
- storage.set("nickName", nickName);
- },
- SET_PHONE(phonenumber) {
- this.phonenumber = phonenumber;
- storage.set("phonenumber", phonenumber);
- },
- SET_AVATAR(avatar) {
- this.avatar = avatar;
- storage.set("avatar", avatar);
- },
- SET_ROLES(roles) {
- this.roles = roles;
- storage.set("roles", roles);
- },
- SET_PERMISSIONS(permissions) {
- this.permissions = permissions;
- storage.set("permissions", permissions);
- },
- SET_LOGINMOBILELIST(loginMobileList) {
- //title
- this.loginTitle = loginMobileList.loginTitle
- storage.set("loginTitle", loginMobileList.loginTitle);
- //bottomTitle
- this.loginBottomTitle = loginMobileList.loginBottomTitle
- storage.set("loginBottomTitle", loginMobileList.loginBottomTitle);
- //bg
- this.loginBg = loginMobileList.loginBg
- storage.set("loginBg", loginMobileList.loginBg);
- //logo
- this.loginLogo = loginMobileList.loginLogo
- storage.set("loginLogo", loginMobileList.loginLogo);
- //tenantId
- this.tenantId = loginMobileList.tenantId
- storage.set("tenantId", loginMobileList.tenantId);
- }
- },
- });
- export default useStores;
|