Merge branch 'main' of http://sl.vrgon.com:3000/JiXinHui/YingXingAI
3
App.vue
|
@ -36,6 +36,7 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
return
|
||||||
if (!that.vuex_user.isFill) {
|
if (!that.vuex_user.isFill) {
|
||||||
this.$u.vuex("vuex_msgList", "");
|
this.$u.vuex("vuex_msgList", "");
|
||||||
this.$u.vuex("vuex_user", "");
|
this.$u.vuex("vuex_user", "");
|
||||||
|
@ -242,7 +243,7 @@ export default {
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
});
|
});
|
||||||
//初始化获取定位
|
//初始化获取定位
|
||||||
this.getLocation()
|
// this.getLocation()
|
||||||
} else {
|
} else {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
this.CharLogin()
|
this.CharLogin()
|
||||||
|
|
|
@ -90,6 +90,9 @@ const install = (Vue, vm) => {
|
||||||
//【管理端】获取当前是否开启匿名 开启true 关闭false
|
//【管理端】获取当前是否开启匿名 开启true 关闭false
|
||||||
let CheckNM = (params = {}) => vm.$u.get("/app/My/CheckNM", params)
|
let CheckNM = (params = {}) => vm.$u.get("/app/My/CheckNM", params)
|
||||||
|
|
||||||
|
// 发送消息
|
||||||
|
let SendMessageApi = (params = {}) => vm.$u.post('api/ChatAI/CreateChat', params);
|
||||||
|
|
||||||
// 将各个定义的接口名称,统一放进对象挂载到vm.$u.api(因为vm就是this,也即this.$u.api)下
|
// 将各个定义的接口名称,统一放进对象挂载到vm.$u.api(因为vm就是this,也即this.$u.api)下
|
||||||
vm.$u.api = {
|
vm.$u.api = {
|
||||||
LoginApp,
|
LoginApp,
|
||||||
|
@ -128,7 +131,8 @@ const install = (Vue, vm) => {
|
||||||
getAPIToken,
|
getAPIToken,
|
||||||
getVerifyInfo,
|
getVerifyInfo,
|
||||||
getInfoByCard,
|
getInfoByCard,
|
||||||
updateCard
|
updateCard,
|
||||||
|
SendMessageApi
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,8 +4,8 @@ const install = (Vue, vm) => {
|
||||||
Vue.prototype.$u.http.setConfig({
|
Vue.prototype.$u.http.setConfig({
|
||||||
// baseUrl: 'https://xy.apps.service.zheke.com',
|
// baseUrl: 'https://xy.apps.service.zheke.com',
|
||||||
// imgUrl: 'https://xy.apps.service.zheke.com/',
|
// imgUrl: 'https://xy.apps.service.zheke.com/',
|
||||||
baseUrl: 'http://sl.vrgon.com:8003',
|
baseUrl: 'http://120.55.234.65:8082',
|
||||||
imgUrl: 'http://sl.vrgon.com:8003/',
|
imgUrl: 'http://120.55.234.65:8082/',
|
||||||
// imgUrl:'http://115.238.47.235:8987/',
|
// imgUrl:'http://115.238.47.235:8987/',
|
||||||
// baseUrl: 'http://115.238.47.235:8993',
|
// baseUrl: 'http://115.238.47.235:8993',
|
||||||
// 如果将此值设置为true,拦截回调中将会返回服务端返回的所有数据response,而不是response.data
|
// 如果将此值设置为true,拦截回调中将会返回服务端返回的所有数据response,而不是response.data
|
||||||
|
|
|
@ -0,0 +1,91 @@
|
||||||
|
<template>
|
||||||
|
<!-- 咨询电话 -->
|
||||||
|
<u-popup
|
||||||
|
v-model="showPopup"
|
||||||
|
mode="center"
|
||||||
|
border-radius="16"
|
||||||
|
closeable
|
||||||
|
close-icon-color="#999999"
|
||||||
|
close-icon-pos="top-right"
|
||||||
|
>
|
||||||
|
<view class="phone-popup">
|
||||||
|
<view class="phone-title">招生电话</view>
|
||||||
|
<view class="phone-content">0790-6764666/6765666</view>
|
||||||
|
<view class="phone-button">
|
||||||
|
<u-button class="cancel-button" type="default" @click="closePopup"
|
||||||
|
>取消</u-button
|
||||||
|
>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</u-popup>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: "AdvicePhone",
|
||||||
|
props: {
|
||||||
|
show: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
showPopup: false,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
show: {
|
||||||
|
handler(newVal) {
|
||||||
|
this.showPopup = newVal;
|
||||||
|
},
|
||||||
|
immediate: true,
|
||||||
|
},
|
||||||
|
showPopup(val) {
|
||||||
|
if (val !== this.show) {
|
||||||
|
this.$emit("update:show", val);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
closePopup() {
|
||||||
|
this.showPopup = false;
|
||||||
|
this.$emit("update:show", false);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.phone-popup {
|
||||||
|
width: 600rpx;
|
||||||
|
padding: 60rpx 0;
|
||||||
|
background: #ffffff;
|
||||||
|
border-radius: 16rpx;
|
||||||
|
|
||||||
|
.phone-title {
|
||||||
|
text-align: center;
|
||||||
|
font-family: DouyinSans;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 40rpx;
|
||||||
|
color: #477bfb;
|
||||||
|
margin-bottom: 40rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.phone-content {
|
||||||
|
margin-bottom: 120rpx;
|
||||||
|
text-align: center;
|
||||||
|
font-family: PingFang SC;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.phone-button {
|
||||||
|
padding: 0 40rpx;
|
||||||
|
|
||||||
|
.cancel-button {
|
||||||
|
border-radius: 16rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -0,0 +1,184 @@
|
||||||
|
<template>
|
||||||
|
<!-- 留言 -->
|
||||||
|
<u-popup
|
||||||
|
v-model="showPopup"
|
||||||
|
mode="bottom"
|
||||||
|
@close="closePopup"
|
||||||
|
close-icon-color="#333"
|
||||||
|
close-icon-pos="top-right"
|
||||||
|
borderRadius="16"
|
||||||
|
closeable
|
||||||
|
>
|
||||||
|
<view class="leave-message-container">
|
||||||
|
<view class="leave-message-title">留言</view>
|
||||||
|
<view class="leave-message-content">
|
||||||
|
<textarea
|
||||||
|
class="message-input"
|
||||||
|
v-model="messageContent"
|
||||||
|
placeholder="请输入留言,100字以内"
|
||||||
|
maxlength="100"
|
||||||
|
placeholder-style="color: #999999;"
|
||||||
|
:disabled="loading"
|
||||||
|
></textarea>
|
||||||
|
</view>
|
||||||
|
<view class="message-buttons">
|
||||||
|
<u-button
|
||||||
|
class="submit-btn"
|
||||||
|
type="primary"
|
||||||
|
@click="handleSubmit"
|
||||||
|
:disabled="loading"
|
||||||
|
>
|
||||||
|
{{ loading ? "提交中..." : "提交" }}
|
||||||
|
</u-button>
|
||||||
|
<u-button
|
||||||
|
class="cancel-btn"
|
||||||
|
type="default"
|
||||||
|
@click="closePopup"
|
||||||
|
:disabled="loading"
|
||||||
|
>
|
||||||
|
取消
|
||||||
|
</u-button>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</u-popup>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: "LeaveMessage",
|
||||||
|
props: {
|
||||||
|
show: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
|
teacher: {
|
||||||
|
type: Object,
|
||||||
|
default: () => null,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
showPopup: false,
|
||||||
|
messageContent: "",
|
||||||
|
loading: false,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
show: {
|
||||||
|
handler(newVal) {
|
||||||
|
this.showPopup = newVal;
|
||||||
|
},
|
||||||
|
immediate: true,
|
||||||
|
},
|
||||||
|
showPopup(val) {
|
||||||
|
if (val !== this.show) {
|
||||||
|
this.$emit("update:show", val);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
closePopup() {
|
||||||
|
if (this.loading) return; // 如果正在提交,阻止关闭
|
||||||
|
this.messageContent = "";
|
||||||
|
this.showPopup = false;
|
||||||
|
this.$emit("update:show", false);
|
||||||
|
},
|
||||||
|
handleSubmit() {
|
||||||
|
if (this.loading) return; // 如果正在提交,阻止重复提交
|
||||||
|
|
||||||
|
if (!this.messageContent.trim()) {
|
||||||
|
uni.showToast({
|
||||||
|
title: "请输入留言内容",
|
||||||
|
icon: "none",
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 模拟接口调用
|
||||||
|
this.loading = true;
|
||||||
|
uni.showLoading({
|
||||||
|
title: "提交中...",
|
||||||
|
});
|
||||||
|
|
||||||
|
// 模拟网络请求延迟
|
||||||
|
setTimeout(() => {
|
||||||
|
// 模拟接口调用成功
|
||||||
|
uni.hideLoading();
|
||||||
|
this.loading = false;
|
||||||
|
|
||||||
|
// 发送留言内容和教师信息给父组件
|
||||||
|
this.$emit("submit", {
|
||||||
|
content: this.messageContent,
|
||||||
|
teacher: this.teacher,
|
||||||
|
success: true,
|
||||||
|
});
|
||||||
|
|
||||||
|
// 成功提示
|
||||||
|
uni.showToast({
|
||||||
|
title: "留言成功",
|
||||||
|
icon: "success",
|
||||||
|
});
|
||||||
|
|
||||||
|
// 清空留言内容
|
||||||
|
this.messageContent = "";
|
||||||
|
// 关闭弹窗
|
||||||
|
this.showPopup = false;
|
||||||
|
this.$emit("update:show", false);
|
||||||
|
}, 1500); // 模拟1.5秒的网络延迟
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.leave-message-container {
|
||||||
|
padding: 40rpx 0 0;
|
||||||
|
background-color: #ffffff;
|
||||||
|
border-radius: 16rpx;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
.leave-message-title {
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #333333;
|
||||||
|
text-align: left;
|
||||||
|
padding-left: 30rpx;
|
||||||
|
margin-bottom: 30rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
|
||||||
|
.leave-message-content {
|
||||||
|
padding: 0 30rpx;
|
||||||
|
|
||||||
|
.message-input {
|
||||||
|
width: 100%;
|
||||||
|
height: 280rpx;
|
||||||
|
background-color: #f5f5f5;
|
||||||
|
border-radius: 16rpx;
|
||||||
|
padding: 24rpx;
|
||||||
|
font-size: 28rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.message-buttons {
|
||||||
|
padding: 30rpx 0;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
gap: 50rpx;
|
||||||
|
|
||||||
|
.cancel-btn,
|
||||||
|
.submit-btn {
|
||||||
|
width: 156rpx;
|
||||||
|
height: 70rpx;
|
||||||
|
margin: 0;
|
||||||
|
border-radius: 16rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.submit-btn {
|
||||||
|
background-color: #477bfb;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -161,7 +161,7 @@
|
||||||
"enable" : true
|
"enable" : true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"title" : "笑柚",
|
"title" : "源小新",
|
||||||
"sdkConfigs" : {
|
"sdkConfigs" : {
|
||||||
"maps" : {
|
"maps" : {
|
||||||
"qqmap" : {
|
"qqmap" : {
|
||||||
|
|
24
pages.json
|
@ -33,6 +33,30 @@
|
||||||
"navigationStyle": "custom"
|
"navigationStyle": "custom"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/home/admissions/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "招办在线",
|
||||||
|
"enablePullDownRefresh": false,
|
||||||
|
"navigationStyle": "custom"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/home/teacherInfo/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "老师详情",
|
||||||
|
"enablePullDownRefresh": false,
|
||||||
|
"navigationStyle": "custom"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/login/login/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "登录",
|
||||||
|
"enablePullDownRefresh": false,
|
||||||
|
"navigationStyle": "custom"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"path": "pages/login/login/login",
|
"path": "pages/login/login/login",
|
||||||
"style": {
|
"style": {
|
||||||
|
|
|
@ -0,0 +1,249 @@
|
||||||
|
<template>
|
||||||
|
<view class="admissions-container">
|
||||||
|
<view class="header">
|
||||||
|
<div class="header-left">
|
||||||
|
<u-icon
|
||||||
|
class="header-left-icon"
|
||||||
|
name="arrow-left"
|
||||||
|
@click="handleLeftClick"
|
||||||
|
></u-icon>
|
||||||
|
</div>
|
||||||
|
<text class="header-title">招办在线</text>
|
||||||
|
<div></div>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="admissions-content">
|
||||||
|
<view class="teacher-list">
|
||||||
|
<!-- 教师列表 -->
|
||||||
|
<view
|
||||||
|
class="teacher-item"
|
||||||
|
v-for="(teacher, index) in teacherList"
|
||||||
|
:key="index"
|
||||||
|
>
|
||||||
|
<image class="teacher-avatar" :src="teacher.avatar"></image>
|
||||||
|
<view class="teacher-info">
|
||||||
|
<view class="teacher-detail">
|
||||||
|
<view class="teacher-name">
|
||||||
|
<text>{{ teacher.name }}</text>
|
||||||
|
<view v-if="teacher.online" class="online-status">
|
||||||
|
<view class="online-dot"></view>
|
||||||
|
<text>在线</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="teacher-department">{{ teacher.department }}</view>
|
||||||
|
</view>
|
||||||
|
<view class="ask-button" @click="handleAskQuestion(teacher)">{{
|
||||||
|
teacher.online ? "立即提问" : "留言"
|
||||||
|
}}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- 留言弹出层 -->
|
||||||
|
<leave-message
|
||||||
|
:show.sync="showLeaveMessage"
|
||||||
|
:teacher="currentTeacher"
|
||||||
|
@submit="handleMessageSubmit"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import LeaveMessage from "@/components/LeaveMessage.vue";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
LeaveMessage,
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
showLeaveMessage: false,
|
||||||
|
teacherList: [
|
||||||
|
{
|
||||||
|
id: 1,
|
||||||
|
name: "孙老师",
|
||||||
|
department: "招就处",
|
||||||
|
avatar: "/static/common/images/avatar.png",
|
||||||
|
online: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 2,
|
||||||
|
name: "杨老师",
|
||||||
|
department: "电子信息学院",
|
||||||
|
avatar: "/static/common/images/student.png",
|
||||||
|
online: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 3,
|
||||||
|
name: "招办赵老师",
|
||||||
|
department: "财政学院/会计专业",
|
||||||
|
avatar: "/static/common/images/student.png",
|
||||||
|
online: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 4,
|
||||||
|
name: "招办王老师",
|
||||||
|
department: "电子信息学院",
|
||||||
|
avatar: "/static/common/images/student.png",
|
||||||
|
online: false,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
currentTeacher: null,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
handleLeftClick() {
|
||||||
|
uni.navigateBack();
|
||||||
|
},
|
||||||
|
handleAskQuestion(teacher) {
|
||||||
|
if (!teacher.online) {
|
||||||
|
// 留言
|
||||||
|
this.currentTeacher = teacher;
|
||||||
|
this.showLeaveMessage = true;
|
||||||
|
} else {
|
||||||
|
// 跳转老师详情
|
||||||
|
uni.navigateTo({
|
||||||
|
url: `/pages/home/teacherInfo/index?teacherId=${teacher.id}`,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
handleMessageSubmit(data) {
|
||||||
|
console.log("提交留言:", data.content, "教师:", data.teacher?.name);
|
||||||
|
|
||||||
|
// 成功提示已经在组件内部处理,这里不需要重复提示
|
||||||
|
// uni.showToast({
|
||||||
|
// title: "留言成功",
|
||||||
|
// icon: "success",
|
||||||
|
// });
|
||||||
|
|
||||||
|
// 这里可以进行其他操作,如更新页面数据等
|
||||||
|
if (data.success) {
|
||||||
|
console.log("留言提交成功,可以进行后续操作");
|
||||||
|
// 例如刷新列表或其他业务逻辑
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.admissions-container {
|
||||||
|
min-height: 100vh;
|
||||||
|
padding-bottom: calc(112rpx + env(safe-area-inset-bottom));
|
||||||
|
padding-top: 88rpx;
|
||||||
|
background-color: #ffffff;
|
||||||
|
|
||||||
|
.header {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
background-color: #ffffff;
|
||||||
|
height: 88rpx;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding: 0 30rpx;
|
||||||
|
z-index: 99;
|
||||||
|
|
||||||
|
.header-left {
|
||||||
|
font-size: 36rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header-title {
|
||||||
|
font-size: 36rpx;
|
||||||
|
font-weight: 500;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.admissions-content {
|
||||||
|
.teacher-list {
|
||||||
|
.teacher-item {
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-start;
|
||||||
|
align-items: center;
|
||||||
|
background-color: #ffffff;
|
||||||
|
padding: 0 30rpx;
|
||||||
|
// margin-bottom: 30rpx;
|
||||||
|
border-radius: 16rpx;
|
||||||
|
|
||||||
|
.teacher-avatar {
|
||||||
|
width: 96rpx;
|
||||||
|
height: 96rpx;
|
||||||
|
border-radius: 50%;
|
||||||
|
margin-right: 24rpx;
|
||||||
|
object-fit: cover;
|
||||||
|
}
|
||||||
|
|
||||||
|
.teacher-info {
|
||||||
|
padding: 30rpx 0;
|
||||||
|
flex: 1;
|
||||||
|
flex-shrink: 0;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
border-bottom: 1rpx solid #f2f2f2;
|
||||||
|
|
||||||
|
.teacher-detail {
|
||||||
|
.teacher-name {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
font-size: 28rpx;
|
||||||
|
font-weight: 600;
|
||||||
|
color: #333333;
|
||||||
|
margin-bottom: 12rpx;
|
||||||
|
|
||||||
|
.online-status {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-left: 16rpx;
|
||||||
|
|
||||||
|
.online-dot {
|
||||||
|
width: 14rpx;
|
||||||
|
height: 14rpx;
|
||||||
|
border-radius: 50%;
|
||||||
|
background-color: #4cd964;
|
||||||
|
margin-right: 8rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
text {
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #4cd964;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.teacher-department {
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #999999;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.ask-button {
|
||||||
|
color: #ffffff;
|
||||||
|
background-color: #4f6aff;
|
||||||
|
font-size: 24rpx;
|
||||||
|
width: 152rpx;
|
||||||
|
height: 60rpx;
|
||||||
|
line-height: 60rpx;
|
||||||
|
text-align: center;
|
||||||
|
border-radius: 50rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 响应式布局 - PC端样式 */
|
||||||
|
@media screen and (min-width: 768px) {
|
||||||
|
.admissions-container {
|
||||||
|
.content {
|
||||||
|
max-width: 1200rpx;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -0,0 +1,456 @@
|
||||||
|
<template>
|
||||||
|
<view class="teacherInfo-container">
|
||||||
|
<view class="header">
|
||||||
|
<div class="header-left">
|
||||||
|
<u-icon
|
||||||
|
class="header-left-icon"
|
||||||
|
name="arrow-left"
|
||||||
|
@click="handleLeftClick"
|
||||||
|
></u-icon>
|
||||||
|
</div>
|
||||||
|
<text class="header-title">老师详情</text>
|
||||||
|
<div></div>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<div class="teacher-info-card">
|
||||||
|
<div class="card-content">
|
||||||
|
<image class="teacher-avatar" :src="teacherInfo.avatar"></image>
|
||||||
|
<div class="teacher-info">
|
||||||
|
<div class="teacher-name">{{ teacherInfo.name }}</div>
|
||||||
|
|
||||||
|
<div class="teacher-school">
|
||||||
|
<image
|
||||||
|
class="school-icon"
|
||||||
|
src="/static/common/images/icon_college.png"
|
||||||
|
></image>
|
||||||
|
<text class="school-text">{{ teacherInfo.school }}</text>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="teacher-college">
|
||||||
|
<image
|
||||||
|
class="college-icon"
|
||||||
|
src="/static/common/images/icon_major.png"
|
||||||
|
></image>
|
||||||
|
<text class="college-text">{{ teacherInfo.college }}</text>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="action-buttons">
|
||||||
|
<button class="action-btn consult-btn" @click="handleConsult">
|
||||||
|
<image
|
||||||
|
class="btn-icon"
|
||||||
|
src="/static/common/images/icon_consult.png"
|
||||||
|
></image>
|
||||||
|
<text class="btn-text">在线咨询</text>
|
||||||
|
</button>
|
||||||
|
<button class="action-btn message-btn" @click="handleMessage">
|
||||||
|
<image
|
||||||
|
class="btn-icon"
|
||||||
|
src="/static/common/images/icon_edit.png"
|
||||||
|
></image>
|
||||||
|
<text class="btn-text">留言提问</text>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 老师回答 -->
|
||||||
|
<view class="teacher-answers">
|
||||||
|
<view class="answer-title">老师回答</view>
|
||||||
|
|
||||||
|
<view
|
||||||
|
class="answer-item"
|
||||||
|
v-for="(item, index) in answerList"
|
||||||
|
:key="item.id"
|
||||||
|
>
|
||||||
|
<view class="student-info">
|
||||||
|
<image class="student-avatar" :src="item.studentAvatar"></image>
|
||||||
|
<text class="student-name">{{ item.studentName }}</text>
|
||||||
|
<text class="answer-time">{{ item.time }}</text>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="question">
|
||||||
|
<view class="question-tag">问</view>
|
||||||
|
<view class="question-content">{{ item.question }}</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="answer">
|
||||||
|
<view class="answer-tag">答</view>
|
||||||
|
<view class="answer-content">
|
||||||
|
<view class="answer-text">{{ item.fullAnswer }}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
components: {},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
teacherId: "",
|
||||||
|
teacherInfo: {
|
||||||
|
id: 1,
|
||||||
|
name: "孙老师",
|
||||||
|
school: "江西新能源科技职业学院",
|
||||||
|
college: "生命科学与工程学院·生物工程专业",
|
||||||
|
avatar: "/static/common/images/avatar2.png",
|
||||||
|
online: true,
|
||||||
|
},
|
||||||
|
answerList: [
|
||||||
|
{
|
||||||
|
id: 1,
|
||||||
|
studentName: "浙江考生13024",
|
||||||
|
studentAvatar: "/static/common/images/avatar.png",
|
||||||
|
time: "2025/6/26 15:45:12",
|
||||||
|
question: "学校在录取时有没有一些专业会有特殊要求?",
|
||||||
|
fullAnswer:
|
||||||
|
"考生身体健康状况必须符合教育部、原卫生部中国残疾人联合的《普通高等学校招生体检工作指导意见》和人力资源社会保障部",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 2,
|
||||||
|
studentName: "浙江考生13024",
|
||||||
|
studentAvatar: "/static/common/images/avatar.png",
|
||||||
|
time: "2025/6/26 15:45:12",
|
||||||
|
question: "学校在录取时有没有一些专业会有特殊要求?",
|
||||||
|
fullAnswer:
|
||||||
|
"考生身体健康状况必须符合教育部、原卫生部中国残疾人联合的《普通高等学校招生体检工作指导意见》。",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 3,
|
||||||
|
studentName: "浙江考生13024",
|
||||||
|
studentAvatar: "/static/common/images/avatar.png",
|
||||||
|
time: "2025/6/26 15:45:12",
|
||||||
|
question: "学校在录取时有没有一些专业会有特殊要求?",
|
||||||
|
fullAnswer:
|
||||||
|
"考生身体健康状况必须符合教育部、原卫生部中国残疾人联合的《普通高等学校招生体检工作指导意见》和人力资源社会保障部、教育部、原卫生部、见》和人力资源社会保障部、教育部、原卫生部中共发布的相关规定。部分专业确有特殊要求,如航空服务类专业对身高、视力等有特殊要求,艺术类专业要求有艺术基础等。建议考生在填报志愿前,详细了解意向专业的招生要求。",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
|
},
|
||||||
|
mounted() {},
|
||||||
|
onLoad(options) {
|
||||||
|
if (options.teacherId) {
|
||||||
|
this.teacherId = options.teacherId;
|
||||||
|
this.getTeacherInfo();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 在页面加载后检查文本是否超过三行
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.checkTextOverflow();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
handleLeftClick() {
|
||||||
|
uni.navigateBack();
|
||||||
|
},
|
||||||
|
getTeacherInfo() {
|
||||||
|
// 模拟获取教师信息的接口
|
||||||
|
console.log("获取教师ID为", this.teacherId, "的信息");
|
||||||
|
// 实际开发中这里应该调用接口获取教师信息
|
||||||
|
},
|
||||||
|
handleConsult() {
|
||||||
|
console.log("在线咨询");
|
||||||
|
// 跳转到咨询页面或者打开咨询对话框
|
||||||
|
},
|
||||||
|
handleMessage() {
|
||||||
|
console.log("留言提问");
|
||||||
|
// 打开留言弹窗
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.teacherInfo-container {
|
||||||
|
min-height: 100vh;
|
||||||
|
padding-bottom: calc(112rpx + env(safe-area-inset-bottom));
|
||||||
|
padding: 32rpx;
|
||||||
|
padding-top: calc(88rpx + 40rpx);
|
||||||
|
|
||||||
|
background-image: url(/static//common/images/images_bg.png);
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
background-position: 50%;
|
||||||
|
|
||||||
|
.header {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
background-color: #ffffff;
|
||||||
|
height: 88rpx;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding: 0 30rpx;
|
||||||
|
z-index: 99;
|
||||||
|
|
||||||
|
.header-left {
|
||||||
|
font-size: 36rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header-title {
|
||||||
|
font-size: 36rpx;
|
||||||
|
font-weight: 500;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.teacher-info-card {
|
||||||
|
// margin: 30rpx;
|
||||||
|
background-color: #ffffff;
|
||||||
|
border-radius: 16rpx;
|
||||||
|
padding: 26rpx 32rpx 32rpx 32rpx;
|
||||||
|
|
||||||
|
.card-content {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 36rpx;
|
||||||
|
|
||||||
|
.teacher-avatar {
|
||||||
|
width: 120rpx;
|
||||||
|
height: 120rpx;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
margin-right: 30rpx;
|
||||||
|
object-fit: cover;
|
||||||
|
}
|
||||||
|
|
||||||
|
.teacher-info {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: space-between;
|
||||||
|
gap: 8rpx;
|
||||||
|
flex: 1;
|
||||||
|
|
||||||
|
.teacher-name {
|
||||||
|
font-family: PingFang SC;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.teacher-school,
|
||||||
|
.teacher-college {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
.school-icon,
|
||||||
|
.college-icon {
|
||||||
|
margin-right: 16rpx;
|
||||||
|
width: 24rpx;
|
||||||
|
height: 24rpx;
|
||||||
|
display: inline-block;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.school-text,
|
||||||
|
.college-text {
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #666666;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.action-buttons {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
|
||||||
|
.action-btn {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
width: 46%;
|
||||||
|
height: 60rpx;
|
||||||
|
border-radius: 16rpx;
|
||||||
|
font-size: 32rpx;
|
||||||
|
border: none;
|
||||||
|
|
||||||
|
.btn-icon {
|
||||||
|
margin-right: 16rpx;
|
||||||
|
width: 24rpx;
|
||||||
|
height: 24rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-text {
|
||||||
|
font-size: 24rpx;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.consult-btn {
|
||||||
|
background-color: #4f6aff;
|
||||||
|
color: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.message-btn {
|
||||||
|
background-color: #ffffff;
|
||||||
|
color: #4f6aff;
|
||||||
|
border: 1px solid #4f6aff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 老师回答区域样式 */
|
||||||
|
.teacher-answers {
|
||||||
|
margin-top: 50rpx;
|
||||||
|
|
||||||
|
.answer-title {
|
||||||
|
font-size: 32rpx;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #333333;
|
||||||
|
margin-bottom: 28rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.answer-item {
|
||||||
|
background-color: #ffffff;
|
||||||
|
border-radius: 16rpx;
|
||||||
|
padding: 32rpx;
|
||||||
|
margin-bottom: 32rpx;
|
||||||
|
border: 1px solid #ccc;
|
||||||
|
|
||||||
|
.student-info {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 32rpx;
|
||||||
|
|
||||||
|
.student-avatar {
|
||||||
|
width: 40rpx;
|
||||||
|
height: 40rpx;
|
||||||
|
border-radius: 20rpx;
|
||||||
|
margin-right: 16rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.student-name {
|
||||||
|
flex: 1;
|
||||||
|
font-size: 26rpx;
|
||||||
|
color: #666666;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
|
||||||
|
.answer-time {
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #666666;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.question {
|
||||||
|
display: flex;
|
||||||
|
margin-bottom: 24rpx;
|
||||||
|
|
||||||
|
.question-tag {
|
||||||
|
width: 40rpx;
|
||||||
|
height: 40rpx;
|
||||||
|
background-color: #4e7eff;
|
||||||
|
color: #ffffff;
|
||||||
|
font-size: 24rpx;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
border-radius: 8rpx;
|
||||||
|
margin-right: 32rpx;
|
||||||
|
flex-shrink: 0;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
|
||||||
|
.question-content {
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #333333;
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.answer {
|
||||||
|
display: flex;
|
||||||
|
align-items: flex-start;
|
||||||
|
|
||||||
|
.answer-tag {
|
||||||
|
width: 40rpx;
|
||||||
|
height: 40rpx;
|
||||||
|
background-color: #ffbd41;
|
||||||
|
color: #ffffff;
|
||||||
|
font-size: 24rpx;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
border-radius: 8rpx;
|
||||||
|
margin-right: 32rpx;
|
||||||
|
flex-shrink: 0;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
|
||||||
|
.answer-content {
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #666666;
|
||||||
|
flex: 1;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
.answer-text {
|
||||||
|
word-break: break-word;
|
||||||
|
transition: all 0.3s;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:not(.content-expanded) .answer-text {
|
||||||
|
display: -webkit-box;
|
||||||
|
-webkit-line-clamp: 3;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.content-expanded {
|
||||||
|
.expand-btn-container {
|
||||||
|
margin-top: 16rpx;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.expand-btn-container {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:not(.content-expanded) .expand-btn-container {
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
z-index: 2;
|
||||||
|
background-color: #ffffff;
|
||||||
|
padding-left: 10rpx;
|
||||||
|
padding-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.expand-btn {
|
||||||
|
color: #4e7eff;
|
||||||
|
display: inline-block;
|
||||||
|
font-size: 26rpx;
|
||||||
|
cursor: pointer;
|
||||||
|
white-space: nowrap;
|
||||||
|
padding: 0 4rpx;
|
||||||
|
|
||||||
|
.expand-icon {
|
||||||
|
font-size: 20rpx;
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin-left: 4rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 响应式布局 - PC端样式 */
|
||||||
|
@media screen and (min-width: 768px) {
|
||||||
|
.teacherInfo-container {
|
||||||
|
.content {
|
||||||
|
max-width: 1200rpx;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -0,0 +1,296 @@
|
||||||
|
<template>
|
||||||
|
<view class="login-container">
|
||||||
|
<view class="login-header">
|
||||||
|
<view class="logo-container">
|
||||||
|
<image
|
||||||
|
class="logo-icon"
|
||||||
|
src="/static/common/images/images_logo.png"
|
||||||
|
></image>
|
||||||
|
<text class="logo-text"
|
||||||
|
>我是 <text class="logo-name">源小新</text></text
|
||||||
|
>
|
||||||
|
</view>
|
||||||
|
<view class="welcome-text">
|
||||||
|
欢迎使用源小新校园AI助手,快让我来帮助你吧!
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view
|
||||||
|
class="login-form"
|
||||||
|
:style="{ 'padding-top': isTeacher ? '40rpx' : '80rpx' }"
|
||||||
|
>
|
||||||
|
<view class="login-type" v-if="isTeacher">
|
||||||
|
<view
|
||||||
|
class="type-item"
|
||||||
|
:class="{ active: loginType === 'psd' }"
|
||||||
|
@click="switchLoginType('psd')"
|
||||||
|
>密码登录</view
|
||||||
|
>
|
||||||
|
<view class="divider">|</view>
|
||||||
|
<view
|
||||||
|
class="type-item"
|
||||||
|
:class="{ active: loginType === 'code' }"
|
||||||
|
@click="switchLoginType('code')"
|
||||||
|
>验证码登录</view
|
||||||
|
>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="form-content">
|
||||||
|
<view class="form-item">
|
||||||
|
<text class="form-label">手机号</text>
|
||||||
|
<view class="input-wrapper">
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
class="form-input"
|
||||||
|
placeholder="请输入手机号"
|
||||||
|
v-model="phone"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="form-item" v-if="isTeacher && loginType === 'psd'">
|
||||||
|
<text class="form-label">密码</text>
|
||||||
|
<view class="input-wrapper">
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
class="form-input"
|
||||||
|
placeholder="请输入密码"
|
||||||
|
v-model="password"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="form-item" v-if="loginType === 'code'">
|
||||||
|
<text class="form-label">验证码</text>
|
||||||
|
<view class="input-wrapper">
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
class="form-input"
|
||||||
|
placeholder="请输入验证码"
|
||||||
|
v-model="code"
|
||||||
|
/>
|
||||||
|
<text class="get-code-btn" @click="getCode">获取验证码</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="button-container">
|
||||||
|
<button class="login-button" @click="login">登录</button>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
isTeacher: true, // 是否是教师
|
||||||
|
phone: "",
|
||||||
|
password: "",
|
||||||
|
code: "",
|
||||||
|
loginType: "code", // 默认验证码登录,与图片一致
|
||||||
|
};
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
switchLoginType(type) {
|
||||||
|
this.loginType = type;
|
||||||
|
},
|
||||||
|
getCode() {
|
||||||
|
// 获取验证码
|
||||||
|
},
|
||||||
|
login() {
|
||||||
|
// 登录
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.login-container {
|
||||||
|
// min-height: 100vh;
|
||||||
|
height: 100vh;
|
||||||
|
width: 100%;
|
||||||
|
padding: 0 30rpx;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
box-sizing: border-box;
|
||||||
|
|
||||||
|
background-image: url(/static//common/images/images_bg.png);
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
background-position: 50%;
|
||||||
|
|
||||||
|
.login-header {
|
||||||
|
margin-top: 120rpx;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
.logo-container {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
|
||||||
|
.logo-icon {
|
||||||
|
width: 48rpx;
|
||||||
|
height: 38rpx;
|
||||||
|
margin-right: 16rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo-text {
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #333;
|
||||||
|
|
||||||
|
.logo-name {
|
||||||
|
font-family: DouyinSans;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 48rpx;
|
||||||
|
color: #3e6aff;
|
||||||
|
line-height: 24rpx;
|
||||||
|
margin-left: 16rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.welcome-text {
|
||||||
|
font-family: DouyinSans;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 27rpx;
|
||||||
|
color: #5a5f76;
|
||||||
|
margin-bottom: 60rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.login-form {
|
||||||
|
background: linear-gradient(0deg, #f6f6f6 0%, #ffffff 100%);
|
||||||
|
flex: 1;
|
||||||
|
border-radius: 40rpx 40rpx 0 0;
|
||||||
|
padding: 80rpx 40rpx;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
|
||||||
|
.login-type {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: flex-start;
|
||||||
|
margin-bottom: 60rpx;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #999999;
|
||||||
|
|
||||||
|
.type-item {
|
||||||
|
padding: 0 20rpx;
|
||||||
|
position: relative;
|
||||||
|
font-family: PingFang SC;
|
||||||
|
|
||||||
|
&.active {
|
||||||
|
font-size: 32rpx;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #4f6aff;
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
bottom: 4px;
|
||||||
|
left: 50%;
|
||||||
|
-webkit-transform: translateX(-50%);
|
||||||
|
transform: translateX(-50%);
|
||||||
|
width: 76%;
|
||||||
|
height: 0px;
|
||||||
|
border-radius: 3px;
|
||||||
|
box-shadow: 0px 0px 4px 2px rgba(79, 106, 255, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.divider {
|
||||||
|
color: #5a5f76;
|
||||||
|
margin: 0 30rpx;
|
||||||
|
font-weight: 300;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-content {
|
||||||
|
.form-item {
|
||||||
|
margin-bottom: 32rpx;
|
||||||
|
|
||||||
|
.form-label {
|
||||||
|
display: block;
|
||||||
|
position: relative;
|
||||||
|
padding-left: 30rpx;
|
||||||
|
font-family: PingFang SC;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333333;
|
||||||
|
margin-bottom: 16rpx;
|
||||||
|
|
||||||
|
&::before {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
top: 50%;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
width: 20rpx;
|
||||||
|
height: 20rpx;
|
||||||
|
border: 2rpx solid #4370fe;
|
||||||
|
border-radius: 4rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&:nth-child(2) {
|
||||||
|
.form-label::before {
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.input-wrapper {
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
.form-input {
|
||||||
|
width: 100%;
|
||||||
|
height: 90rpx;
|
||||||
|
background-color: #f2f2f2;
|
||||||
|
border-radius: 20rpx;
|
||||||
|
font-size: 28rpx;
|
||||||
|
padding: 0 32rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
|
||||||
|
.uni-input-placeholder {
|
||||||
|
color: #cccccc;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.get-code-btn {
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
top: 50%;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
height: 60rpx;
|
||||||
|
line-height: 60rpx;
|
||||||
|
padding: 0 30rpx;
|
||||||
|
color: #4370fe;
|
||||||
|
font-size: 28rpx;
|
||||||
|
border-left: 1px solid #557bf9;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.button-container {
|
||||||
|
margin-top: 60rpx;
|
||||||
|
|
||||||
|
.login-button {
|
||||||
|
width: 100%;
|
||||||
|
height: 90rpx;
|
||||||
|
background-color: #4f6aff;
|
||||||
|
color: #ffffff;
|
||||||
|
font-size: 32rpx;
|
||||||
|
border-radius: 20rpx;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
After Width: | Height: | Size: 2.0 KiB |
|
@ -0,0 +1 @@
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
// 这是一个占位文件,需要替换为实际的AI头像图标
|
|
@ -0,0 +1 @@
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
// 这是一个占位文件,需要替换为实际的聊天图标
|
|
@ -0,0 +1 @@
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
|
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 9.0 KiB |
After Width: | Height: | Size: 33 KiB |
After Width: | Height: | Size: 2.7 KiB |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 28 KiB |
After Width: | Height: | Size: 823 B |
After Width: | Height: | Size: 25 KiB |
After Width: | Height: | Size: 2.4 KiB |
After Width: | Height: | Size: 725 B |
After Width: | Height: | Size: 4.1 KiB |
After Width: | Height: | Size: 109 KiB |
After Width: | Height: | Size: 8.1 KiB |
After Width: | Height: | Size: 33 KiB |
|
@ -26,8 +26,11 @@ const initApp = function(vm) {
|
||||||
// title: '请先登录',
|
// title: '请先登录',
|
||||||
// icon: 'none'
|
// icon: 'none'
|
||||||
// })
|
// })
|
||||||
|
// uni.navigateTo({
|
||||||
|
// url: config.loginPage
|
||||||
|
// })
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url: config.loginPage
|
url: '/'
|
||||||
})
|
})
|
||||||
return false
|
return false
|
||||||
} else {
|
} else {
|
||||||
|
|