- 升级 Anthropic API 配置支持自定义 base URL - 更新模型版本到 claude-sonnet-4-6 - 添加 QuestionResponse.user_id 字段 - 完善 docker-compose.yml 添加 backend 和 celery 服务 - 新增项目文档(API、部署、架构等) - 添加测试脚本和配置文件 Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
89 lines
1.4 KiB
Vue
89 lines
1.4 KiB
Vue
<template>
|
|
<view class="container">
|
|
<view class="login-box">
|
|
<text class="title">登录</text>
|
|
<input
|
|
v-model="username"
|
|
class="input"
|
|
placeholder="用户名"
|
|
type="text"
|
|
/>
|
|
<input
|
|
v-model="password"
|
|
class="input"
|
|
placeholder="密码"
|
|
type="password"
|
|
/>
|
|
<button class="btn-login" @tap="handleLogin">登录</button>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script setup lang="ts">
|
|
import { ref } from 'vue';
|
|
|
|
const username = ref('');
|
|
const password = ref('');
|
|
|
|
const handleLogin = () => {
|
|
if (!username.value || !password.value) {
|
|
uni.showToast({
|
|
title: '请输入用户名和密码',
|
|
icon: 'none',
|
|
});
|
|
return;
|
|
}
|
|
|
|
// TODO: 实现登录逻辑
|
|
uni.showToast({
|
|
title: '登录成功',
|
|
icon: 'success',
|
|
});
|
|
|
|
setTimeout(() => {
|
|
uni.switchTab({
|
|
url: '/pages/index/index',
|
|
});
|
|
}, 1500);
|
|
};
|
|
</script>
|
|
|
|
<style scoped>
|
|
.container {
|
|
padding: 40px 20px;
|
|
}
|
|
|
|
.login-box {
|
|
background: white;
|
|
border-radius: 8px;
|
|
padding: 30px;
|
|
}
|
|
|
|
.title {
|
|
font-size: 28px;
|
|
font-weight: bold;
|
|
text-align: center;
|
|
display: block;
|
|
margin-bottom: 30px;
|
|
}
|
|
|
|
.input {
|
|
width: 100%;
|
|
height: 44px;
|
|
border: 1px solid #ddd;
|
|
border-radius: 4px;
|
|
padding: 0 12px;
|
|
margin-bottom: 16px;
|
|
}
|
|
|
|
.btn-login {
|
|
width: 100%;
|
|
background: #3cc51f;
|
|
color: white;
|
|
border: none;
|
|
border-radius: 4px;
|
|
height: 44px;
|
|
line-height: 44px;
|
|
}
|
|
</style>
|