miniprogram

kongweiyu_branch
温雍敬 1 year ago
parent b82317c981
commit 732b7d2b4f

@ -1,13 +1,9 @@
{
"pages": [
"pages/MainTest/MainTest",
"pages/Msg/msg",
"pages/Profile/profile",
"pages/Demand/Demand",
"pages/Recommend/Recommend",
"pages/Tprofile/Tprofile",
"pages/Homework/Homework",
"pages/Comments/Comments"
],
"window": {

@ -1,212 +0,0 @@
const app = getApp()
const db = wx.cloud.database()
Page({
/**
* 页面的初始数据
*/
data: {
mess : '',
content : [],//聊天信息
mineAvatorSrc : '/images/user_male.jpg',
himAvatorSrc : '/images/user_female.jpg',
},
//获取格式化的时间 yyyy-mm-dd-hh:mm-ss
getFormatTime(){
let date = new Date();
let ymd = date.toISOString().substring(0,10);//年-月-日
let hms = date.toTimeString().substring(0,8);//小时-分钟-秒钟
console.log(ymd + "-" + hms);
return ymd + "-" + hms;//拼接
},
//“发送”
sendMess(){
let that = this;
let mess = that.data.mess;
let content = that.data.content;
let date = that.getFormatTime();
let id = that.data.currentId;
wx.showLoading({
title: '发送ing...',
mask: true,
success: (res) => {},
fail: (res) => {},
complete: (res) => {
db.collection('chatTest')
.doc(id)
.update({
data : {
chatContent : content.concat({
id : 0,//用户自己发送为0
text : mess,
date : date
})
},
success:function(res){
console.log("添加成功!",res);
},
fail:function(err){
console.log("添加失败!",err);
},
complete:function(){
that.setData({
mess : '',
})
wx.hideLoading({
noConflict: true,
success: (res) => {},
fail: (res) => {},
complete: (res) => {},
})
}
})
},
})
},
//初始化数据库的字段
initChatContent(){
let that = this;
wx.showLoading({
title: '初始化数据库的字段中...',
mask: true,
success: (res) => {},
fail: (res) => {},
complete: (res) => {
db.collection('chatTest')
.add({
data : {
chatContent : [],//设置一个空的聊天循环体
},
success(res){
console.log("初始化成功!",res);
that.setData({
currentId : res._id//设置当前的id
})
},
fail(err){
console.log("初始化失败!",err);
},
complete(){
wx.hideLoading({
noConflict: true,
success: (res) => {},
fail: (res) => {},
complete: (res) => {},
})
}
})
},
})
},
//查询聊天
queryChat(){
let that = this;
wx.showLoading({
title: '查询...',
mask: true,
success: (res) => {},
fail: (res) => {},
complete: (res) => {
db.collection('chatTest')
//.doc('4efa204964219ab20003873513331ef9')
.get({
success:function(res){
console.log("查询成功!",res);
if(res.data.length == 0){
that.initChatContent();//初始化数据库字段
}
else{
that.setData({
currentId : res.data[0]._id,//设置当前的id
content : res.data[0].chatContent//赋值给当前的聊天循环体
})
//定位到最后一行
that.setData({
toBottom : `item${that.data.content.length - 1}`,
})
}
},
fail:function(err){
console.log("查询失败!",err);
},
complete:function(){
wx.hideLoading({
noConflict: true,
success: (res) => {},
fail: (res) => {},
complete: (res) => {},
})
}
})
},
})
},
//数据库的监听器
dbWatcher(){
let that = this;
db.collection('chatTest').where({
})
.watch({
onChange: function (res) {
//监控数据发生变化时触发
console.log("res:",res);
if(res.docChanges != null){
if(res.docChanges[0].dataType == "update"){//数据库监听到的内容
let length = res.docChanges[0].doc.chatContent.length;
console.log("length : ",length);
let value = res.docChanges[0].doc.chatContent[length - 1];//要增添的内容
console.log("value : ",value);
that.setData({
content : that.data.content.concat(value)
})
//定位到最后一行
that.setData({
toBottom : `item${that.data.content.length - 1}`,
})
}
}
},
onError:(err) => {
console.error(err)
}
})
},
//获取时间并格式化时间
checkDateAndTime(){
let date = new Date();
let ymd = date.toISOString().substring(0,10);//年-月-日
let time = date.toTimeString().substring(0,8);//时:分:秒
console.log("年-月-日 : ",ymd);
console.log("时:分:秒 : ",time);
let resDate = ymd + '-' + time;
console.log("resDate : ",resDate);
},
/**
* 生命周期函数--监听页面加载
*/
// 生命周期函数--监听页面加载
onLoad: function (options) {
this.dbWatcher();
this.queryChat();
},
onReady(){
},
})

@ -1,6 +0,0 @@
{
"usingComponents": {
"cloud-tip-modal": "/components/cloudTipModal/index"
}
}

@ -1,17 +0,0 @@
<view class="container">
<view class="form-box">
<view class="form-group">
<text>需求标题:</text>
<input type="text" placeholder="请输入需求标题" bindinput="handleInputTitle" />
</view>
<view class="form-group">
<text>需求内容:</text>
<textarea placeholder="请输入需求内容" bindinput="handleInputContent"></textarea>
</view>
<view class="form-group">
<text>联系方式:</text>
<input type="text" placeholder="请输入联系方式" bindinput="handleInputContact" />
</view>
</view>
<button class="btn-submit" bindtap="handleSubmit">提交</button>
</view>

@ -1,20 +0,0 @@
.form-box {
border: 1px solid #ccc;
padding: 20rpx;
box-shadow: 3 2rpx 4rpx rgba(0.5, 0.6, 0.6, 0.2);
}
.form-group {
margin-bottom: 20rpx;
box-shadow: 3 2rpx 4rpx rgba(0.5, 0.6, 0.6, 0.2);
}
.btn-submit {
display: block;
width: 200rpx;
margin: 0 auto;
padding: 10rpx 20rpx;
background-color: #2399f1;
color: #fff;
border-radius: 4rpx;
font-size: 32rpx;
text-align: center;
}

@ -1,66 +0,0 @@
// pages/Homework/Homework.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})

@ -1,3 +0,0 @@
{
"usingComponents": {}
}

@ -1,25 +0,0 @@
<!--pages/Homework/Homework.wxml-->
<view class="container">
<view class="form-group">
<text>任务标题:</text>
<input type="text" placeholder="请输入任务标题" />
</view>
<view class="form-group">
<text>任务内容:</text>
<textarea placeholder="请输入任务内容"></textarea>
</view>
<view class="form-group">
<text>截止时间:</text>
<input type="datetime-local" />
</view>
<view class="form-group">
<text>附件:</text>
<button class="btn-attachment">上传附件</button>
</view>
<button class="btn-submit">提交</button>
</view>

@ -1,40 +0,0 @@
.container {
padding: 20rpx;
}
.form-group {
margin-bottom: 20rpx;
}
.label {
display: inline-block;
width: 80rpx;
font-size: 28rpx;
}
.input,
.textarea {
flex: 1;
border: 1rpx solid #ccc;
border-radius: 6rpx;
padding: 10rpx;
font-size: 28rpx;
}
.btn-attachment {
background-color: #eaf0f6;
color: #333;
border: none;
border-radius: 6rpx;
padding: 8rpx 16rpx;
font-size: 28rpx;
}
.btn-submit {
background-color: #2677ff;
color: #fff;
border: none;
border-radius: 6rpx;
padding: 12rpx 24rpx;
font-size: 30rpx;
}

@ -64,12 +64,32 @@ Page({
},
data: {
currentTab: 0
currentTab: 0,
showPopup: false
},
changeTab(e) {
const index = e.currentTarget.dataset.index;
this.setData({
currentTab: parseInt(index)
});
},
onAddButtonTap: function() {
this.setData({
showPopup: true
});
},
onBackButtonTap: function() {
this.setData({
showPopup: false
});
},
handleSubmit: function() {
// 处理....
// 提交成功后隐藏弹窗
this.setData({
showPopup: false
});
}
})

@ -40,30 +40,52 @@
</view>
</view>
<view class="desc">这里是家教帮平台,再也不用担心孩子的学习了</view>
</view>
</view>
</view>
<!-- 学员发布的要求界面 -->
<view wx:if="{{currentTab === 1}}">
<view class="container">
<view class="form-box">
<view class="form-group">
<text>需求标题:</text>
<input type="text" placeholder="请输入需求标题" bindinput="handleInputTitle" />
</view>
<view class="form-group">
<text>需求内容:</text>
<textarea placeholder="请输入需求内容" bindinput="handleInputContent"></textarea>
</view>
<view class="form-group">
<text>联系方式:</text>
<input type="text" placeholder="请输入联系方式" bindinput="handleInputContact" />
<view class="show_information" wx:for="{{[1,2,3,4,5,6]}}">
<!-- //当每通过一个教员上传的简历信息则创建一个 -->
<view class="content-container">
<view class="text-container">
<text class="title">标题</text>
<view>
<text class="description">描述信息</text>
</view>
</view>
</view>
</view>
<view class="page-container">
<!-- 页面内容 -->
<view class="popup" hidden="{{!showPopup}}">
<!-- 弹窗内容 -->
<view class="container">
<view class="form-box">
<view class="form-group">
<text>需求标题:</text>
<input type="text" placeholder="请输入需求标题" bindinput="handleInputTitle" />
</view>
<view class="form-group">
<text>需求内容:</text>
<textarea placeholder="请输入需求内容" bindinput="handleInputContent"></textarea>
</view>
<view class="form-group">
<text>联系方式:</text>
<input type="text" placeholder="请输入联系方式" bindinput="handleInputContact" />
</view>
</view>
<button class="btn-submit" bindtap="handleSubmit">提交</button>
<button class="btn-back" bindtap="onBackButtonTap">返回</button>
</view>
<!-- 弹窗内容 -->
</view>
</view>
<button class="btn-submit" bindtap="handleSubmit">提交</button>
<image src="/images/add.png" class="add-button" bind:tap="onAddButtonTap" />
</view>
</view>
</view>

@ -169,6 +169,17 @@ button {
box-shadow: 3 2rpx 4rpx rgba(0.5, 0.6, 0.6, 0.2);
}
.btn-submit {
display: block;
width: 200rpx;
margin: 0 auto;
padding: 10rpx 20rpx;
background-color: #51d14c;
color: #fff;
border-radius: 4rpx;
font-size: 32rpx;
text-align: center;
}
.btn-back{
display: block;
width: 200rpx;
margin: 0 auto;
@ -179,10 +190,8 @@ button {
font-size: 32rpx;
text-align: center;
}
page {
background-color: #f3f3f4;
}
.content {
@ -505,3 +514,30 @@ page {
color: #ccc;
}
.add-button {
position: fixed;
bottom: 20rpx;
right: 20rpx;
width: 60px;
height: 60px;
border-radius: 50%;
background-color: #8a727a;
z-index: 999;
}
.add-button image {
width: 100%;
height: 100%;
border-radius: 50%;
}
.popup {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background-color: white;
padding: 20rpx;
border-radius: 10rpx;
}

@ -1,12 +0,0 @@
Page({
data: {
currentTab: 0
},
changeTab(e) {
const index = e.currentTarget.dataset.index;
this.setData({
currentTab: parseInt(index)
});
}
});

@ -1,6 +0,0 @@
{
"usingComponents": {
"cloud-tip-modal": "/components/cloudTipModal/index"
}
}

@ -1,12 +0,0 @@
<view class="tab">
<view class="tab-item" bindtap="changeTab" data-index="0">标签1</view>
<view class="tab-item" bindtap="changeTab" data-index="1">标签2</view>
<view class="tab-item" bindtap="changeTab" data-index="2">标签3</view>
</view>
<view class="content">
<!-- 根据tab索引值显示不同内容 -->
<view wx:if="{{currentTab === 0}}">内容1</view>
<view wx:if="{{currentTab === 1}}">内容2</view>
<view wx:if="{{currentTab === 2}}">内容3</view>
</view>

@ -1,348 +0,0 @@
/* pages/wechat2/wechat2.wxss */
page {
background-color: #f3f3f4;
}
.tab {
display: flex;
justify-content: space-around;
}
.tab-item {
padding: 10rpx;
font-size: 60rpx;
}
.content {
margin-top: 20rpx;
}
.btn-choose {
/* 选择按钮样式 */
display: block;
width: 200rpx;
height: 60rpx;
background-color: #4CAF50;
color: #fff;
border-radius: 6rpx;
margin-top: 20rpx;
text-align: center;
line-height: 60rpx;
}
.btn-next {
/* 下一个按钮样式 */
display: block;
width: 200rpx;
height: 60rpx;
background-color: #2196F3;
color: #fff;
border-radius: 6rpx;
margin-top: 10rpx;
text-align: center;
line-height: 60rpx;
}
/* 新增样式 */
.chat-header {
display: flex;
align-items: center;
justify-content: flex-start;
height: 88px;
padding: 0 12px;
background-color: #fff;
border-radius: 0px 0px 10px 10px;
}
.header-image-box {
width: 64px;
height: 64px;
border-radius: 50%;
margin-right: 12px;
}
.header-image {
width: 100%;
height: 100%;
border-radius: 50%;
}
.chat-name {
color: #333;
font-size: 16px;
font-weight: 700;
}
.chat-company {
font-size: 14px;
color: rgba(81, 81, 81, 100);
}
.tab {
padding: 20rpx 20rpx 40rpx 50rpx;
height: 20%;
background-color: white;
}
.tab .tent {
font-size: 33rpx;
margin-bottom: 30rpx;
}
.jia_img{
height: 80rpx;
width: 90rpx;
}
.new_imgtent{
height: 180rpx;
width: 190rpx;
}
.tab .fabu {
font-size: 33rpx;
margin-top: 30rpx;
margin-bottom: 30rpx;
}
.xiahuaxia {
width: 80%;
text-align: center;
margin: 0 auto;
position: relative;
top: 60rpx;
}
.chat-time {
text-align: center;
padding: 5rpx 20rpx 5rpx 20rpx;
width: 200rpx;
font-size: 26rpx;
background-color: #e6e6e6;
}
.new_top_txt {
width: 50%;
position: relative;
top: 38rpx;
text-align: center;
margin: 0 auto;
font-size: 30rpx;
color: #787878;
background-color: #f7f7f7;
}
/* 聊天内容 */
.news {
margin-top: 30px;
text-align: center;
margin-bottom: 98px;
}
.img_null {
height: 60rpx;
}
.l {
height: 5rpx;
width: 20%;
margin-top: 30rpx;
color: #000;
}
/* 聊天 */
.my_right {
float: right;
position: relative;
right: 40rpx;
}
.you_left {
float: left;
position: relative;
left: 5rpx;
}
.new_img {
width: 100rpx;
height: 100rpx;
border-radius: 50%;
}
.sanjiao {
top: 20rpx;
position: relative;
width: 0px;
height: 0px;
border-width: 10px;
border-style: solid;
}
.my {
border-color: transparent transparent transparent #95d4ff;
}
.you {
border-color: transparent #95d4ff transparent transparent;
}
.sendmessage {
/* display: flex;
align-items: center;
flex-direction: row; */
width: 100%;
min-height: 60px;
position: fixed;
bottom: 0px;
padding: 0 16px;
background-color: rgba(242, 242, 242, 100);
box-shadow: 0px -1px 5px 1px rgba(57, 57, 57, 0.1);
}
.send-message {
display: flex;
align-items: center;
padding: 16px;
}
.sendmessage input {
height: 80rpx;
background-color: white;
line-height: 80rpx;
font-size: 28rpx;
padding-left: 20rpx;
}
.sendmessage button {
width: 52px !important;
height: 32px;
line-height: 32px;
background: #169171 !important;
color: #fff !important;
font-size: 14px !important;
text-align: center;
border: 0 !important;
padding: 0 !important;
margin: 0 !important;
}
.historycon {
height: 90%;
/* background-color: pink; */
width: 100%;
flex-direction: column;
display: flex;
/* margin-top: 100rpx; */
border-top: 0px;
}
.hei{
margin-top: 50px;
height: 20rpx;
}
.history {
/* height: 300px; */
margin-top: 30rpx;
margin: 20rpx;
font-size: 28rpx;
line-height: 80rpx;
word-break: break-all;
}
.chat-input{
width: 60%;
height: 40px;
border: 0;
border-radius: 8px;
margin-left: 5rpx;
}
.back-icon{
margin-top: 25rpx;
margin-left: 25rpx;
width:40rpx;
height:40rpx;
}
.other-record-content{
background-color: #fff;
width: 180px;
border-radius: 7px;
padding: 0 20px;
text-align: left;
margin: 6px 0;
}
.other-record{
display: flex;
justify-content:flex-start;
}
.other-head-img{
width:70rpx;
height:70rpx;
border-radius: 50%;
margin: 10rpx 10rpx 10rpx 10rpx;
}
.other-record-content-triangle{
width: 0;
height: 0;
border-top: 10rpx solid transparent;
border-right: 15rpx solid #fff;
border-bottom: 10rpx solid transparent;
margin-top: 36rpx;
}
.own-record{
display: flex;
justify-content:flex-end;
padding-right:30rpx;
}
.own-record-content{
background-color: #209072;
width: 180px;
border-radius: 8px;
padding: 0 20px;
color: #fff;
text-align: left;
margin: 6px 0;
}
.own-record-content-triangle {
width: 0;
height: 0;
/* border-top: 20rpx solid transparent;
border-left: 40rpx solid #F0F0F0;
border-bottom: 20rpx solid transparent; */
border-top: 10rpx solid transparent;
border-left: 15rpx solid #209072;
border-bottom: 10rpx solid transparent;
margin-top: 36rpx;
}
.own-head-img{
width:70rpx;
height:70rpx;
border-radius: 50%;
margin: 10rpx 10rpx 10rpx 10rpx;
}
::-webkit-scrollbar{
width: 0;
height: 0;
color: transparent;
}
.chat-emotion {
width: 28px;
height: 28px;
margin: 0 12px;
}
.emotions {
display: flex;
align-items: flex-start;
justify-content: flex-start;
width: 200px;
height: 36px;
margin: 6px;
}
.emotions-item {
width: 24px;
height: 24px;
margin: 0 8px;
}
.historyText {
color: #ccc;
}

@ -1,20 +0,0 @@
Page({
data:{
hello:'Hi~'
},
change:function(){
this.setData({
hello:this.data.hello+'~~',
});
},
goToPageHom: function() {
wx.navigateTo({
url: '/pages/Recommend/Recommend',
})
},
goToPageMes: function() {
wx.navigateTo({
url: '/pages/Demand/Demand',
})
},
});

@ -1,19 +0,0 @@
{
"pages": [
"pages/Msg/msg",
"pages/Recommend/Recommend"
],
"tabBar": {
"list": [
{
"pagePath": "pages/Recommend/Recommend",
"text": "Recommend"
},
{
"pagePath": "pages/Msg/msg",
"text": "Demand"
}
]
}
}

@ -1,47 +0,0 @@
<view >
<!-- 主页面中展示老师上传的信息 -->
<view>
<view class="button-wrapper">
<button bindtap="goToPageHom">Recommend</button>
<button bindtap="goToPageMes">Demand</button>
</view>
</view>
<!-- 实现教员推荐页面和学员需求页面间的且交换 -->
<!-- 搜索框 -->
<view class="cover">
<scroll-view>
<image src="/images/app.png"class="app"/>
</scroll-view>
</view>
<view class="search-wrapper">
<view class="search-bar">
<input class="search-input" type="text" placeholder="请输入搜索内容"></input>
<button class="search-button">搜索</button>
</view>
</view>
<view class="show_information" wx:for="{{[1,2,3,4,5]}}">
<!-- //当每通过一个教员上传的简历信息则创建一个 -->
<view class="content-container">
<image class="image" src="图片地址"></image>
<view class="text-container">
<text class="title">标题</text>
<view>
<text class="description">描述信息</text>
</view>
</view>
</view>
<view class="button-container">
<button class="button">按钮一</button>
<button class="button">按钮二</button>
</view>
</view>
<view class="desc">这里是家教帮平台,再也不用担心孩子的学习了</view>
</view>

@ -1,137 +0,0 @@
.show_information {
width: 90%;
margin: 20rpx auto;
padding: 20rpx;
background-color: #83acc4;
border-radius: 10rpx;
box-shadow: 0 2rpx 4rpx rgba(0, 0, 0, 0.1);
}
.search-wrapper {
box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.1); /* 设置阴影 */
padding: 10px; /* 设置内边距 */
}
.search-bar {
display: flex;
align-items: center;
justify-content: center;
background-color: #fff; /* 设置背景色 */
border-radius: 5px; /* 设置圆角 */
padding: 10px; /* 设置内边距 */
}
.search-input {
margin-right: 10px;
border: none; /* 去掉输入框默认边框 */
outline: none; /* 去掉获得焦点时的虚线框 */
}
.search-button {
background-color: #838fa3; /* 设置按钮背景色 */
color: #fff; /* 设置按钮文字颜色 */
border: none; /* 去掉按钮默认边框 */
border-radius: 5px; /* 设置按钮圆角 */
padding: 1px 0px; /* 设置按钮内边距 */
width: 2px;
}
.content-container {
display: flex;
align-items: center;
}
.image {
width: 50%;
height: 200rpx;
object-fit: cover;
border-radius: 10rpx 0 0 10rpx;
border: 2rpx solid #ccc; /* 添加框线样式 */
}
.text-container {
flex: 1;
padding: 20rpx;
}
.title {
font-size: 32rpx;
font-weight: bold;
color: #333;
margin-bottom: 10rpx;
}
.description {
font-size: 28rpx;
color: #666;
line-height: 1.5;
}
.button-container {
display: flex;
justify-content: space-between;
margin-top: 20rpx;
}
.button {
flex: 1;
background-color: #48477c;
color: #fff;
font-size: 28rpx;
padding: 10rpx;
border-radius: 5rpx;
text-align: center;
margin-right: 10rpx;
}
.button-wrapper {
display: flex;
justify-content: space-between;
}
button {
background-color: #838fa3;
color: #fff;
border: none;
border-radius: 5px;
padding: 10px 20px;
box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.2); /* 设置阴影 */
}
.custom-button {
padding: 10px 20px;
background-color: #007bff;
color: #fff;
border: none;
border-radius: 5px;
font-size: 16px;
cursor: pointer;
}
.custom-button:hover {
background-color: #0056b3;
}
.cover{
background-color: #f1f1f1;
text-align: center;
padding: 80rpx;
}
.app{
width: 160rpx;
height: 160rpx;
}
.title{
font-weight: 500;
color: #000;
font-size: 44rpx;
margin: 50rpx 32rpx;
}
.desc{
font-weight: 500;
color: #000;
font-size: 44rpx;
margin: 50rpx 32rpx;
}
Loading…
Cancel
Save