import { ref, reactive } from 'vue' import { v4 } from 'uuid' import { sessionData } from '@/stores' import { initBaseData } from '@/business/common' import { login, queryLoginId } from '@/services/api/account' import cryptojs from 'crypto-js' import eventBus from '@/services/bus' export function useSign() { const loading = ref(false); const user = reactive({ LoginID: '1000', LoginPWD: '123456', GUID: v4(), LoginType: 0, ClientType: 4, Version: '2.0.0.0', DeviceID: '' }) // 用户注册 const signUp = () => { console.log('用户注册') } // 用户登录 const signIn = () => { loading.value = true return new Promise((resolve, reject) => { queryLoginId({ data: { username: user.LoginID }, success: (res) => { login({ data: { ...user, LoginID: res.data, LoginPWD: cryptojs.SHA256(res.data + user.LoginPWD).toString(), }, success: (res) => { sessionData.setValue('loginInfo', res); initBaseData(() => { loading.value = false; resolve(res); }).catch((err) => { loading.value = false; reject(err); }) }, fail: (err) => { loading.value = false; reject(err); } }) }, fail: (err) => { loading.value = false; reject(err); } }) }) } // 用户登出 const signOut = () => { eventBus.$emit('LogoutNotify'); } return { loading, user, signUp, signIn, signOut, } }