src/router/guard/userLoginInfo.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/store/modules/user/index.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/dmx/knowledgeLib/config.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/dmx/knowledgeLib/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/dmx/knowledgeLib/test.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/login/components/login-form.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/router/guard/userLoginInfo.ts
@@ -9,36 +9,36 @@ NProgress.start(); const userStore = useUserStore(); next(); // if (isLogin()) { // if (userStore.role) { // next(); // } else { // try { // await userStore.info(); // next(); // } catch (error) { // await userStore.logout(); // next({ // name: 'login', // query: { // redirect: to.name, // ...to.query, // } as LocationQueryRaw, // }); // } // } // } else { // if (to.name === 'login') { // next(); // return; // } // next({ // name: 'login', // query: { // redirect: to.name, // ...to.query, // } as LocationQueryRaw, // }); // } if (isLogin()) { if (userStore.role) { next(); } else { try { await userStore.info(); next(); } catch (error) { await userStore.logout(); next({ name: 'login', query: { redirect: to.name, ...to.query, } as LocationQueryRaw, }); } } } else { if (to.name === 'login') { next(); return; } next({ name: 'login', query: { redirect: to.name, ...to.query, } as LocationQueryRaw, }); } }); } src/store/modules/user/index.ts
@@ -10,6 +10,7 @@ import { UserState } from './types'; import useAppStore from '../app'; const useUserStore = defineStore('user', { state: (): UserState => ({ name: undefined, @@ -63,7 +64,7 @@ }, // Login async login(loginForm: LoginData) { async login(loginForm: LoginData):string { try { const res = await userLogin(loginForm); setToken(res.data.access_token); @@ -75,6 +76,11 @@ this.resources=res.data.resources; setUserInfo(JSON.stringify(userInfo)); setUserResources(JSON.stringify(this.resources)) for (const r of this.resources) { if (r.menuType == 0) { return r.component } } } catch (err) { clearToken(); throw err; src/views/dmx/knowledgeLib/config.vue
@@ -192,13 +192,13 @@ import { onMounted, onBeforeMount, reactive, ref } from "vue"; import { Message } from "@arco-design/web-vue"; import { queryModelList,kbUpdate } from "@/api/kbList"; import message from "@arco-design/web-vue/es/message"; const props = defineProps(['kbtenantInfo']) // const emit = defineEmits(['upTabdateItem']) const kbtenantInfo = props.kbtenantInfo; // 解析方法列表 let parser_ids = kbtenantInfo.parser_ids.split(",").map((item) => { let parser_ids = props.kbtenantInfo.parser_ids.split(",").map((item) => { const [value1, value2] = item.split(":"); return { name: value2, @@ -272,7 +272,6 @@ if (errors){ return; } console.log(form); let parms = { name: form.name, avatar: form.avatar, @@ -287,7 +286,7 @@ }, kb_id: kbObj.id, } if(form.layout_recognize){ if(form.use_raptor){ parms.parser_config.raptor = { use_raptor: form.use_raptor, prompt: form.prompt, @@ -297,8 +296,6 @@ random_seed: form.random_seed, }; } try { const data = await kbUpdate(parms); @@ -306,11 +303,10 @@ Message.success("配置成功"); // window.location.reload(); } // visible.value = false; // emit('upTabdateItem') } catch (err) { // you can report use errorHandler or other Message.error(err.message); } @@ -324,14 +320,6 @@ form.random_seed = Math.floor(Math.random() * (max - min + 1)) + min; } const onChangeRAPTOR = () => { console.log(form); }; const handleClick = () => { visible.value = true; }; const handleBeforeOk = (done) => { formRef.value.validate().then(res => { console.log("form:", form); @@ -343,10 +331,6 @@ } }); }; const handleCancel = () => { visible.value = false; }; const handleOpened =(el) => { Object.assign(form,{ @@ -367,6 +351,7 @@ }; const changekbObj = (value) => { formRef.value.resetFields(); kbObj = value; console.log(kbObj, 'kbObj'); // if(kbObj.avatar){ @@ -375,14 +360,14 @@ let configObj = { name: kbObj.name, avatar: kbObj.avatar, chunk_token_num: kbObj.parser_config ? kbObj.parser_config.chunk_token_num : 128, pages: kbObj.pages, chunk_token_num: kbObj.parser_config.chunk_token_num, pages: kbObj.parser_config.pages, description: kbObj.description, language: "English", permission: kbObj.permission, embd_id: "BAAI/bge-large-zh-v1.5", embd_id: props.kbtenantInfo.embd_id || kbObj.embd_id, parser_id: kbObj.parser_id, layout_recognize: kbObj.parser_config ? kbObj.parser_config.layout_recognize:false, layout_recognize: true, } let raptor = {} if(kbObj.parser_config && kbObj.parser_config.raptor){ @@ -390,11 +375,12 @@ Object.assign(form,{ ...configObj, ...raptor, use_raptor: kbObj.parser_config.raptor.use_raptor, }); }else{ Object.assign(form,configObj); } console.log(form,'配置页面表单信息'); } defineExpose({ src/views/dmx/knowledgeLib/index.vue
@@ -500,7 +500,6 @@ setLoading(true); try { const data = await queryKbDocumentList(params); console.log(data, 'data'); if(data.code=='0'){ parser_ids = kbtenantInfo.parser_ids.split(',').reduce((acc, pair) => { const [key, value] = pair.split(':'); @@ -517,7 +516,7 @@ parser_id: parser_ids[item.parser_id], }; }); console.log(renderData.value, 'renderData'); // console.log(renderData.value, 'renderData'); pagination.current = params.page; pagination.total = data.data.total; @@ -553,9 +552,9 @@ setLoading(true); try { const { data } = await queryKbList(params); console.log(data, 'data'); // console.log(data, 'data'); tabs.value = data; console.log(tabs.value, 'tabs'); // console.log(tabs.value, 'tabs'); if(tabs.value.length>0 && tabs.value[0]){ kbobj = tabs.value[0] kbId = kbobj.id; src/views/dmx/knowledgeLib/test.vue
@@ -109,7 +109,12 @@ delete formObj.top_k; delete formObj.rerank_id; } const data = await kbretrievalTest(formObj); try { const data = await kbretrievalTest(formObj); }catch (err){ Message.error(err.message); } } const handleClick = () => { src/views/login/components/login-form.vue
@@ -1,6 +1,6 @@ <template> <div class="login-form-wrapper"> <div class="login-form-title">{{ $t('login.form.title') }}</div> <div class="login-form-title">{{ $t("login.form.title") }}</div> <!-- <div class="login-form-sub-title">{{ $t('login.form.title') }}</div>--> <div class="login-form-error-msg">{{ errorMessage }}</div> <a-form @@ -45,12 +45,12 @@ :model-value="loginConfig.rememberPassword" @change="setRememberPassword as any" > {{ $t('login.form.rememberPassword') }} {{ $t("login.form.rememberPassword") }} </a-checkbox> <a-link>{{ $t('login.form.forgetPassword') }}</a-link> <a-link>{{ $t("login.form.forgetPassword") }}</a-link> </div> <a-button type="primary" html-type="submit" long :loading="loading"> {{ $t('login.form.login') }} {{ $t("login.form.login") }} </a-button> <!-- <a-button type="text" long class="login-form-register-btn"> {{ $t('login.form.register') }} @@ -61,108 +61,116 @@ </template> <script lang="ts" setup> import { ref, reactive } from 'vue'; import { useRouter } from 'vue-router'; import { Message } from '@arco-design/web-vue'; import { ValidatedError } from '@arco-design/web-vue/es/form/interface'; import { useI18n } from 'vue-i18n'; import { useStorage } from '@vueuse/core'; import { useUserStore } from '@/store'; import useLoading from '@/hooks/loading'; import type { LoginData } from '@/api/user'; import { rsaPsw } from '@/utils/ras'; import { reactive, ref } from "vue"; import { useRouter } from "vue-router"; import { Message } from "@arco-design/web-vue"; import { ValidatedError } from "@arco-design/web-vue/es/form/interface"; import { useI18n } from "vue-i18n"; import { useStorage } from "@vueuse/core"; import { useUserStore } from "@/store"; import useLoading from "@/hooks/loading"; import type { LoginData } from "@/api/user"; import { rsaPsw } from "@/utils/ras"; const router = useRouter(); const { t } = useI18n(); const errorMessage = ref(''); const { loading, setLoading } = useLoading(); const userStore = useUserStore(); const router = useRouter(); const { t } = useI18n(); const errorMessage = ref(""); const { loading, setLoading } = useLoading(); const userStore = useUserStore(); const loginConfig = useStorage('login-config', { rememberPassword: true, email: '', // 演示默认值 password: '', // demo default value }); const userInfo = reactive({ email: '', // 演示默认值 password: '', // demo default value }); const loginConfig = useStorage("login-config", { rememberPassword: true, email: "", // 演示默认值 password: "" // demo default value }); const userInfo = reactive({ email: "", // 演示默认值 password: "" // demo default value }); const handleSubmit = async ({ errors, values, }: { errors: Record<string, ValidatedError> | undefined; values: Record<string, any>; }) => { if (loading.value) return; if (!errors) { setLoading(true); try { const rsaPassWord = rsaPsw(values.password) as string; console.log(values, '登录信息'); await userStore.login({ email: values.email, password: rsaPassWord, } as LoginData); const { redirect, ...othersQuery } = router.currentRoute.value.query; router.push({ name: 'knowledgeLib', query: { ...othersQuery, }, }); Message.success(t('登录成功')); const { rememberPassword } = loginConfig.value; const { email, password } = values; // 实际生产环境需要进行加密存储。 // The actual production environment requires encrypted storage. loginConfig.value.email = rememberPassword ? email : ''; loginConfig.value.password = rememberPassword ? password : ''; } catch (err) { errorMessage.value = (err as Error).message; } finally { setLoading(false); } const handleSubmit = async ({ errors, values }: { errors: Record<string, ValidatedError> | undefined; values: Record<string, any>; }) => { if (loading.value) return; if (!errors) { setLoading(true); try { const rsaPassWord = rsaPsw(values.password) as string; console.log(values, "登录信息"); let goto = await userStore.login({ email: values.email, password: rsaPassWord } as LoginData); const { redirect, ...othersQuery } = router.currentRoute.value.query; router.push({ name: goto, query: { ...othersQuery } }); Message.success(t("登录成功")); const { rememberPassword } = loginConfig.value; const { email, password } = values; // 实际生产环境需要进行加密存储。 // The actual production environment requires encrypted storage. loginConfig.value.email = rememberPassword ? email : ""; loginConfig.value.password = rememberPassword ? password : ""; } catch (err) { errorMessage.value = (err as Error).message; } finally { setLoading(false); } }; const setRememberPassword = (value: boolean) => { loginConfig.value.rememberPassword = value; }; } }; const setRememberPassword = (value: boolean) => { loginConfig.value.rememberPassword = value; }; </script> <style lang="less" scoped> .login-form { &-wrapper { width: 320px; } .login-form { &-title { color: var(--color-text-1); font-weight: 500; font-size: 24px; line-height: 32px; } & -wrapper { width: 320px; } &-sub-title { color: var(--color-text-3); font-size: 16px; line-height: 24px; } & -title { color: var(--color-text-1); font-weight: 500; font-size: 24px; line-height: 32px; } &-error-msg { height: 32px; color: rgb(var(--red-6)); line-height: 32px; } & -sub-title { color: var(--color-text-3); font-size: 16px; line-height: 24px; } &-password-actions { display: flex; justify-content: space-between; } & -error-msg { height: 32px; color: rgb(var(--red-6)); line-height: 32px; } &-register-btn { color: var(--color-text-3) !important; } } & -password-actions { display: flex; justify-content: space-between; } & -register-btn { color: var(--color-text-3) !important; } } </style>