优化AI,使用qwen

This commit is contained in:
hajimi
2026-06-10 13:10:20 +08:00
parent f5da89af8f
commit 10ebe39c30
914 changed files with 778 additions and 121968 deletions
+6
View File
@@ -0,0 +1,6 @@
export function resolveShareCode(data: { code: string; fingerprint: string; referer?: string }) {
return $request.post(
{ url: '/shortLink/resolve', params: data },
{ requestOptions: { withToken: false } }
)
}
+16 -124
View File
@@ -1,124 +1,16 @@
<template>
<div class="login">
<div class="flex justify-between">
<span class="text-4xl">注册账号</span>
<ElButton
type="primary"
link
@click="setPopupType(PopupTypeEnum.LOGIN)"
>
返回登录
</ElButton>
</div>
<ElForm
ref="formRef"
class="mt-[35px]"
size="large"
:model="formData"
:rules="formRules"
>
<ElFormItem prop="account">
<ElInput
v-model="formData.account"
placeholder="请输入创建的账号"
/>
</ElFormItem>
<ElFormItem prop="password">
<ElInput
v-model="formData.password"
type="password"
show-password
placeholder="请输入6-20位数字+字母或符号组合"
/>
</ElFormItem>
<ElFormItem prop="password_confirm">
<ElInput
v-model="formData.password_confirm"
type="password"
show-password
placeholder="请再次输入密码"
/>
</ElFormItem>
<ElFormItem class="mt-[60px]">
<ElButton
class="w-full"
type="primary"
:loading="isLock"
@click="handleConfirmLock"
>
注册
</ElButton>
</ElFormItem>
</ElForm>
</div>
</template>
<script lang="ts" setup>
import {
ElForm,
ElFormItem,
ElInput,
ElButton,
FormInstance,
FormRules
} from 'element-plus'
import { register } from '~~/api/account'
import { useAccount, PopupTypeEnum } from './useAccount'
const { setPopupType } = useAccount()
const formRef = shallowRef<FormInstance>()
const formRules: FormRules = {
account: [
{
required: true,
message: '请输入创建的账号',
trigger: ['change', 'blur']
},
{
min: 3,
max: 12,
message: '账号长度应为3-12',
trigger: ['change', 'blur']
}
],
password: [
{
required: true,
message: '请输入6-20位数字+字母或符号组合',
trigger: ['change', 'blur']
},
{
min: 6,
max: 20,
message: '密码长度应为6-20',
trigger: ['change', 'blur']
}
],
password_confirm: [
{
validator(rule: any, value: any, callback: any) {
if (value === '') {
callback(new Error('请再次输入密码'))
} else if (value !== formData.password) {
callback(new Error('两次输入的密码不一致'))
} else {
callback()
}
},
trigger: ['change', 'blur']
}
]
}
const formData = reactive({
account: '',
password: '',
password_confirm: ''
})
const handleConfirm = async () => {
await formRef.value?.validate()
await register(formData)
setPopupType(PopupTypeEnum.LOGIN)
}
const { lockFn: handleConfirmLock, isLock } = useLockFn(handleConfirm)
</script>
<style lang="scss" scoped></style>
[app] onLaunch 执行完毕
share-popup.vue:67 [Vue warn]: Unhandled error during execution of watcher callback
at <SharePopup>
at <View>
at <NewsDetail>
at <AsyncComponentWrapper>
at <PageBody>
at <Page>
at <Anonymous>
at <KeepAlive>
at <RouterView>
at <Layout>
at <App>
share-popup.vue:67 ReferenceError: Cannot access 'init' before initialization
at watch.immediate (share-popup.vue:72:13)
at setup (share-popup.vue:67:1)
+30 -1
View File
@@ -52,10 +52,13 @@
</div>
</template>
<script lang="ts" setup>
import { ElCarousel, ElCarouselItem, ElImage } from 'element-plus'
import { ElCarousel, ElCarouselItem, ElImage, ElMessage } from 'element-plus'
import { getIndex } from '@/api/shop'
import { useAppStore } from '~~/stores/app'
import { resolveShareCode } from '@/api/share'
const appStore = useAppStore()
const router = useRouter()
const route = useRoute()
const { data: pageData } = await useAsyncData(() => getIndex(), {
default: () => ({
all: [],
@@ -81,5 +84,31 @@ const showList = computed(() => {
)
})
onMounted(async () => {
const slc = route.query.slc as string
if (!slc) return
try {
const fingerprint = `${Date.now()}${Math.random().toString(36).slice(2, 8)}`
const result = await resolveShareCode({
code: slc,
fingerprint,
referer: window.location.href
})
if (result.params?.invite_code) {
localStorage.setItem('share_invite_code', result.params.invite_code)
}
if (result.page_type === 'news' && result.page_id) {
router.push(`/information/detail/${result.page_id}`)
} else {
ElMessage.success('分享页面已加载')
}
} catch (e) {
console.error('解析分享码失败', e)
}
})
</script>
<style lang="scss" scoped></style>