Skip to content

Commit 625b4d6

Browse files
feat: chat
1 parent 336d77f commit 625b4d6

File tree

4 files changed

+107
-105
lines changed

4 files changed

+107
-105
lines changed

ui/src/layout/layout-header/avatar/ResetPassword.vue

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -83,23 +83,23 @@
8383
</el-dialog>
8484
</template>
8585
<script setup lang="ts">
86-
import {ref} from 'vue'
87-
import type {ResetCurrentUserPasswordRequest} from '@/api/type/user'
88-
import type {FormInstance, FormRules} from 'element-plus'
86+
import { ref } from 'vue'
87+
import type { ResetCurrentUserPasswordRequest } from '@/api/type/user'
88+
import type { FormInstance, FormRules } from 'element-plus'
8989
import UserApi from '@/api/user/user-manage'
9090
import useStore from '@/stores'
91-
import {useRouter} from 'vue-router'
92-
import {t} from '@/locales'
91+
import { useRouter } from 'vue-router'
92+
import { t } from '@/locales'
9393
9494
const router = useRouter()
95-
const {user} = useStore()
95+
const { login } = useStore()
9696
9797
const resetPasswordDialog = ref<boolean>(false)
9898
9999
const resetPasswordForm = ref<ResetCurrentUserPasswordRequest>({
100100
code: '',
101101
password: '',
102-
re_password: ''
102+
re_password: '',
103103
})
104104
105105
const resetPasswordFormRef1 = ref<FormInstance>()
@@ -114,26 +114,26 @@ const rules1 = ref<FormRules<ResetCurrentUserPasswordRequest>>({
114114
{
115115
required: true,
116116
message: t('views.login.enterPassword'),
117-
trigger: 'blur'
117+
trigger: 'blur',
118118
},
119119
{
120120
min: 6,
121121
max: 20,
122122
message: t('views.user.userForm.form.password.lengthMessage'),
123-
trigger: 'blur'
124-
}
123+
trigger: 'blur',
124+
},
125125
],
126126
re_password: [
127127
{
128128
required: true,
129129
message: t('views.user.userForm.form.re_password.requiredMessage'),
130-
trigger: 'blur'
130+
trigger: 'blur',
131131
},
132132
{
133133
min: 6,
134134
max: 20,
135135
message: t('views.user.userForm.form.password.lengthMessage'),
136-
trigger: 'blur'
136+
trigger: 'blur',
137137
},
138138
{
139139
validator: (rule, value, callback) => {
@@ -143,9 +143,9 @@ const rules1 = ref<FormRules<ResetCurrentUserPasswordRequest>>({
143143
callback()
144144
}
145145
},
146-
trigger: 'blur'
147-
}
148-
]
146+
trigger: 'blur',
147+
},
148+
],
149149
})
150150
// const rules2 = ref<FormRules<ResetCurrentUserPasswordRequest>>({
151151
// // @ts-ignore
@@ -186,25 +186,24 @@ const open = () => {
186186
resetPasswordForm.value = {
187187
//code: '',
188188
password: '',
189-
re_password: ''
189+
re_password: '',
190190
}
191191
resetPasswordDialog.value = true
192192
resetPasswordFormRef1.value?.resetFields()
193193
resetPasswordFormRef2.value?.resetFields()
194194
}
195195
const resetPassword = () => {
196196
resetPasswordFormRef1.value?.validate().then(() => {
197-
return UserApi.resetCurrentPassword(resetPasswordForm.value)
198-
.then(() => {
199-
user.logout()
200-
router.push({name: 'login'})
201-
})
197+
return UserApi.resetCurrentPassword(resetPasswordForm.value).then(() => {
198+
login.logout()
199+
router.push({ name: 'login' })
200+
})
202201
})
203202
}
204203
const close = () => {
205204
resetPasswordDialog.value = false
206205
}
207206
208-
defineExpose({open, close})
207+
defineExpose({ open, close })
209208
</script>
210209
<style lang="scss" scope></style>

ui/src/layout/layout-header/avatar/index.vue

Lines changed: 18 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
<el-dropdown trigger="click" type="primary">
33
<div class="flex-center cursor">
44
<el-avatar :size="30">
5-
<img src="@/assets/user-icon.svg" style="width: 54%" alt=""/>
5+
<img src="@/assets/user-icon.svg" style="width: 54%" alt="" />
66
</el-avatar>
77
<span class="ml-8 color-text-primary">{{ user.userInfo?.username }}</span>
88
<el-icon class="el-icon--right">
9-
<CaretBottom/>
9+
<CaretBottom />
1010
</el-icon>
1111
</div>
1212

@@ -15,19 +15,16 @@
1515
<div class="userInfo flex align-center">
1616
<div class="mr-12 flex align-center">
1717
<el-avatar :size="30">
18-
<img src="@/assets/user-icon.svg" style="width: 54%" alt=""/>
18+
<img src="@/assets/user-icon.svg" style="width: 54%" alt="" />
1919
</el-avatar>
2020
</div>
2121
<div style="width: 90%">
2222
<p class="bold mb-4" style="font-size: 14px">{{ user.userInfo?.username }}</p>
23-
<template
24-
v-if="user.userInfo?.role && user.userInfo.role.length > 0"
25-
>
23+
<template v-if="user.userInfo?.role && user.userInfo.role.length > 0">
2624
<el-tag size="small" class="default-tag">{{ user.userInfo?.role[0] }}</el-tag>
2725
<el-tag size="small" class="default-tag ml-4" v-if="user.userInfo?.role?.length > 1"
28-
>+{{ user.userInfo?.role?.length - 1 }}
29-
</el-tag
30-
>
26+
>+{{ user.userInfo?.role?.length - 1 }}
27+
</el-tag>
3128
</template>
3229
</div>
3330
</div>
@@ -44,7 +41,7 @@
4441
<div class="flex-between w-full" style="line-height: 22px; padding: 12px 11px">
4542
<span> {{ $t('layout.language') }}</span>
4643
<el-icon>
47-
<ArrowRight/>
44+
<ArrowRight />
4845
</el-icon>
4946
</div>
5047

@@ -58,14 +55,14 @@
5855
class="flex-between"
5956
>
6057
<span :class="lang.value === user.userInfo?.language ? 'primary' : ''">{{
61-
lang.label
62-
}}</span>
58+
lang.label
59+
}}</span>
6360

6461
<el-icon
6562
:class="lang.value === user.userInfo?.language ? 'primary' : ''"
6663
v-if="lang.value === user.userInfo?.language"
6764
>
68-
<Check/>
65+
<Check />
6966
</el-icon>
7067
</el-dropdown-item>
7168
</el-dropdown-menu>
@@ -89,24 +86,24 @@
8986
</el-dropdown-menu>
9087
</template>
9188
</el-dropdown>
92-
<APIKeyDialog :user-id="user.userInfo?.id" ref="APIKeyDialogRef"/>
89+
<APIKeyDialog :user-id="user.userInfo?.id" ref="APIKeyDialogRef" />
9390
<ResetPassword ref="resetPasswordRef"></ResetPassword>
9491
<!-- <AboutDialog ref="AboutDialogRef"></AboutDialog>
9592
-->
9693
<!-- <UserPwdDialog ref="UserPwdDialogRef" /> -->
9794
</template>
9895
<script setup lang="ts">
99-
import {ref, onMounted} from 'vue'
96+
import { ref, onMounted } from 'vue'
10097
import useStore from '@/stores'
101-
import {useRouter} from 'vue-router'
98+
import { useRouter } from 'vue-router'
10299
import ResetPassword from './ResetPassword.vue'
103100
// import AboutDialog from './AboutDialog.vue'
104101
// import UserPwdDialog from '@/views/user-manage/component/UserPwdDialog.vue'
105102
import APIKeyDialog from './APIKeyDialog.vue'
106-
import {ComplexPermission} from '@/utils/permission/type'
107-
import {langList} from '@/locales/index'
103+
import { ComplexPermission } from '@/utils/permission/type'
104+
import { langList } from '@/locales/index'
108105
109-
const {user} = useStore()
106+
const { user, login } = useStore()
110107
const router = useRouter()
111108
112109
const AboutDialogRef = ref()
@@ -131,8 +128,8 @@ const openResetPassword = () => {
131128
}
132129
133130
const logout = () => {
134-
user.logout().then(() => {
135-
router.push({name: 'login'})
131+
login.logout().then(() => {
132+
router.push({ name: 'login' })
136133
})
137134
}
138135

ui/src/stores/modules/login.ts

Lines changed: 58 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { defineStore } from 'pinia'
22
import { type Ref } from 'vue'
3-
import loginApi from '@/api/user/login'
3+
import LoginApi from '@/api/user/login'
44
import type { LoginRequest } from '@/api/type/login'
55
import useUserStore from './user'
66

@@ -30,21 +30,76 @@ const useLoginStore = defineStore('login', {
3030
},
3131

3232
async asyncLogin(data: LoginRequest, loading?: Ref<boolean>) {
33-
return loginApi.login(data).then((ok) => {
33+
return LoginApi.login(data).then((ok) => {
3434
this.token = ok?.data?.token
3535
localStorage.setItem('token', ok?.data?.token)
3636
const user = useUserStore()
3737
return user.profile(loading)
3838
})
3939
},
4040
async asyncLdapLogin(data: LoginRequest, loading?: Ref<boolean>) {
41-
return loginApi.ldapLogin(data).then((ok) => {
41+
return LoginApi.ldapLogin(data).then((ok) => {
4242
this.token = ok?.data?.token
4343
localStorage.setItem('token', ok?.data?.token)
4444
const user = useUserStore()
4545
return user.profile(loading)
4646
})
4747
},
48+
async dingCallback(code: string) {
49+
return LoginApi.getDingCallback(code).then((ok) => {
50+
this.token = ok.data
51+
localStorage.setItem('token', ok.data)
52+
const user = useUserStore()
53+
return user.profile()
54+
})
55+
},
56+
async dingOauth2Callback(code: string) {
57+
return LoginApi.getDingOauth2Callback(code).then((ok) => {
58+
this.token = ok.data
59+
localStorage.setItem('token', ok.data)
60+
const user = useUserStore()
61+
return user.profile()
62+
})
63+
},
64+
async wecomCallback(code: string) {
65+
return LoginApi.getWecomCallback(code).then((ok) => {
66+
this.token = ok.data
67+
localStorage.setItem('token', ok.data)
68+
const user = useUserStore()
69+
return user.profile()
70+
})
71+
},
72+
async larkCallback(code: string) {
73+
return LoginApi.getLarkCallback(code).then((ok) => {
74+
this.token = ok.data
75+
localStorage.setItem('token', ok.data)
76+
const user = useUserStore()
77+
return user.profile()
78+
})
79+
},
80+
81+
async logout() {
82+
return LoginApi.logout().then(() => {
83+
localStorage.removeItem('token')
84+
return true
85+
})
86+
},
87+
async getAuthType() {
88+
return LoginApi.getAuthType().then((ok) => {
89+
return ok.data
90+
})
91+
},
92+
async getQrType() {
93+
return LoginApi.getQrType().then((ok) => {
94+
return ok.data
95+
})
96+
},
97+
async getQrSource() {
98+
return LoginApi.getQrSource().then((ok) => {
99+
return ok.data
100+
})
101+
},
102+
48103
},
49104
})
50105

0 commit comments

Comments
 (0)