添加文件
This commit is contained in:
parent
7d972a7d99
commit
4e0b37ffb0
|
@ -0,0 +1,128 @@
|
|||
<template>
|
||||
<view class="container">
|
||||
<view class="video-box">
|
||||
<video class="video" ref="videoStatus" @play="propsPlay" :src="Videos.src"></video>
|
||||
<view class="box-bottom">
|
||||
<view class="user-info">
|
||||
<u-avatar class="avatar" :src="Videos.avatar"></u-avatar>
|
||||
<text class="username">{{Videos.username}}</text>
|
||||
</view>
|
||||
<u-tag class="tag" :text="Videos.tagName" bg-color="#6c757d" type="info" mode="plain" shape="circle"
|
||||
size="medium"></u-tag>
|
||||
</view>
|
||||
<view class="bottom-title">
|
||||
<text class="title">{{Videos.titleName}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
VideoId: {
|
||||
type: Number,
|
||||
default: null
|
||||
},
|
||||
Videos: {
|
||||
type: Object,
|
||||
default: {
|
||||
src: "",
|
||||
avatar: '',
|
||||
username: 'sdsd',
|
||||
titleName: 'asdsdas',
|
||||
tagName: 'sdasd'
|
||||
}
|
||||
}
|
||||
},
|
||||
name: "cardVideo",
|
||||
data() {
|
||||
return {
|
||||
videoContent: ''
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.videoContent = uni.createVideoContext("video", this)
|
||||
},
|
||||
onLoad() {
|
||||
|
||||
},
|
||||
methods: {
|
||||
propsPlay(e) {
|
||||
const videoContext = this.videoContent
|
||||
const videoStatus = this.$refs.videoStatus
|
||||
this.$emit("onplay", {
|
||||
e,
|
||||
videoStatus,
|
||||
videoContext
|
||||
})
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
$videoBoxradius: 30rpx;
|
||||
$backColor: rgba(170, 85, 255, 0.6);
|
||||
|
||||
.container {
|
||||
padding: 20rpx;
|
||||
|
||||
.video-box {
|
||||
overflow: hidden;
|
||||
border-radius: $videoBoxradius;
|
||||
background-color: $backColor;
|
||||
width: 100%;
|
||||
|
||||
.video {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.box-bottom {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 4%;
|
||||
|
||||
.user-info {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
// width: 26%;
|
||||
justify-content: space-around;
|
||||
}
|
||||
|
||||
.avatar {
|
||||
width: 40rpx;
|
||||
height: 40rpx;
|
||||
border-radius: 50%;
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
|
||||
.username {
|
||||
color: #fff;
|
||||
font-size: $uni-font-size-base;
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
|
||||
.tag {
|
||||
font-size: $uni-font-size-sm;
|
||||
}
|
||||
}
|
||||
|
||||
.bottom-title {
|
||||
text-align: center;
|
||||
color: #fff;
|
||||
font-size: $uni-font-size-subtitle;
|
||||
height: 80rpx;
|
||||
|
||||
.title {
|
||||
line-height: 80rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,93 @@
|
|||
<template>
|
||||
<view class="container">
|
||||
<view class="card-box">
|
||||
<image class="background-image" :src="cardData.imageUrl" mode="aspectFill"></image>
|
||||
<view class="content-box">
|
||||
<div class="avatar-box">
|
||||
<div class="user-info">
|
||||
<u-avatar class="avatar" :src="cardData.avatarUrl"></u-avatar>
|
||||
<text class="username">{{cardData.nikName}}</text>
|
||||
</div>
|
||||
<u-tag :text="cardData.tagName" bg-color="#6c757d" type="info" mode="plain" shape="circle" size="medium" />
|
||||
</div>
|
||||
<div class="description">{{cardData.footName}}</div>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props:{
|
||||
cardData:{
|
||||
type:Object,
|
||||
default:{
|
||||
imageUrl:'',
|
||||
avatarUrl:"",
|
||||
nikName:'',
|
||||
tagName:'',
|
||||
footName:''
|
||||
}
|
||||
}
|
||||
},
|
||||
name: "photosInfo",
|
||||
data() {
|
||||
return {};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.container {
|
||||
padding: 20px;
|
||||
background-color: #282c34;
|
||||
|
||||
}
|
||||
|
||||
.card-box {
|
||||
background-color: rgba(65, 114, 159, 0.8);
|
||||
border-radius: 8px;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.background-image {
|
||||
width: 100%;
|
||||
height: 200px;
|
||||
}
|
||||
|
||||
.content-box {
|
||||
padding: 16px;
|
||||
}
|
||||
|
||||
.avatar-box {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.user-info {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.avatar {
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
border-radius: 50%;
|
||||
margin-right: 12px;
|
||||
}
|
||||
|
||||
.username {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.description {
|
||||
color: #fff;
|
||||
font-weight: 600;
|
||||
margin-top: 8px;
|
||||
font-size: 18px;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,175 @@
|
|||
<template>
|
||||
<div class="comment-card">
|
||||
<div class="comment">
|
||||
<img :src="comment.avatar" class="avatar" />
|
||||
<div class="comment-content">
|
||||
<div class="username">{{ comment.username }}</div>
|
||||
<div class="text">{{ comment.text }}</div>
|
||||
<div class="actions">
|
||||
<span class="like" @click="likeComment">
|
||||
<img src="https://img.icons8.com/ios-glyphs/30/000000/facebook-like.png" class="like-icon" />
|
||||
{{ comment.likes }} 赞
|
||||
</span>
|
||||
<span class="reply" @click="toggleReplyForm">回复</span>
|
||||
<span class="share" @click="shareComment">
|
||||
<img src="https://img.icons8.com/ios-filled/30/000000/share.png" class="share-icon" />
|
||||
分享
|
||||
</span>
|
||||
</div>
|
||||
<div v-if="comment.showReplyForm" class="reply-form">
|
||||
|
||||
<input v-model="newComment" placeholder="发表评论" class="comment-input" />
|
||||
<!-- <button class="comment-button">发表</button> -->
|
||||
<view class="" style="display: flex;align-items: center;width: 200rpx;">
|
||||
<up-button size="large" @click="addComment" type="primary" shape="circle" text="发表"></up-button>
|
||||
</view>
|
||||
</div>
|
||||
<div class="replies">
|
||||
<CommentItem v-for="reply in comment.replies" :key="reply.id" :comment="reply" @reply="handleReply"
|
||||
@like="handleLike" @share="handleShare" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import {
|
||||
defineProps,
|
||||
defineEmits
|
||||
} from 'vue';
|
||||
|
||||
const props = defineProps({
|
||||
comment: Object,
|
||||
});
|
||||
|
||||
const emit = defineEmits(['reply', 'like', 'share']);
|
||||
|
||||
const toggleReplyForm = () => {
|
||||
props.comment.showReplyForm = !props.comment.showReplyForm;
|
||||
};
|
||||
|
||||
const replyToComment = () => {
|
||||
emit('reply', props.comment.id, props.comment.replyText);
|
||||
props.comment.replyText = '';
|
||||
props.comment.showReplyForm = false;
|
||||
};
|
||||
|
||||
const likeComment = () => {
|
||||
emit('like', props.comment.id);
|
||||
};
|
||||
|
||||
const shareComment = () => {
|
||||
emit('share', props.comment.id);
|
||||
};
|
||||
|
||||
const handleReply = (commentId, replyText) => {
|
||||
emit('reply', commentId, replyText);
|
||||
};
|
||||
|
||||
const handleLike = (commentId) => {
|
||||
emit('like', commentId);
|
||||
};
|
||||
|
||||
const handleShare = (commentId) => {
|
||||
emit('share', commentId);
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.comment-card {
|
||||
background-color: #fff;
|
||||
padding: 15px;
|
||||
border-radius: 10px;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
||||
margin-bottom: 15px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.comment {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
.avatar {
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
border-radius: 50%;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.comment-content {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.username {
|
||||
font-weight: bold;
|
||||
color: #007aff;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.text {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.actions {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.like,
|
||||
.reply,
|
||||
.share {
|
||||
color: #007aff;
|
||||
cursor: pointer;
|
||||
margin-right: 15px;
|
||||
}
|
||||
|
||||
.like:hover,
|
||||
.reply:hover,
|
||||
.share:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.like-icon,
|
||||
.share-icon {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin-right: 5px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.reply-form {
|
||||
display: flex;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.reply-input {
|
||||
flex-grow: 1;
|
||||
margin-right: 10px;
|
||||
padding: 10px;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 5px;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.reply-button {
|
||||
padding: 10px 20px;
|
||||
background-color: #007aff;
|
||||
color: #fff;
|
||||
border: none;
|
||||
border-radius: 5px;
|
||||
cursor: pointer;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.reply-button:hover {
|
||||
background-color: #005bb5;
|
||||
}
|
||||
|
||||
.replies {
|
||||
margin-top: 10px;
|
||||
padding-left: 20px;
|
||||
border-left: 2px solid #f0f0f0;
|
||||
}
|
||||
</style>
|
|
@ -1,67 +1,111 @@
|
|||
<template>
|
||||
<view class="container">
|
||||
|
||||
<view class="header">{{ post.title }}</view>
|
||||
<view class="content">{{ post.content }}</view>
|
||||
<view class="comments">
|
||||
<view v-for="comment in comments" :key="comment.id" class="comment">
|
||||
<view class="username">{{ comment.username }}</view>
|
||||
<view class="text">{{ comment.text }}</view>
|
||||
</view>
|
||||
<CommentItem v-for="comment in comments" :key="comment.id" :comment="comment" @reply="handleReply"/>
|
||||
</view>
|
||||
<view class="add-comment">
|
||||
<input v-model="newComment" placeholder="发表评论" />
|
||||
<button @click="addComment">发表</button>
|
||||
|
||||
<input v-model="newComment" placeholder="发表评论" class="comment-input" />
|
||||
<!-- <button class="comment-button">发表</button> -->
|
||||
<view class="" style="display: flex;align-items: center;width: 200rpx;">
|
||||
<up-button size="large" @click="addComment" type="primary" shape="circle" text="发表"></up-button>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import {
|
||||
reactive,ref
|
||||
} from 'vue';
|
||||
import { ref } from 'vue';
|
||||
import CommentItem from './CommentItem.vue';
|
||||
|
||||
|
||||
const post = ref({
|
||||
title: "这是一个讨论帖子",
|
||||
content: "这是帖子的内容,大家可以在评论区讨论。",
|
||||
} )
|
||||
const comments = ref([
|
||||
{ id: 1, username: "Alice", text: "非常好的帖子!" },
|
||||
{ id: 2, username: "Bob", text: "同意楼上的观点!" },
|
||||
])
|
||||
const newComment = ref("")
|
||||
const post = ref({
|
||||
title: "这是一个讨论帖子",
|
||||
content: "这是帖子的内容,大家可以在评论区讨论。",
|
||||
});
|
||||
|
||||
const comments = ref([
|
||||
{ id: 1, username: "Alice", avatar: "https://via.placeholder.com/50", text: "非常好的帖子!", replies: [], showReplyForm: false, replyText: '' },
|
||||
{ id: 2, username: "Bob", avatar: "https://via.placeholder.com/50", text: "同意楼上的观点!", replies: [], showReplyForm: false, replyText: '' },
|
||||
]);
|
||||
|
||||
const addComment = () => {
|
||||
const newId = comments.value.length + 1;
|
||||
comments.value.push({
|
||||
id: newId,
|
||||
username: "匿名用户",
|
||||
text: this.newComment,
|
||||
});
|
||||
newComment.value = "";
|
||||
|
||||
|
||||
const newComment = ref("");
|
||||
|
||||
const addComment = () => {
|
||||
const newId = comments.value.length + 1;
|
||||
comments.value.push({
|
||||
id: newId,
|
||||
username: "匿名用户",
|
||||
avatar: "https://via.placeholder.com/50",
|
||||
text: newComment.value,
|
||||
replies: [],
|
||||
showReplyForm: false,
|
||||
replyText: '',
|
||||
});
|
||||
newComment.value = "";
|
||||
};
|
||||
|
||||
const handleReply = (commentId, replyText) => {
|
||||
const comment = findCommentById(comments.value, commentId);
|
||||
if (comment) {
|
||||
const newReplyId = comment.replies.length + 1;
|
||||
comment.replies.push({
|
||||
id: newReplyId,
|
||||
username: "匿名用户",
|
||||
avatar: "https://via.placeholder.com/50",
|
||||
text: replyText,
|
||||
replies: [],
|
||||
showReplyForm: false,
|
||||
replyText: '',
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
const findCommentById = (comments, id) => {
|
||||
for (const comment of comments) {
|
||||
if (comment.id === id) {
|
||||
return comment;
|
||||
}
|
||||
const reply = findCommentById(comment.replies, id);
|
||||
if (reply) {
|
||||
return reply;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
/* @import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap'); */
|
||||
|
||||
.container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
margin-top: 20px;
|
||||
padding: 20px;
|
||||
font-family: 'Roboto', sans-serif;
|
||||
background-color: #f9f9f9;
|
||||
border-radius: 10px;
|
||||
|
||||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.header {
|
||||
font-size: 24px;
|
||||
font-size: 28px;
|
||||
font-weight: bold;
|
||||
color: #333;
|
||||
text-align: center;
|
||||
margin-bottom: 20px;
|
||||
border-bottom: 2px solid #007aff;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
.content {
|
||||
margin-top: 20px;
|
||||
line-height: 1.5;
|
||||
line-height: 1.6;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.comments {
|
||||
|
@ -69,35 +113,33 @@
|
|||
width: 100%;
|
||||
}
|
||||
|
||||
.comment {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.username {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.add-comment {
|
||||
margin-top: 20px;
|
||||
display: flex;
|
||||
width: 100%;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
input {
|
||||
.comment-input {
|
||||
flex-grow: 1;
|
||||
margin-right: 10px;
|
||||
padding: 10px;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 5px;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
button {
|
||||
padding: 10px;
|
||||
.comment-button {
|
||||
padding: 10px 20px;
|
||||
background-color: #007aff;
|
||||
color: #fff;
|
||||
border: none;
|
||||
border-radius: 5px;
|
||||
cursor: pointer;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.comment-button:hover {
|
||||
background-color: #005bb5;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,56 +1,390 @@
|
|||
<!-- 薪资排行 -->
|
||||
<template>
|
||||
<view class="container">
|
||||
<view class="score-title">积分</view>
|
||||
<view class="score-content">
|
||||
<view class="score-item">
|
||||
<text class="score-label">我的积分:</text>
|
||||
<text class="score-value">1234</text>
|
||||
</view>
|
||||
<view class="score-item">
|
||||
<text class="score-label">可用积分:</text>
|
||||
<text class="score-value">100</text>
|
||||
</view>
|
||||
<view class="score-item">
|
||||
<text class="score-label">积分使用规则:</text>
|
||||
</view>
|
||||
<!-- 更多积分规则和说明 -->
|
||||
</view>
|
||||
</view>
|
||||
<view>
|
||||
<view class="contaier" style="background-color: #FFFFFF;">
|
||||
<view class="top_bg">
|
||||
<view class="one_box">
|
||||
<!-- 第二名 -->
|
||||
<view class="top3">
|
||||
<view class="num_two">
|
||||
<image class="huangguan2" src="../../static/rank/two.png"></image>
|
||||
<image class="top3_head"
|
||||
:src="rankList[1].user.avatar?baseUrl+ rankList[1].user.avatar:'/static/hands.png'">
|
||||
</image>
|
||||
<!-- <view class="top_name">{{twoName}}</view> -->
|
||||
<view class="top_name">{{rankList[1].user.nickName}}</view>
|
||||
<view class="top_sy">{{rankList[1].integral}}<span>分</span></view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 第一名 -->
|
||||
<view class="top3">
|
||||
<view class="num_one">
|
||||
<image class="huangguan1" src="../../static/rank/one.png"></image>
|
||||
<image class="top3_head"
|
||||
:src="rankList[0].user.avatar?baseUrl+ rankList[0].user.avatar:'/static/hands.png'">
|
||||
</image>
|
||||
<!-- <view class="top_name" style="font-size: 30rpx;">{{oneName}}</view> -->
|
||||
<view class="top_name text-bold" style="font-size: 30rpx;">{{rankList[0].user.nickName}}
|
||||
</view>
|
||||
<view class="top_sy">{{rankList[0].integral}}<span>分</span></view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 第三名 -->
|
||||
<view class="top3">
|
||||
<view class="num_three">
|
||||
<image class="huangguan2" src="../../static/rank/three.png"></image>
|
||||
<image class="top3_head"
|
||||
:src="rankList[2].user.avatar?baseUrl+ rankList[2].user.avatar:'/static/hands.png'">
|
||||
</image>
|
||||
<view class="top_name">{{rankList[1].user.nickName}}</view>
|
||||
<view class="top_sy">{{rankList[1].integral}}分</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
||||
<view class="number_sy_box">
|
||||
<view class="number_sy_box_title">
|
||||
<text>分数·统计</text>
|
||||
<text style="position: absolute; right: 20rpx;z-index: 9999; font-size: 24rpx;color: #c3c3c3;">
|
||||
截止:{{nowTime}}
|
||||
</text>
|
||||
</view>
|
||||
<view class="number_sy_main">
|
||||
<view style="width: 50%; text-align: center; border-right: 1px solid #eee;">
|
||||
<view class="number_num1">{{new Number(scocre/rankList.length).toFixed(2)}}分</view>
|
||||
<view class="danwei">平均积分</view>
|
||||
</view>
|
||||
<!-- <view style="width: 50%; text-align: center; z-index: 9999;">
|
||||
<view class="number_num2">96.8%</view>
|
||||
<view class="danwei">就业率</view>
|
||||
</view> -->
|
||||
|
||||
<image mode="widthFix" class="xiaoding_bg" src="../../static/rank/Intersect.png"></image>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="rankList_box">
|
||||
<view class="rankItem" v-if="index<100" v-for="(item,index) in rankList" :key="index">
|
||||
<view class="rankIndex">
|
||||
<text>{{ index + 4 }}</text>
|
||||
</view>
|
||||
<view class="HeardBox">
|
||||
<image class="rankHeard" :src="item.user.avatar?baseUrl+ item.user.avatar:'/static/hands.png'">
|
||||
</image>
|
||||
</view>
|
||||
|
||||
<view class="NameBox">
|
||||
|
||||
<view class="userName text-bold">{{item.user.nickName}}</view>
|
||||
<view class="userPost text-gray">{{item.post}}</view>
|
||||
<view class="color_ccc"><text class="text-blue">{{item.integral}}</text>分</view>
|
||||
</view>
|
||||
<view class="download_box">
|
||||
<image mode="widthFix" src="../../static/rank/download.png"></image>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
// 数据部分可以根据实际需求添加,比如用户积分、可用积分等
|
||||
};
|
||||
},
|
||||
// 方法部分可以根据需要添加,比如用户积分可用于兑换商品等
|
||||
};
|
||||
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
nowTime: '',
|
||||
baseUrl,
|
||||
scocre: null,
|
||||
rankList: []
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
this.getTime();
|
||||
this.getRanking()
|
||||
},
|
||||
methods: {
|
||||
async getRanking() {
|
||||
const resp = await getUserIntegral();
|
||||
console.log(resp)
|
||||
this.rankList = resp.data
|
||||
this.rankList.forEach(e => {
|
||||
this.scocre += e.integral
|
||||
})
|
||||
|
||||
},
|
||||
getTime: function() {
|
||||
|
||||
var date = new Date(),
|
||||
year = date.getFullYear(),
|
||||
month = date.getMonth() + 1,
|
||||
day = date.getDate(),
|
||||
hour = date.getHours() < 10 ? "0" + date.getHours() : date.getHours(),
|
||||
minute = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes(),
|
||||
second = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
|
||||
month >= 1 && month <= 9 ? (month = "0" + month) : "";
|
||||
day >= 0 && day <= 9 ? (day = "0" + day) : "";
|
||||
var timer = year + '-' + month + '-' + day + ' ' + hour + ':00';
|
||||
this.nowTime = timer
|
||||
console.log(this.nowTime);
|
||||
},
|
||||
},
|
||||
filters: {
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.container {
|
||||
padding: 20px;
|
||||
}
|
||||
.score-title {
|
||||
font-size: 18px;
|
||||
font-weight: bold;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.score-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.score-label {
|
||||
flex: 1;
|
||||
text-align: right;
|
||||
}
|
||||
.score-value {
|
||||
flex: 1;
|
||||
text-align: left;
|
||||
font-weight: bold;
|
||||
color: #5677fc;
|
||||
}
|
||||
|
||||
<style lang="scss">
|
||||
.top_bg {
|
||||
width: 750rpx;
|
||||
height: 650rpx;
|
||||
background: url(http://cdn.zhoukaiwen.com/rank_bg.png) no-repeat;
|
||||
background-size: 750rpx;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.one_box {
|
||||
width: 750rpx;
|
||||
height: 260rpx;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 110rpx;
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
}
|
||||
|
||||
.one_box .top3 {
|
||||
width: 210rpx;
|
||||
height: 280rpx;
|
||||
}
|
||||
|
||||
.top_name {
|
||||
width: 100%;
|
||||
height: 55rpx;
|
||||
line-height: 60rpx;
|
||||
color: #f2f2f2;
|
||||
font-size: 26rpx;
|
||||
text-align: center;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.top_sy {
|
||||
width: 100%;
|
||||
height: 40rpx;
|
||||
line-height: 40rpx;
|
||||
font-size: 24rpx;
|
||||
color: rgba(255, 255, 255, .7);
|
||||
text-align: center;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.top_sy span {
|
||||
font-size: 20rpx !important;
|
||||
}
|
||||
|
||||
.num_one {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.huangguan1 {
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
position: absolute;
|
||||
right: -10rpx;
|
||||
top: -18*2rpx;
|
||||
}
|
||||
|
||||
.num_one .top3_head {
|
||||
width: 150rpx;
|
||||
height: 150rpx;
|
||||
border-radius: 100%;
|
||||
margin: 15rpx 0 0 30rpx;
|
||||
border: 4rpx solid #ffdd3c;
|
||||
}
|
||||
|
||||
.num_two {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.huangguan2 {
|
||||
width: 100rpx;
|
||||
height: 100rpx;
|
||||
position: absolute;
|
||||
right: 15rpx;
|
||||
}
|
||||
|
||||
.num_two .top3_head {
|
||||
width: 120rpx;
|
||||
height: 120rpx;
|
||||
border-radius: 100%;
|
||||
margin: 45rpx 0 0 45rpx;
|
||||
border: 4rpx solid #bcdcdf;
|
||||
}
|
||||
|
||||
.num_three {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.huangguan2 {
|
||||
width: 100rpx;
|
||||
height: 100rpx;
|
||||
position: absolute;
|
||||
right: 15rpx;
|
||||
}
|
||||
|
||||
.num_three .top3_head {
|
||||
width: 120rpx;
|
||||
height: 120rpx;
|
||||
border-radius: 100%;
|
||||
margin: 45rpx 0 0 45rpx;
|
||||
border: 4rpx solid #e29d85;
|
||||
}
|
||||
|
||||
// 第二块
|
||||
.number_sy_box {
|
||||
width: 700rpx;
|
||||
height: 210rpx;
|
||||
background-color: #FFFFFF;
|
||||
position: absolute;
|
||||
left: 25rpx;
|
||||
border-radius: 20rpx;
|
||||
bottom: -115rpx;
|
||||
z-index: 999;
|
||||
padding: 22rpx;
|
||||
box-shadow: 3px 3px 15px 3px rgba(0, 0, 0, 0.1)
|
||||
}
|
||||
|
||||
.number_sy_box_title {
|
||||
color: #888888;
|
||||
// font-weight: 500;
|
||||
font-size: 28rpx;
|
||||
display: flex;
|
||||
z-index: 9999;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.number_sy_main {
|
||||
width: 100%;
|
||||
height: 124rpx;
|
||||
padding-top: 20rpx;
|
||||
line-height: 52rpx;
|
||||
// background: red;
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.xiaoding_bg {
|
||||
position: absolute;
|
||||
right: -22rpx;
|
||||
bottom: -30rpx;
|
||||
width: 180rpx;
|
||||
}
|
||||
|
||||
.number_num1 {
|
||||
font-size: 40rpx;
|
||||
font-weight: 500;
|
||||
color: #2fc04f;
|
||||
}
|
||||
|
||||
.number_num2 {
|
||||
font-size: 40rpx;
|
||||
font-weight: 500;
|
||||
color: #4bac7f;
|
||||
}
|
||||
|
||||
.danwei {
|
||||
height: 60rpx;
|
||||
line-height: 60rpx;
|
||||
font-size: 26rpx;
|
||||
color: #c9c9c9;
|
||||
}
|
||||
|
||||
// 列表
|
||||
.rankList_box {
|
||||
width: 750rpx;
|
||||
min-height: 200rpx;
|
||||
margin-top: 130rpx;
|
||||
}
|
||||
|
||||
.rankItem:last-child {
|
||||
border: none;
|
||||
}
|
||||
|
||||
.rankItem {
|
||||
width: 700rpx;
|
||||
height: 140rpx;
|
||||
margin: 0px auto;
|
||||
border-bottom: 1px solid #e9e9e9;
|
||||
}
|
||||
|
||||
.rankIndex {
|
||||
width: 60rpx;
|
||||
height: 140rpx;
|
||||
line-height: 140rpx;
|
||||
text-align: center;
|
||||
color: #CCCCCC;
|
||||
font-size: 40rpx;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.HeardBox {
|
||||
width: 100rpx;
|
||||
height: 100rpx;
|
||||
margin: 20rpx;
|
||||
border-radius: 100%;
|
||||
overflow: hidden;
|
||||
float: left;
|
||||
margin-right: 25rpx;
|
||||
margin-left: 10rpx !important;
|
||||
}
|
||||
|
||||
.HeardBox image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.NameBox {
|
||||
width: 400rpx;
|
||||
height: 140rpx;
|
||||
float: left;
|
||||
padding-top: 10rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.NameBox view {
|
||||
height: 50rpx;
|
||||
line-height: 70rpx;
|
||||
}
|
||||
|
||||
.userName {
|
||||
min-width: 90rpx;
|
||||
font-size: 30rpx;
|
||||
float: left;
|
||||
margin-right: 20rpx;
|
||||
}
|
||||
|
||||
.download_box {
|
||||
width: 80rpx;
|
||||
height: 140rpx;
|
||||
// background-color: red;
|
||||
float: right;
|
||||
|
||||
}
|
||||
|
||||
.download_box image {
|
||||
width: 45rpx;
|
||||
margin: 50rpx auto;
|
||||
display: block;
|
||||
}
|
||||
</style>
|
|
@ -1,187 +1,156 @@
|
|||
<template>
|
||||
<view>
|
||||
<!--swiper实现整屏划动播放视频-->
|
||||
<swiper circular vertical duration="200" @transition="transition" @change="changed"
|
||||
:style="{height: screenHeight-navBarHeight +'px'}">
|
||||
<block v-for="(item,index) in displaySwiperList" :key="index">
|
||||
<swiper-item>
|
||||
<!-- v-if="index==changeIndex" 只渲染当前页的视频,能够有效解决数组不断追加后引起黑屏的问题 -->
|
||||
<video v-if="index==changeIndex" :src="item.src" autoplay="true" controls="true"
|
||||
custom-cache="false" loop="false" enable-play-gesture="true" enable-progress-gesture="true"
|
||||
show-center-play-btn="true">
|
||||
</video>
|
||||
<!-- 文本标题 -->
|
||||
<view class="video-text">
|
||||
<view class="tips"> {{item.title}} </view>
|
||||
</view>
|
||||
</swiper-item>
|
||||
</block>
|
||||
</swiper>
|
||||
|
||||
<view class="content">
|
||||
<view class="swiper-item">
|
||||
<card-video style="margin-bottom: 20px;" @onplay="getVideo" :VideoId="index" :key="index"
|
||||
v-for="(item,index) in videoList" :Videos="item"></card-video>
|
||||
</view>
|
||||
<!-- <u-loadmore :status="status" @loadmore="onReachLoad" /> -->
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import cardVideo from "@/components/cardVideo.vue"
|
||||
// import {
|
||||
// UserVideo
|
||||
// } from "../../../api/videoApi.js"
|
||||
// import {userImage} from "../../../api/image.js"
|
||||
import potoInfo from "@/components/photosInfo.vue"
|
||||
// import api from "../../../api/api.js"
|
||||
export default {
|
||||
components: {
|
||||
cardVideo,
|
||||
potoInfo
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
screenHeight: 0,
|
||||
statusBarHeight: 0,
|
||||
navBarHeight: 0,
|
||||
originList: [], // 源数据
|
||||
displaySwiperList: [], // swiper需要的数据
|
||||
displayIndex: 0, // 用于显示swiper的真正的下标数值只有:0,1,2。
|
||||
originIndex: 0, // 记录源数据的下标
|
||||
changeIndex: 0, //控制video是否渲染
|
||||
page: 0, // 视频分页
|
||||
num: 0,
|
||||
flag: true
|
||||
status: "loadmore",
|
||||
list: [{
|
||||
name: '视频'
|
||||
}, {
|
||||
name: '图片'
|
||||
}],
|
||||
current: 0,
|
||||
imageList: [],
|
||||
swpper: {
|
||||
index: 0
|
||||
},
|
||||
page: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
total: 0
|
||||
},
|
||||
videoList: [{
|
||||
src: "",
|
||||
avatar: 'dsfs',
|
||||
username: 'sdsd',
|
||||
titleName: 'asdsdas',
|
||||
tagName: 'sdasd'
|
||||
}],
|
||||
videoContext: null
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
/* 获取系统信息 */
|
||||
wx.getSystemInfo({
|
||||
success: (res) => {
|
||||
// 获取屏幕高度
|
||||
this.screenHeight = res.screenHeight
|
||||
// 获取状态栏高度
|
||||
this.statusBarHeight = res.statusBarHeight
|
||||
// 通过操作系统 确定自定义导航栏高度
|
||||
if (res.system.substring(0, 3) == "iOS") {
|
||||
this.navBarHeight = 42
|
||||
} else {
|
||||
this.navBarHeight = 40
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
// 调用函数
|
||||
this.getPageID()
|
||||
|
||||
// this.ISstatusInit()
|
||||
},
|
||||
|
||||
methods: {
|
||||
/* 生成随机的 pageID */
|
||||
getPageID() {
|
||||
let pageID = parseInt(Math.random() * (0 - 100 + 1) + 100) //生成 [min,max] 的随机数
|
||||
this.getVideoList(pageID)
|
||||
},
|
||||
/* 获取视频数据 */
|
||||
getVideoList(pageID) {
|
||||
uni.request({
|
||||
url: 'https://api.apiopen.top/api/getMiniVideo?page=' + pageID +
|
||||
'&size=10&pageSize=10', // 请求数据接口
|
||||
data: {},
|
||||
success: (res) => {
|
||||
if (res.data.code == 200) {
|
||||
res.data.result.list.forEach(item => {
|
||||
//取源数据的部分属性组合成新的数组
|
||||
let obj = {}
|
||||
obj.src = item.playurl
|
||||
obj.title = item.title
|
||||
|
||||
this.originList.push(obj)
|
||||
})
|
||||
}
|
||||
//解决首次加载页面的时候没有画面的问题
|
||||
if (this.flag) {
|
||||
this.flag = false
|
||||
this.initSwiperData(0)
|
||||
}
|
||||
|
||||
}
|
||||
})
|
||||
},
|
||||
changed(event) {
|
||||
let {
|
||||
current
|
||||
} = event.detail;
|
||||
let originListLength = this.originList.length;
|
||||
this.changeIndex = current;
|
||||
// console.log(this.displayIndex,current)
|
||||
// 如果两者的差为2或者-1则是向后滑动
|
||||
if (this.displayIndex - current == 2 || this.displayIndex - current == -1) {
|
||||
this.originIndex = this.originIndex + 1 == originListLength ? 0 : this.originIndex + 1;
|
||||
this.displayIndex = this.displayIndex + 1 == 3 ? 0 : this.displayIndex + 1;
|
||||
|
||||
this.initSwiperData(this.originIndex);
|
||||
//如果滑到最后一条,请求新数据
|
||||
this.num++
|
||||
console.log('num', this.num, this.originList.length)
|
||||
if (this.num + 5 >= this.originList.length) {
|
||||
|
||||
this.getPageID()
|
||||
}
|
||||
getVideo(e) {
|
||||
console.log(e)
|
||||
if (this.videoContext) {
|
||||
console.log("test")
|
||||
this.videoContext.pause()
|
||||
}
|
||||
// 如果两者的差为-2或者1则是向前滑动
|
||||
else if (this.displayIndex - current == -2 || this.displayIndex - current == 1) {
|
||||
this.originIndex = this.originIndex - 1 == -1 ? originListLength - 1 : this.originIndex - 1;
|
||||
this.displayIndex = this.displayIndex - 1 == -1 ? 2 : this.displayIndex - 1;
|
||||
this.initSwiperData(this.originIndex);
|
||||
|
||||
if (this.num > 0) {
|
||||
this.num--
|
||||
this.videoContext = e.videoContext
|
||||
},
|
||||
ISstatusInit() {
|
||||
switch (this.swpper.index) { //根据页面进行判断
|
||||
case 0: {
|
||||
this.getVideoList()
|
||||
break
|
||||
}
|
||||
case 1: {
|
||||
this.getImageList()
|
||||
}
|
||||
}
|
||||
},
|
||||
onReachLoad() {
|
||||
|
||||
initSwiperData(originIndex = this.originIndex) {
|
||||
// console.log(this.displayIndex,originIndex)
|
||||
// 0 0
|
||||
// 1 1
|
||||
// 2 2
|
||||
// 0 3
|
||||
// 1 4
|
||||
//源数据长度
|
||||
let originListLength = this.originList.length;
|
||||
let displayList = [];
|
||||
displayList[this.displayIndex] = this.originList[originIndex];
|
||||
displayList[this.displayIndex - 1 == -1 ? 2 : this.displayIndex - 1] = this.originList[originIndex - 1 == -
|
||||
1 ? originListLength - 1 : originIndex - 1];
|
||||
displayList[this.displayIndex + 1 == 3 ? 0 : this.displayIndex + 1] = this.originList[originIndex + 1 ==
|
||||
originListLength ? 0 : originIndex + 1];
|
||||
// console.log(originIndex, (originIndex - 1 == -1 ? originListLength - 1 : originIndex - 1), (originIndex +
|
||||
// 1 == originListLength ? 0 : originIndex + 1))
|
||||
// 0 9 1
|
||||
// 1 0 2
|
||||
// 2 1 3
|
||||
// 3 2 4
|
||||
// 4 3 5
|
||||
//刷新数据
|
||||
this.displaySwiperList = displayList;
|
||||
// console.log(this.displaySwiperList,this.originList)
|
||||
this.status = 'loading';
|
||||
this.page.pageSize += 10
|
||||
this.ISstatusInit()
|
||||
console.log(this.swpper.index)
|
||||
if (this.list.length >= this.page.total) {
|
||||
|
||||
console.log(this.list.length)
|
||||
this.status = 'nomore'
|
||||
} else {
|
||||
this.status = "loadmore"
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
async getVideoList() {
|
||||
const __this = this
|
||||
// UserVideo(this.page).then(res => {
|
||||
// console.log(res)
|
||||
// __this.page.total = res.total
|
||||
// const list = res.data
|
||||
// if (list.length == 0) {
|
||||
// return uni.showToast({
|
||||
// icon: "none",
|
||||
// title: res.msg
|
||||
// })
|
||||
// }
|
||||
// for (let i of list) {
|
||||
// __this.videoList.push({
|
||||
// src: `${api.qiNiuUrl}/${i.VideoUrl}`,
|
||||
// avatar: i.user_pic,
|
||||
// username: i.nikename,
|
||||
// titleName: i.filename,
|
||||
// tagName: i.type
|
||||
// })
|
||||
// }
|
||||
// })
|
||||
},
|
||||
change(e) {
|
||||
console.log(e)
|
||||
this.swpper.index = e.index
|
||||
this.page = {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
total: 0
|
||||
}
|
||||
this.ISstatusInit()
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
swiper {
|
||||
<style lang="scss">
|
||||
.content {
|
||||
.nav {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
position: fixed;
|
||||
top: 0%;
|
||||
justify-content: center;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
// background-color: $w-BgColor;
|
||||
position: relative;
|
||||
|
||||
swiper {
|
||||
position: relative;
|
||||
top: 90rpx;
|
||||
|
||||
swiper-item {
|
||||
overflow: scroll;
|
||||
}
|
||||
}
|
||||
|
||||
width: 100%;
|
||||
background: #000
|
||||
}
|
||||
|
||||
swiper-item {
|
||||
height: 100%;
|
||||
width: 100%
|
||||
}
|
||||
|
||||
video {
|
||||
height: 96%;
|
||||
width: 100%
|
||||
}
|
||||
|
||||
.video-text {
|
||||
position: absolute;
|
||||
margin-left: 32rpx;
|
||||
width: 580rpx;
|
||||
bottom: 200rpx;
|
||||
z-index: 9999;
|
||||
}
|
||||
|
||||
.tips {
|
||||
width: 560rpx;
|
||||
font-size: 26rpx;
|
||||
color: #ffffff;
|
||||
height: 100vh;
|
||||
padding-bottom: 10%;
|
||||
}
|
||||
</style>
|
|
@ -21,7 +21,7 @@ const _sfc_main = {
|
|||
console.log("App Hide");
|
||||
}
|
||||
};
|
||||
const App = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__file", "E:/DAN/wexinxiaochengxude/NewCode2/gree_leran/App.vue"]]);
|
||||
const App = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__file", "C:/Users/33043/Desktop/文件/work/newStud学习/greenStu/App.vue"]]);
|
||||
function createApp() {
|
||||
const app = common_vendor.createSSRApp(App);
|
||||
return {
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,73 @@
|
|||
"use strict";
|
||||
const common_vendor = require("../common/vendor.js");
|
||||
const _sfc_main = {
|
||||
props: {
|
||||
VideoId: {
|
||||
type: Number,
|
||||
default: null
|
||||
},
|
||||
Videos: {
|
||||
type: Object,
|
||||
default: {
|
||||
src: "",
|
||||
avatar: "",
|
||||
username: "sdsd",
|
||||
titleName: "asdsdas",
|
||||
tagName: "sdasd"
|
||||
}
|
||||
}
|
||||
},
|
||||
name: "cardVideo",
|
||||
data() {
|
||||
return {
|
||||
videoContent: ""
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.videoContent = common_vendor.index.createVideoContext("video", this);
|
||||
},
|
||||
onLoad() {
|
||||
},
|
||||
methods: {
|
||||
propsPlay(e) {
|
||||
const videoContext = this.videoContent;
|
||||
const videoStatus = this.$refs.videoStatus;
|
||||
this.$emit("onplay", {
|
||||
e,
|
||||
videoStatus,
|
||||
videoContext
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
if (!Array) {
|
||||
const _easycom_u_avatar2 = common_vendor.resolveComponent("u-avatar");
|
||||
const _easycom_u_tag2 = common_vendor.resolveComponent("u-tag");
|
||||
(_easycom_u_avatar2 + _easycom_u_tag2)();
|
||||
}
|
||||
const _easycom_u_avatar = () => "../node-modules/uview-plus/components/u-avatar/u-avatar.js";
|
||||
const _easycom_u_tag = () => "../node-modules/uview-plus/components/u-tag/u-tag.js";
|
||||
if (!Math) {
|
||||
(_easycom_u_avatar + _easycom_u_tag)();
|
||||
}
|
||||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return {
|
||||
a: common_vendor.o((...args) => $options.propsPlay && $options.propsPlay(...args)),
|
||||
b: $props.Videos.src,
|
||||
c: common_vendor.p({
|
||||
src: $props.Videos.avatar
|
||||
}),
|
||||
d: common_vendor.t($props.Videos.username),
|
||||
e: common_vendor.p({
|
||||
text: $props.Videos.tagName,
|
||||
["bg-color"]: "#6c757d",
|
||||
type: "info",
|
||||
mode: "plain",
|
||||
shape: "circle",
|
||||
size: "medium"
|
||||
}),
|
||||
f: common_vendor.t($props.Videos.titleName)
|
||||
};
|
||||
}
|
||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "C:/Users/33043/Desktop/文件/work/newStud学习/greenStu/components/cardVideo.vue"]]);
|
||||
wx.createComponent(Component);
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"component": true,
|
||||
"usingComponents": {
|
||||
"u-avatar": "../node-modules/uview-plus/components/u-avatar/u-avatar",
|
||||
"u-tag": "../node-modules/uview-plus/components/u-tag/u-tag"
|
||||
}
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
<view class="container"><view class="video-box"><video class="video" ref="videoStatus" bindplay="{{a}}" src="{{b}}"></video><view class="box-bottom"><view class="user-info"><u-avatar wx:if="{{c}}" class="avatar" u-i="2f388469-0" bind:__l="__l" u-p="{{c}}"></u-avatar><text class="username">{{d}}</text></view><u-tag wx:if="{{e}}" class="tag" u-i="2f388469-1" bind:__l="__l" u-p="{{e}}"></u-tag></view><view class="bottom-title"><text class="title">{{f}}</text></view></view></view>
|
|
@ -0,0 +1,72 @@
|
|||
/**
|
||||
* 这里是uni-app内置的常用样式变量
|
||||
*
|
||||
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
|
||||
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
|
||||
*
|
||||
*/
|
||||
/**
|
||||
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
|
||||
*
|
||||
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
|
||||
*/
|
||||
/* 颜色变量 */
|
||||
/* 行为相关颜色 */
|
||||
/* 文字基本颜色 */
|
||||
/* 背景颜色 */
|
||||
/* 边框颜色 */
|
||||
/* 尺寸变量 */
|
||||
/* 文字尺寸 */
|
||||
/* 图片尺寸 */
|
||||
/* Border Radius */
|
||||
/* 水平间距 */
|
||||
/* 垂直间距 */
|
||||
/* 透明度 */
|
||||
/* 文章场景相关 */
|
||||
.container {
|
||||
padding: 20rpx;
|
||||
}
|
||||
.container .video-box {
|
||||
overflow: hidden;
|
||||
border-radius: 30rpx;
|
||||
background-color: rgba(170, 85, 255, 0.6);
|
||||
width: 100%;
|
||||
}
|
||||
.container .video-box .video {
|
||||
width: 100%;
|
||||
}
|
||||
.container .video-box .box-bottom {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 4%;
|
||||
}
|
||||
.container .video-box .box-bottom .user-info {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: space-around;
|
||||
}
|
||||
.container .video-box .box-bottom .avatar {
|
||||
width: 40rpx;
|
||||
height: 40rpx;
|
||||
border-radius: 50%;
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
.container .video-box .box-bottom .username {
|
||||
color: #fff;
|
||||
font-size: 14px;
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
.container .video-box .box-bottom .tag {
|
||||
font-size: 12px;
|
||||
}
|
||||
.container .video-box .bottom-title {
|
||||
text-align: center;
|
||||
color: #fff;
|
||||
font-size: 26px;
|
||||
height: 80rpx;
|
||||
}
|
||||
.container .video-box .bottom-title .title {
|
||||
line-height: 80rpx;
|
||||
}
|
|
@ -16,5 +16,5 @@ const _sfc_main = {
|
|||
};
|
||||
}
|
||||
};
|
||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__file", "E:/DAN/wexinxiaochengxude/NewCode2/gree_leran/components/newsCard.vue"]]);
|
||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__file", "C:/Users/33043/Desktop/文件/work/newStud学习/greenStu/components/newsCard.vue"]]);
|
||||
wx.createComponent(Component);
|
||||
|
|
|
@ -0,0 +1,50 @@
|
|||
"use strict";
|
||||
const common_vendor = require("../common/vendor.js");
|
||||
const _sfc_main = {
|
||||
props: {
|
||||
cardData: {
|
||||
type: Object,
|
||||
default: {
|
||||
imageUrl: "",
|
||||
avatarUrl: "",
|
||||
nikName: "",
|
||||
tagName: "",
|
||||
footName: ""
|
||||
}
|
||||
}
|
||||
},
|
||||
name: "photosInfo",
|
||||
data() {
|
||||
return {};
|
||||
}
|
||||
};
|
||||
if (!Array) {
|
||||
const _easycom_u_avatar2 = common_vendor.resolveComponent("u-avatar");
|
||||
const _easycom_u_tag2 = common_vendor.resolveComponent("u-tag");
|
||||
(_easycom_u_avatar2 + _easycom_u_tag2)();
|
||||
}
|
||||
const _easycom_u_avatar = () => "../node-modules/uview-plus/components/u-avatar/u-avatar.js";
|
||||
const _easycom_u_tag = () => "../node-modules/uview-plus/components/u-tag/u-tag.js";
|
||||
if (!Math) {
|
||||
(_easycom_u_avatar + _easycom_u_tag)();
|
||||
}
|
||||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return {
|
||||
a: $props.cardData.imageUrl,
|
||||
b: common_vendor.p({
|
||||
src: $props.cardData.avatarUrl
|
||||
}),
|
||||
c: common_vendor.t($props.cardData.nikName),
|
||||
d: common_vendor.p({
|
||||
text: $props.cardData.tagName,
|
||||
["bg-color"]: "#6c757d",
|
||||
type: "info",
|
||||
mode: "plain",
|
||||
shape: "circle",
|
||||
size: "medium"
|
||||
}),
|
||||
e: common_vendor.t($props.cardData.footName)
|
||||
};
|
||||
}
|
||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "C:/Users/33043/Desktop/文件/work/newStud学习/greenStu/components/photosInfo.vue"]]);
|
||||
wx.createComponent(Component);
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"component": true,
|
||||
"usingComponents": {
|
||||
"u-avatar": "../node-modules/uview-plus/components/u-avatar/u-avatar",
|
||||
"u-tag": "../node-modules/uview-plus/components/u-tag/u-tag"
|
||||
}
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
<view class="container"><view class="card-box"><image class="background-image" src="{{a}}" mode="aspectFill"></image><view class="content-box"><view class="avatar-box"><view class="user-info"><u-avatar wx:if="{{b}}" class="avatar" u-i="6e2f10a1-0" bind:__l="__l" u-p="{{b}}"></u-avatar><text class="username">{{c}}</text></view><u-tag wx:if="{{d}}" u-i="6e2f10a1-1" bind:__l="__l" u-p="{{d}}"/></view><view class="description">{{e}}</view></view></view></view>
|
|
@ -0,0 +1,44 @@
|
|||
|
||||
.container {
|
||||
padding: 20px;
|
||||
background-color: #282c34;
|
||||
}
|
||||
.card-box {
|
||||
background-color: rgba(65, 114, 159, 0.8);
|
||||
border-radius: 8px;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
.background-image {
|
||||
width: 100%;
|
||||
height: 200px;
|
||||
}
|
||||
.content-box {
|
||||
padding: 16px;
|
||||
}
|
||||
.avatar-box {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.user-info {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.avatar {
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
border-radius: 50%;
|
||||
margin-right: 12px;
|
||||
}
|
||||
.username {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
color: #fff;
|
||||
}
|
||||
.description {
|
||||
color: #fff;
|
||||
font-weight: 600;
|
||||
margin-top: 8px;
|
||||
font-size: 18px;
|
||||
}
|
|
@ -132,5 +132,5 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|||
p: common_vendor.o((...args) => $options.clickHandler && $options.clickHandler(...args))
|
||||
});
|
||||
}
|
||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-14a988f2"], ["__file", "E:/DAN/wexinxiaochengxude/NewCode2/gree_leran/node_modules/uview-plus/components/u-avatar/u-avatar.vue"]]);
|
||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-14a988f2"], ["__file", "C:/Users/33043/Desktop/文件/work/newStud学习/greenStu/node_modules/uview-plus/components/u-avatar/u-avatar.vue"]]);
|
||||
wx.createComponent(Component);
|
||||
|
|
|
@ -195,5 +195,5 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|||
G: common_vendor.n($options.bemClass)
|
||||
});
|
||||
}
|
||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-461e713c"], ["__file", "E:/DAN/wexinxiaochengxude/NewCode2/gree_leran/node_modules/uview-plus/components/u-button/u-button.vue"]]);
|
||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-461e713c"], ["__file", "C:/Users/33043/Desktop/文件/work/newStud学习/greenStu/node_modules/uview-plus/components/u-button/u-button.vue"]]);
|
||||
wx.createComponent(Component);
|
||||
|
|
|
@ -95,5 +95,5 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|||
D: common_vendor.o((...args) => $options.clickHandler && $options.clickHandler(...args))
|
||||
});
|
||||
}
|
||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-b4243719"], ["__file", "E:/DAN/wexinxiaochengxude/NewCode2/gree_leran/node_modules/uview-plus/components/u-cell/u-cell.vue"]]);
|
||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-b4243719"], ["__file", "C:/Users/33043/Desktop/文件/work/newStud学习/greenStu/node_modules/uview-plus/components/u-cell/u-cell.vue"]]);
|
||||
wx.createComponent(Component);
|
||||
|
|
|
@ -107,5 +107,5 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|||
d: common_vendor.s($options.itemStyle)
|
||||
} : {});
|
||||
}
|
||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-d5274fb5"], ["__file", "E:/DAN/wexinxiaochengxude/NewCode2/gree_leran/node_modules/uview-plus/components/u-grid-item/u-grid-item.vue"]]);
|
||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-d5274fb5"], ["__file", "C:/Users/33043/Desktop/文件/work/newStud学习/greenStu/node_modules/uview-plus/components/u-grid-item/u-grid-item.vue"]]);
|
||||
wx.createComponent(Component);
|
||||
|
|
|
@ -64,5 +64,5 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|||
a: common_vendor.s($options.gridStyle)
|
||||
};
|
||||
}
|
||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-85602471"], ["__file", "E:/DAN/wexinxiaochengxude/NewCode2/gree_leran/node_modules/uview-plus/components/u-grid/u-grid.vue"]]);
|
||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-85602471"], ["__file", "C:/Users/33043/Desktop/文件/work/newStud学习/greenStu/node_modules/uview-plus/components/u-grid/u-grid.vue"]]);
|
||||
wx.createComponent(Component);
|
||||
|
|
|
@ -88,5 +88,5 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|||
t: common_vendor.n("u-icon--" + _ctx.labelPos)
|
||||
});
|
||||
}
|
||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-1c933a9a"], ["__file", "E:/DAN/wexinxiaochengxude/NewCode2/gree_leran/node_modules/uview-plus/components/u-icon/u-icon.vue"]]);
|
||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-1c933a9a"], ["__file", "C:/Users/33043/Desktop/文件/work/newStud学习/greenStu/node_modules/uview-plus/components/u-icon/u-icon.vue"]]);
|
||||
wx.createComponent(Component);
|
||||
|
|
213
unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-input/u-input.js
vendored
Normal file
213
unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-input/u-input.js
vendored
Normal file
|
@ -0,0 +1,213 @@
|
|||
"use strict";
|
||||
const common_vendor = require("../../../../common/vendor.js");
|
||||
const _sfc_main = {
|
||||
name: "u-input",
|
||||
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$10],
|
||||
data() {
|
||||
return {
|
||||
// 清除操作
|
||||
clearInput: false,
|
||||
// 输入框的值
|
||||
innerValue: "",
|
||||
// 是否处于获得焦点状态
|
||||
focused: false,
|
||||
// value是否第一次变化,在watch中,由于加入immediate属性,会在第一次触发,此时不应该认为value发生了变化
|
||||
firstChange: true,
|
||||
// value绑定值的变化是由内部还是外部引起的
|
||||
changeFromInner: false,
|
||||
// 过滤处理方法
|
||||
innerFormatter: (value) => value
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
modelValue: {
|
||||
immediate: true,
|
||||
handler(newVal, oldVal) {
|
||||
this.innerValue = newVal;
|
||||
this.firstChange = false;
|
||||
this.changeFromInner = false;
|
||||
}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
// 是否显示清除控件
|
||||
isShowClear() {
|
||||
const { clearable, readonly, focused, innerValue } = this;
|
||||
return !!clearable && !readonly && !!focused && innerValue !== "";
|
||||
},
|
||||
// 组件的类名
|
||||
inputClass() {
|
||||
let classes = [], { border, disabled, shape } = this;
|
||||
border === "surround" && (classes = classes.concat(["u-border", "u-input--radius"]));
|
||||
classes.push(`u-input--${shape}`);
|
||||
border === "bottom" && (classes = classes.concat([
|
||||
"u-border-bottom",
|
||||
"u-input--no-radius"
|
||||
]));
|
||||
return classes.join(" ");
|
||||
},
|
||||
// 组件的样式
|
||||
wrapperStyle() {
|
||||
const style = {};
|
||||
if (this.disabled) {
|
||||
style.backgroundColor = this.disabledColor;
|
||||
}
|
||||
if (this.border === "none") {
|
||||
style.padding = "0";
|
||||
} else {
|
||||
style.paddingTop = "6px";
|
||||
style.paddingBottom = "6px";
|
||||
style.paddingLeft = "9px";
|
||||
style.paddingRight = "9px";
|
||||
}
|
||||
return common_vendor.deepMerge(style, common_vendor.addStyle(this.customStyle));
|
||||
},
|
||||
// 输入框的样式
|
||||
inputStyle() {
|
||||
const style = {
|
||||
color: this.color,
|
||||
fontSize: common_vendor.addUnit(this.fontSize),
|
||||
textAlign: this.inputAlign
|
||||
};
|
||||
return style;
|
||||
}
|
||||
},
|
||||
emits: ["update:modelValue", "focus", "blur", "change", "confirm", "clear", "keyboardheightchange"],
|
||||
methods: {
|
||||
// 在微信小程序中,不支持将函数当做props参数,故只能通过ref形式调用
|
||||
setFormatter(e) {
|
||||
this.innerFormatter = e;
|
||||
},
|
||||
// 当键盘输入时,触发input事件
|
||||
onInput(e) {
|
||||
let { value = "" } = e.detail || {};
|
||||
const formatter = this.formatter || this.innerFormatter;
|
||||
const formatValue = formatter(value);
|
||||
this.innerValue = value;
|
||||
this.$nextTick(() => {
|
||||
this.innerValue = formatValue;
|
||||
this.valueChange();
|
||||
});
|
||||
},
|
||||
// 输入框失去焦点时触发
|
||||
onBlur(event) {
|
||||
this.$emit("blur", event.detail.value);
|
||||
common_vendor.sleep(150).then(() => {
|
||||
this.focused = false;
|
||||
});
|
||||
common_vendor.formValidate(this, "blur");
|
||||
},
|
||||
// 输入框聚焦时触发
|
||||
onFocus(event) {
|
||||
this.focused = true;
|
||||
this.$emit("focus");
|
||||
},
|
||||
// 点击完成按钮时触发
|
||||
onConfirm(event) {
|
||||
this.$emit("confirm", this.innerValue);
|
||||
},
|
||||
// 键盘高度发生变化的时候触发此事件
|
||||
// 兼容性:微信小程序2.7.0+、App 3.1.0+
|
||||
onkeyboardheightchange(event) {
|
||||
this.$emit("keyboardheightchange", event);
|
||||
},
|
||||
// 内容发生变化,进行处理
|
||||
valueChange() {
|
||||
if (this.clearInput) {
|
||||
this.innerValue = "";
|
||||
this.clearInput = false;
|
||||
}
|
||||
const value = this.innerValue;
|
||||
this.$nextTick(() => {
|
||||
this.$emit("update:modelValue", value);
|
||||
this.changeFromInner = true;
|
||||
this.$emit("change", value);
|
||||
common_vendor.formValidate(this, "change");
|
||||
});
|
||||
},
|
||||
// 点击清除控件
|
||||
onClear() {
|
||||
this.clearInput = true;
|
||||
this.innerValue = "";
|
||||
this.$nextTick(() => {
|
||||
this.valueChange();
|
||||
this.$emit("clear");
|
||||
});
|
||||
},
|
||||
/**
|
||||
* 在安卓nvue上,事件无法冒泡
|
||||
* 在某些时间,我们希望监听u-from-item的点击事件,此时会导致点击u-form-item内的u-input后
|
||||
* 无法触发u-form-item的点击事件,这里通过手动调用u-form-item的方法进行触发
|
||||
*/
|
||||
clickHandler() {
|
||||
}
|
||||
}
|
||||
};
|
||||
if (!Array) {
|
||||
const _easycom_u_icon2 = common_vendor.resolveComponent("u-icon");
|
||||
_easycom_u_icon2();
|
||||
}
|
||||
const _easycom_u_icon = () => "../u-icon/u-icon.js";
|
||||
if (!Math) {
|
||||
_easycom_u_icon();
|
||||
}
|
||||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return common_vendor.e({
|
||||
a: _ctx.prefixIcon || _ctx.$slots.prefix
|
||||
}, _ctx.prefixIcon || _ctx.$slots.prefix ? {
|
||||
b: common_vendor.p({
|
||||
name: _ctx.prefixIcon,
|
||||
size: "18",
|
||||
customStyle: _ctx.prefixIconStyle
|
||||
})
|
||||
} : {}, {
|
||||
c: common_vendor.s($options.inputStyle),
|
||||
d: _ctx.type,
|
||||
e: _ctx.focus,
|
||||
f: _ctx.cursor,
|
||||
g: $data.innerValue,
|
||||
h: _ctx.autoBlur,
|
||||
i: _ctx.disabled || _ctx.readonly,
|
||||
j: _ctx.maxlength,
|
||||
k: _ctx.placeholder,
|
||||
l: _ctx.placeholderStyle,
|
||||
m: _ctx.placeholderClass,
|
||||
n: _ctx.confirmType,
|
||||
o: _ctx.confirmHold,
|
||||
p: _ctx.holdKeyboard,
|
||||
q: _ctx.cursorSpacing,
|
||||
r: _ctx.adjustPosition,
|
||||
s: _ctx.selectionEnd,
|
||||
t: _ctx.selectionStart,
|
||||
v: _ctx.password || _ctx.type === "password" || false,
|
||||
w: _ctx.ignoreCompositionEvent,
|
||||
x: common_vendor.o((...args) => $options.onInput && $options.onInput(...args)),
|
||||
y: common_vendor.o((...args) => $options.onBlur && $options.onBlur(...args)),
|
||||
z: common_vendor.o((...args) => $options.onFocus && $options.onFocus(...args)),
|
||||
A: common_vendor.o((...args) => $options.onConfirm && $options.onConfirm(...args)),
|
||||
B: common_vendor.o((...args) => $options.onkeyboardheightchange && $options.onkeyboardheightchange(...args)),
|
||||
C: common_vendor.o((...args) => $options.clickHandler && $options.clickHandler(...args)),
|
||||
D: $options.isShowClear
|
||||
}, $options.isShowClear ? {
|
||||
E: common_vendor.p({
|
||||
name: "close",
|
||||
size: "11",
|
||||
color: "#ffffff",
|
||||
customStyle: "line-height: 12px"
|
||||
}),
|
||||
F: common_vendor.o((...args) => $options.onClear && $options.onClear(...args))
|
||||
} : {}, {
|
||||
G: _ctx.suffixIcon || _ctx.$slots.suffix
|
||||
}, _ctx.suffixIcon || _ctx.$slots.suffix ? {
|
||||
H: common_vendor.p({
|
||||
name: _ctx.suffixIcon,
|
||||
size: "18",
|
||||
customStyle: _ctx.suffixIconStyle
|
||||
})
|
||||
} : {}, {
|
||||
I: common_vendor.n($options.inputClass),
|
||||
J: common_vendor.s($options.wrapperStyle)
|
||||
});
|
||||
}
|
||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-5904192e"], ["__file", "C:/Users/33043/Desktop/文件/work/newStud学习/greenStu/node_modules/uview-plus/components/u-input/u-input.vue"]]);
|
||||
wx.createComponent(Component);
|
6
unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-input/u-input.json
vendored
Normal file
6
unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-input/u-input.json
vendored
Normal file
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"component": true,
|
||||
"usingComponents": {
|
||||
"u-icon": "../u-icon/u-icon"
|
||||
}
|
||||
}
|
1
unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-input/u-input.wxml
vendored
Normal file
1
unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-input/u-input.wxml
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
<view class="{{['u-input', 'data-v-5904192e', I]}}" style="{{J}}"><view class="u-input__content data-v-5904192e"><view wx:if="{{a}}" class="u-input__content__prefix-icon data-v-5904192e"><block wx:if="{{$slots.prefix}}"><slot name="prefix"></slot></block><block wx:else><u-icon wx:if="{{b}}" class="data-v-5904192e" u-i="5904192e-0" bind:__l="__l" u-p="{{b}}"></u-icon></block></view><view class="u-input__content__field-wrapper data-v-5904192e" bindtap="{{C}}"><block wx:if="{{r0}}"><input class="u-input__content__field-wrapper__field data-v-5904192e" style="{{c}}" type="{{d}}" focus="{{e}}" cursor="{{f}}" value="{{g}}" auto-blur="{{h}}" disabled="{{i}}" maxlength="{{j}}" placeholder="{{k}}" placeholder-style="{{l}}" placeholder-class="{{m}}" confirm-type="{{n}}" confirm-hold="{{o}}" hold-keyboard="{{p}}" cursor-spacing="{{q}}" adjust-position="{{r}}" selection-end="{{s}}" selection-start="{{t}}" password="{{v}}" ignoreCompositionEvent="{{w}}" bindinput="{{x}}" bindblur="{{y}}" bindfocus="{{z}}" bindconfirm="{{A}}" bindkeyboardheightchange="{{B}}"/></block></view><view wx:if="{{D}}" class="u-input__content__clear data-v-5904192e" bindtap="{{F}}"><u-icon wx:if="{{E}}" class="data-v-5904192e" u-i="5904192e-1" bind:__l="__l" u-p="{{E}}"></u-icon></view><view wx:if="{{G}}" class="u-input__content__subfix-icon data-v-5904192e"><block wx:if="{{$slots.suffix}}"><slot name="suffix"></slot></block><block wx:else><u-icon wx:if="{{H}}" class="data-v-5904192e" u-i="5904192e-2" bind:__l="__l" u-p="{{H}}"></u-icon></block></view></view></view>
|
97
unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-input/u-input.wxss
vendored
Normal file
97
unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-input/u-input.wxss
vendored
Normal file
|
@ -0,0 +1,97 @@
|
|||
/**
|
||||
* 这里是uni-app内置的常用样式变量
|
||||
*
|
||||
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
|
||||
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
|
||||
*
|
||||
*/
|
||||
/**
|
||||
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
|
||||
*
|
||||
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
|
||||
*/
|
||||
/* 颜色变量 */
|
||||
/* 行为相关颜色 */
|
||||
/* 文字基本颜色 */
|
||||
/* 背景颜色 */
|
||||
/* 边框颜色 */
|
||||
/* 尺寸变量 */
|
||||
/* 文字尺寸 */
|
||||
/* 图片尺寸 */
|
||||
/* Border Radius */
|
||||
/* 水平间距 */
|
||||
/* 垂直间距 */
|
||||
/* 透明度 */
|
||||
/* 文章场景相关 */
|
||||
.u-empty.data-v-5904192e,
|
||||
.u-empty__wrap.data-v-5904192e,
|
||||
.u-tabs.data-v-5904192e,
|
||||
.u-tabs__wrapper.data-v-5904192e,
|
||||
.u-tabs__wrapper__scroll-view-wrapper.data-v-5904192e,
|
||||
.u-tabs__wrapper__scroll-view.data-v-5904192e,
|
||||
.u-tabs__wrapper__nav.data-v-5904192e,
|
||||
.u-tabs__wrapper__nav__line.data-v-5904192e {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex-shrink: 0;
|
||||
flex-grow: 0;
|
||||
flex-basis: auto;
|
||||
align-items: stretch;
|
||||
align-content: flex-start;
|
||||
}
|
||||
.u-input.data-v-5904192e {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
flex: 1;
|
||||
}
|
||||
.u-input--radius.data-v-5904192e, .u-input--square.data-v-5904192e {
|
||||
border-radius: 4px;
|
||||
}
|
||||
.u-input--no-radius.data-v-5904192e {
|
||||
border-radius: 0;
|
||||
}
|
||||
.u-input--circle.data-v-5904192e {
|
||||
border-radius: 100px;
|
||||
}
|
||||
.u-input__content.data-v-5904192e {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.u-input__content__field-wrapper.data-v-5904192e {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
margin: 0;
|
||||
flex: 1;
|
||||
}
|
||||
.u-input__content__field-wrapper__field.data-v-5904192e {
|
||||
line-height: 26px;
|
||||
text-align: left;
|
||||
color: #303133;
|
||||
height: 24px;
|
||||
font-size: 15px;
|
||||
flex: 1;
|
||||
}
|
||||
.u-input__content__clear.data-v-5904192e {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
border-radius: 100px;
|
||||
background-color: #c6c7cb;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
transform: scale(0.82);
|
||||
margin-left: 4px;
|
||||
}
|
||||
.u-input__content__subfix-icon.data-v-5904192e {
|
||||
margin-left: 4px;
|
||||
}
|
||||
.u-input__content__prefix-icon.data-v-5904192e {
|
||||
margin-right: 4px;
|
||||
}
|
|
@ -30,5 +30,5 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|||
a: common_vendor.s($options.lineStyle)
|
||||
};
|
||||
}
|
||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-bbd9963c"], ["__file", "E:/DAN/wexinxiaochengxude/NewCode2/gree_leran/node_modules/uview-plus/components/u-line/u-line.vue"]]);
|
||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-bbd9963c"], ["__file", "C:/Users/33043/Desktop/文件/work/newStud学习/greenStu/node_modules/uview-plus/components/u-line/u-line.vue"]]);
|
||||
wx.createComponent(Component);
|
||||
|
|
|
@ -40,5 +40,5 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|||
d: common_vendor.s($options.addStyle(_ctx.customStyle))
|
||||
};
|
||||
}
|
||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-dedad317"], ["__file", "E:/DAN/wexinxiaochengxude/NewCode2/gree_leran/node_modules/uview-plus/components/u-link/u-link.vue"]]);
|
||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-dedad317"], ["__file", "C:/Users/33043/Desktop/文件/work/newStud学习/greenStu/node_modules/uview-plus/components/u-link/u-link.vue"]]);
|
||||
wx.createComponent(Component);
|
||||
|
|
|
@ -70,5 +70,5 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|||
c: common_vendor.n(`u-list-item-${_ctx.anchor}`)
|
||||
};
|
||||
}
|
||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-32197ac9"], ["__file", "E:/DAN/wexinxiaochengxude/NewCode2/gree_leran/node_modules/uview-plus/components/u-list-item/u-list-item.vue"]]);
|
||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-32197ac9"], ["__file", "C:/Users/33043/Desktop/文件/work/newStud学习/greenStu/node_modules/uview-plus/components/u-list-item/u-list-item.vue"]]);
|
||||
wx.createComponent(Component);
|
||||
|
|
|
@ -114,5 +114,5 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|||
v: common_vendor.o((...args) => $options.refresherabort && $options.refresherabort(...args))
|
||||
};
|
||||
}
|
||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-9ad03670"], ["__file", "E:/DAN/wexinxiaochengxude/NewCode2/gree_leran/node_modules/uview-plus/components/u-list/u-list.vue"]]);
|
||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-9ad03670"], ["__file", "C:/Users/33043/Desktop/文件/work/newStud学习/greenStu/node_modules/uview-plus/components/u-list/u-list.vue"]]);
|
||||
wx.createComponent(Component);
|
||||
|
|
|
@ -96,5 +96,5 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|||
t: common_vendor.n(_ctx.vertical && "u-loading-icon--vertical")
|
||||
}) : {});
|
||||
}
|
||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-00752c6d"], ["__file", "E:/DAN/wexinxiaochengxude/NewCode2/gree_leran/node_modules/uview-plus/components/u-loading-icon/u-loading-icon.vue"]]);
|
||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-00752c6d"], ["__file", "C:/Users/33043/Desktop/文件/work/newStud学习/greenStu/node_modules/uview-plus/components/u-loading-icon/u-loading-icon.vue"]]);
|
||||
wx.createComponent(Component);
|
||||
|
|
|
@ -157,5 +157,5 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|||
F: common_vendor.s($options.addStyle(_ctx.customStyle))
|
||||
});
|
||||
}
|
||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-ed789780"], ["__file", "E:/DAN/wexinxiaochengxude/NewCode2/gree_leran/node_modules/uview-plus/components/u-search/u-search.vue"]]);
|
||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-ed789780"], ["__file", "C:/Users/33043/Desktop/文件/work/newStud学习/greenStu/node_modules/uview-plus/components/u-search/u-search.vue"]]);
|
||||
wx.createComponent(Component);
|
||||
|
|
|
@ -50,5 +50,5 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|||
})
|
||||
} : {});
|
||||
}
|
||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-23112adb"], ["__file", "E:/DAN/wexinxiaochengxude/NewCode2/gree_leran/node_modules/uview-plus/components/u-swiper-indicator/u-swiper-indicator.vue"]]);
|
||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-23112adb"], ["__file", "C:/Users/33043/Desktop/文件/work/newStud学习/greenStu/node_modules/uview-plus/components/u-swiper-indicator/u-swiper-indicator.vue"]]);
|
||||
wx.createComponent(Component);
|
||||
|
|
|
@ -159,5 +159,5 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|||
w: $options.addUnit(_ctx.radius)
|
||||
});
|
||||
}
|
||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-eda42115"], ["__file", "E:/DAN/wexinxiaochengxude/NewCode2/gree_leran/node_modules/uview-plus/components/u-swiper/u-swiper.vue"]]);
|
||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-eda42115"], ["__file", "C:/Users/33043/Desktop/文件/work/newStud学习/greenStu/node_modules/uview-plus/components/u-swiper/u-swiper.vue"]]);
|
||||
wx.createComponent(Component);
|
||||
|
|
125
unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tag/u-tag.js
vendored
Normal file
125
unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tag/u-tag.js
vendored
Normal file
|
@ -0,0 +1,125 @@
|
|||
"use strict";
|
||||
const common_vendor = require("../../../../common/vendor.js");
|
||||
const _sfc_main = {
|
||||
name: "u-tag",
|
||||
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$15],
|
||||
data() {
|
||||
return {};
|
||||
},
|
||||
computed: {
|
||||
style() {
|
||||
const style = {};
|
||||
if (this.bgColor) {
|
||||
style.backgroundColor = this.bgColor;
|
||||
}
|
||||
if (this.color) {
|
||||
style.color = this.color;
|
||||
}
|
||||
if (this.borderColor) {
|
||||
style.borderColor = this.borderColor;
|
||||
}
|
||||
return style;
|
||||
},
|
||||
// nvue下,文本颜色无法继承父元素
|
||||
textColor() {
|
||||
const style = {};
|
||||
if (this.color) {
|
||||
style.color = this.color;
|
||||
}
|
||||
return style;
|
||||
},
|
||||
imgStyle() {
|
||||
const width = this.size === "large" ? "17px" : this.size === "medium" ? "15px" : "13px";
|
||||
return {
|
||||
width,
|
||||
height: width
|
||||
};
|
||||
},
|
||||
// 文本的样式
|
||||
closeSize() {
|
||||
const size = this.size === "large" ? 15 : this.size === "medium" ? 13 : 12;
|
||||
return size;
|
||||
},
|
||||
// 图标大小
|
||||
iconSize() {
|
||||
const size = this.size === "large" ? 21 : this.size === "medium" ? 19 : 16;
|
||||
return size;
|
||||
},
|
||||
// 图标颜色
|
||||
elIconColor() {
|
||||
return this.iconColor ? this.iconColor : this.plain ? this.type : "#ffffff";
|
||||
}
|
||||
},
|
||||
emits: ["click", "close"],
|
||||
methods: {
|
||||
testImage: common_vendor.test.image,
|
||||
// 点击关闭按钮
|
||||
closeHandler() {
|
||||
this.$emit("close", this.name);
|
||||
},
|
||||
// 点击标签
|
||||
clickHandler() {
|
||||
this.$emit("click", this.name);
|
||||
}
|
||||
}
|
||||
};
|
||||
if (!Array) {
|
||||
const _easycom_u_icon2 = common_vendor.resolveComponent("u-icon");
|
||||
const _easycom_u_transition2 = common_vendor.resolveComponent("u-transition");
|
||||
(_easycom_u_icon2 + _easycom_u_transition2)();
|
||||
}
|
||||
const _easycom_u_icon = () => "../u-icon/u-icon.js";
|
||||
const _easycom_u_transition = () => "../u-transition/u-transition.js";
|
||||
if (!Math) {
|
||||
(_easycom_u_icon + _easycom_u_transition)();
|
||||
}
|
||||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return common_vendor.e({
|
||||
a: _ctx.icon
|
||||
}, _ctx.icon ? common_vendor.e({
|
||||
b: $options.testImage(_ctx.icon)
|
||||
}, $options.testImage(_ctx.icon) ? {
|
||||
c: _ctx.icon,
|
||||
d: common_vendor.s($options.imgStyle)
|
||||
} : {
|
||||
e: common_vendor.p({
|
||||
color: $options.elIconColor,
|
||||
name: _ctx.icon,
|
||||
size: $options.iconSize
|
||||
})
|
||||
}) : {}, {
|
||||
f: common_vendor.t(_ctx.text),
|
||||
g: common_vendor.s($options.textColor),
|
||||
h: common_vendor.n(`u-tag__text--${_ctx.type}`),
|
||||
i: common_vendor.n(_ctx.plain && `u-tag__text--${_ctx.type}--plain`),
|
||||
j: common_vendor.n(`u-tag__text--${_ctx.size}`),
|
||||
k: common_vendor.n(`u-tag--${_ctx.shape}`),
|
||||
l: common_vendor.n(!_ctx.plain && `u-tag--${_ctx.type}`),
|
||||
m: common_vendor.n(_ctx.plain && `u-tag--${_ctx.type}--plain`),
|
||||
n: common_vendor.n(`u-tag--${_ctx.size}`),
|
||||
o: common_vendor.n(_ctx.plain && _ctx.plainFill && `u-tag--${_ctx.type}--plain--fill`),
|
||||
p: common_vendor.o((...args) => $options.clickHandler && $options.clickHandler(...args)),
|
||||
q: common_vendor.s({
|
||||
marginRight: _ctx.closable ? "10px" : 0,
|
||||
marginTop: _ctx.closable ? "10px" : 0
|
||||
}),
|
||||
r: common_vendor.s($options.style),
|
||||
s: _ctx.closable
|
||||
}, _ctx.closable ? {
|
||||
t: common_vendor.p({
|
||||
name: "close",
|
||||
size: $options.closeSize,
|
||||
color: "#ffffff"
|
||||
}),
|
||||
v: common_vendor.n(`u-tag__close--${_ctx.size}`),
|
||||
w: common_vendor.o((...args) => $options.closeHandler && $options.closeHandler(...args)),
|
||||
x: _ctx.closeColor
|
||||
} : {}, {
|
||||
y: common_vendor.p({
|
||||
mode: "fade",
|
||||
show: _ctx.show
|
||||
})
|
||||
});
|
||||
}
|
||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-23de980f"], ["__file", "C:/Users/33043/Desktop/文件/work/newStud学习/greenStu/node_modules/uview-plus/components/u-tag/u-tag.vue"]]);
|
||||
wx.createComponent(Component);
|
7
unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tag/u-tag.json
vendored
Normal file
7
unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tag/u-tag.json
vendored
Normal file
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"component": true,
|
||||
"usingComponents": {
|
||||
"u-icon": "../u-icon/u-icon",
|
||||
"u-transition": "../u-transition/u-transition"
|
||||
}
|
||||
}
|
1
unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tag/u-tag.wxml
vendored
Normal file
1
unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tag/u-tag.wxml
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
<u-transition wx:if="{{y}}" class="data-v-23de980f" u-s="{{['d']}}" style="display:inline-flex" u-i="23de980f-0" bind:__l="__l" u-p="{{y}}"><view class="u-tag-wrapper cursor-pointer data-v-23de980f"><view class="{{['u-tag', 'data-v-23de980f', k, l, m, n, o]}}" catchtap="{{p}}" style="{{q + ';' + r}}"><block wx:if="{{$slots.icon}}"><slot name="icon"></slot></block><block wx:else><view wx:if="{{a}}" class="u-tag__icon data-v-23de980f"><image wx:if="{{b}}" class="data-v-23de980f" src="{{c}}" style="{{d}}"></image><u-icon wx:else class="data-v-23de980f" u-i="23de980f-1,23de980f-0" bind:__l="__l" u-p="{{e||''}}"></u-icon></view></block><text style="{{g}}" class="{{['u-tag__text', 'data-v-23de980f', h, i, j]}}">{{f}}</text></view><view wx:if="{{s}}" class="{{['u-tag__close', 'data-v-23de980f', v]}}" catchtap="{{w}}" style="{{'background-color:' + x}}"><u-icon wx:if="{{t}}" class="data-v-23de980f" u-i="23de980f-2,23de980f-0" bind:__l="__l" u-p="{{t}}"></u-icon></view></view></u-transition>
|
201
unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tag/u-tag.wxss
vendored
Normal file
201
unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-tag/u-tag.wxss
vendored
Normal file
|
@ -0,0 +1,201 @@
|
|||
/**
|
||||
* 这里是uni-app内置的常用样式变量
|
||||
*
|
||||
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
|
||||
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
|
||||
*
|
||||
*/
|
||||
/**
|
||||
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
|
||||
*
|
||||
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
|
||||
*/
|
||||
/* 颜色变量 */
|
||||
/* 行为相关颜色 */
|
||||
/* 文字基本颜色 */
|
||||
/* 背景颜色 */
|
||||
/* 边框颜色 */
|
||||
/* 尺寸变量 */
|
||||
/* 文字尺寸 */
|
||||
/* 图片尺寸 */
|
||||
/* Border Radius */
|
||||
/* 水平间距 */
|
||||
/* 垂直间距 */
|
||||
/* 透明度 */
|
||||
/* 文章场景相关 */
|
||||
.u-empty.data-v-23de980f,
|
||||
.u-empty__wrap.data-v-23de980f,
|
||||
.u-tabs.data-v-23de980f,
|
||||
.u-tabs__wrapper.data-v-23de980f,
|
||||
.u-tabs__wrapper__scroll-view-wrapper.data-v-23de980f,
|
||||
.u-tabs__wrapper__scroll-view.data-v-23de980f,
|
||||
.u-tabs__wrapper__nav.data-v-23de980f,
|
||||
.u-tabs__wrapper__nav__line.data-v-23de980f {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex-shrink: 0;
|
||||
flex-grow: 0;
|
||||
flex-basis: auto;
|
||||
align-items: stretch;
|
||||
align-content: flex-start;
|
||||
}
|
||||
.u-tag-wrapper.data-v-23de980f {
|
||||
position: relative;
|
||||
}
|
||||
.u-tag.data-v-23de980f {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
border-style: solid;
|
||||
}
|
||||
.u-tag--circle.data-v-23de980f {
|
||||
border-radius: 100px;
|
||||
}
|
||||
.u-tag--square.data-v-23de980f {
|
||||
border-radius: 3px;
|
||||
}
|
||||
.u-tag__icon.data-v-23de980f {
|
||||
margin-right: 4px;
|
||||
}
|
||||
.u-tag__text--mini.data-v-23de980f {
|
||||
font-size: 12px;
|
||||
line-height: 12px;
|
||||
}
|
||||
.u-tag__text--medium.data-v-23de980f {
|
||||
font-size: 13px;
|
||||
line-height: 13px;
|
||||
}
|
||||
.u-tag__text--large.data-v-23de980f {
|
||||
font-size: 15px;
|
||||
line-height: 15px;
|
||||
}
|
||||
.u-tag--mini.data-v-23de980f {
|
||||
height: 22px;
|
||||
line-height: 22px;
|
||||
padding: 0 5px;
|
||||
}
|
||||
.u-tag--medium.data-v-23de980f {
|
||||
height: 26px;
|
||||
line-height: 22px;
|
||||
padding: 0 10px;
|
||||
}
|
||||
.u-tag--large.data-v-23de980f {
|
||||
height: 32px;
|
||||
line-height: 32px;
|
||||
padding: 0 15px;
|
||||
}
|
||||
.u-tag--primary.data-v-23de980f {
|
||||
background-color: #3c9cff;
|
||||
border-width: 1px;
|
||||
border-color: #3c9cff;
|
||||
}
|
||||
.u-tag--primary--plain.data-v-23de980f {
|
||||
border-width: 1px;
|
||||
border-color: #3c9cff;
|
||||
}
|
||||
.u-tag--primary--plain--fill.data-v-23de980f {
|
||||
background-color: #ecf5ff;
|
||||
}
|
||||
.u-tag__text--primary.data-v-23de980f {
|
||||
color: #FFFFFF;
|
||||
}
|
||||
.u-tag__text--primary--plain.data-v-23de980f {
|
||||
color: #3c9cff;
|
||||
}
|
||||
.u-tag--error.data-v-23de980f {
|
||||
background-color: #f56c6c;
|
||||
border-width: 1px;
|
||||
border-color: #f56c6c;
|
||||
}
|
||||
.u-tag--error--plain.data-v-23de980f {
|
||||
border-width: 1px;
|
||||
border-color: #f56c6c;
|
||||
}
|
||||
.u-tag--error--plain--fill.data-v-23de980f {
|
||||
background-color: #fef0f0;
|
||||
}
|
||||
.u-tag__text--error.data-v-23de980f {
|
||||
color: #FFFFFF;
|
||||
}
|
||||
.u-tag__text--error--plain.data-v-23de980f {
|
||||
color: #f56c6c;
|
||||
}
|
||||
.u-tag--warning.data-v-23de980f {
|
||||
background-color: #f9ae3d;
|
||||
border-width: 1px;
|
||||
border-color: #f9ae3d;
|
||||
}
|
||||
.u-tag--warning--plain.data-v-23de980f {
|
||||
border-width: 1px;
|
||||
border-color: #f9ae3d;
|
||||
}
|
||||
.u-tag--warning--plain--fill.data-v-23de980f {
|
||||
background-color: #fdf6ec;
|
||||
}
|
||||
.u-tag__text--warning.data-v-23de980f {
|
||||
color: #FFFFFF;
|
||||
}
|
||||
.u-tag__text--warning--plain.data-v-23de980f {
|
||||
color: #f9ae3d;
|
||||
}
|
||||
.u-tag--success.data-v-23de980f {
|
||||
background-color: #5ac725;
|
||||
border-width: 1px;
|
||||
border-color: #5ac725;
|
||||
}
|
||||
.u-tag--success--plain.data-v-23de980f {
|
||||
border-width: 1px;
|
||||
border-color: #5ac725;
|
||||
}
|
||||
.u-tag--success--plain--fill.data-v-23de980f {
|
||||
background-color: #f5fff0;
|
||||
}
|
||||
.u-tag__text--success.data-v-23de980f {
|
||||
color: #FFFFFF;
|
||||
}
|
||||
.u-tag__text--success--plain.data-v-23de980f {
|
||||
color: #5ac725;
|
||||
}
|
||||
.u-tag--info.data-v-23de980f {
|
||||
background-color: #909399;
|
||||
border-width: 1px;
|
||||
border-color: #909399;
|
||||
}
|
||||
.u-tag--info--plain.data-v-23de980f {
|
||||
border-width: 1px;
|
||||
border-color: #909399;
|
||||
}
|
||||
.u-tag--info--plain--fill.data-v-23de980f {
|
||||
background-color: #f4f4f5;
|
||||
}
|
||||
.u-tag__text--info.data-v-23de980f {
|
||||
color: #FFFFFF;
|
||||
}
|
||||
.u-tag__text--info--plain.data-v-23de980f {
|
||||
color: #909399;
|
||||
}
|
||||
.u-tag__close.data-v-23de980f {
|
||||
position: absolute;
|
||||
z-index: 999;
|
||||
top: 10px;
|
||||
right: 10px;
|
||||
border-radius: 100px;
|
||||
background-color: #C6C7CB;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
transform: scale(0.6) translate(80%, -80%);
|
||||
}
|
||||
.u-tag__close--mini.data-v-23de980f {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
}
|
||||
.u-tag__close--medium.data-v-23de980f {
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
}
|
||||
.u-tag__close--large.data-v-23de980f {
|
||||
width: 25px;
|
||||
height: 25px;
|
||||
}
|
|
@ -118,5 +118,5 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|||
O: common_vendor.o((...args) => $options.clickHandler && $options.clickHandler(...args))
|
||||
}) : {});
|
||||
}
|
||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-5fec1d8b"], ["__file", "E:/DAN/wexinxiaochengxude/NewCode2/gree_leran/node_modules/uview-plus/components/u-text/u-text.vue"]]);
|
||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-5fec1d8b"], ["__file", "C:/Users/33043/Desktop/文件/work/newStud学习/greenStu/node_modules/uview-plus/components/u-text/u-text.vue"]]);
|
||||
wx.createComponent(Component);
|
||||
|
|
58
unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-transition/u-transition.js
vendored
Normal file
58
unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-transition/u-transition.js
vendored
Normal file
|
@ -0,0 +1,58 @@
|
|||
"use strict";
|
||||
const common_vendor = require("../../../../common/vendor.js");
|
||||
const _sfc_main = {
|
||||
name: "u-transition",
|
||||
data() {
|
||||
return {
|
||||
inited: false,
|
||||
// 是否显示/隐藏组件
|
||||
viewStyle: {},
|
||||
// 组件内部的样式
|
||||
status: "",
|
||||
// 记录组件动画的状态
|
||||
transitionEnded: false,
|
||||
// 组件是否结束的标记
|
||||
display: false,
|
||||
// 组件是否展示
|
||||
classes: ""
|
||||
// 应用的类名
|
||||
};
|
||||
},
|
||||
emits: ["click", "beforeEnter", "enter", "afterEnter", "beforeLeave", "leave", "afterLeave"],
|
||||
computed: {
|
||||
mergeStyle() {
|
||||
const { viewStyle, customStyle } = this;
|
||||
return {
|
||||
transitionDuration: `${this.duration}ms`,
|
||||
// display: `${this.display ? '' : 'none'}`,
|
||||
transitionTimingFunction: this.timingFunction,
|
||||
// 避免自定义样式影响到动画属性,所以写在viewStyle前面
|
||||
...common_vendor.addStyle(customStyle),
|
||||
...viewStyle
|
||||
};
|
||||
}
|
||||
},
|
||||
// 将mixin挂在到组件中,实际上为一个vue格式对象。
|
||||
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.transition, common_vendor.props$16],
|
||||
watch: {
|
||||
show: {
|
||||
handler(newVal) {
|
||||
newVal ? this.vueEnter() : this.vueLeave();
|
||||
},
|
||||
// 表示同时监听初始化时的props的show的意思
|
||||
immediate: true
|
||||
}
|
||||
}
|
||||
};
|
||||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return common_vendor.e({
|
||||
a: $data.inited
|
||||
}, $data.inited ? {
|
||||
b: common_vendor.o((...args) => _ctx.clickHandler && _ctx.clickHandler(...args)),
|
||||
c: common_vendor.n($data.classes),
|
||||
d: common_vendor.s($options.mergeStyle),
|
||||
e: common_vendor.o((...args) => _ctx.noop && _ctx.noop(...args))
|
||||
} : {});
|
||||
}
|
||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-0573594d"], ["__file", "C:/Users/33043/Desktop/文件/work/newStud学习/greenStu/node_modules/uview-plus/components/u-transition/u-transition.vue"]]);
|
||||
wx.createComponent(Component);
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"component": true,
|
||||
"usingComponents": {}
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
<view wx:if="{{a}}" ref="u-transition" bindtap="{{b}}" class="{{['u-transition', 'data-v-0573594d', c]}}" style="{{d}}" bindtouchmove="{{e}}"><slot/></view>
|
136
unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-transition/u-transition.wxss
vendored
Normal file
136
unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-transition/u-transition.wxss
vendored
Normal file
|
@ -0,0 +1,136 @@
|
|||
/**
|
||||
* 这里是uni-app内置的常用样式变量
|
||||
*
|
||||
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
|
||||
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
|
||||
*
|
||||
*/
|
||||
/**
|
||||
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
|
||||
*
|
||||
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
|
||||
*/
|
||||
/* 颜色变量 */
|
||||
/* 行为相关颜色 */
|
||||
/* 文字基本颜色 */
|
||||
/* 背景颜色 */
|
||||
/* 边框颜色 */
|
||||
/* 尺寸变量 */
|
||||
/* 文字尺寸 */
|
||||
/* 图片尺寸 */
|
||||
/* Border Radius */
|
||||
/* 水平间距 */
|
||||
/* 垂直间距 */
|
||||
/* 透明度 */
|
||||
/* 文章场景相关 */
|
||||
.u-empty.data-v-0573594d,
|
||||
.u-empty__wrap.data-v-0573594d,
|
||||
.u-tabs.data-v-0573594d,
|
||||
.u-tabs__wrapper.data-v-0573594d,
|
||||
.u-tabs__wrapper__scroll-view-wrapper.data-v-0573594d,
|
||||
.u-tabs__wrapper__scroll-view.data-v-0573594d,
|
||||
.u-tabs__wrapper__nav.data-v-0573594d,
|
||||
.u-tabs__wrapper__nav__line.data-v-0573594d {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex-shrink: 0;
|
||||
flex-grow: 0;
|
||||
flex-basis: auto;
|
||||
align-items: stretch;
|
||||
align-content: flex-start;
|
||||
}
|
||||
/**
|
||||
* vue版本动画内置的动画模式有如下:
|
||||
* fade:淡入
|
||||
* zoom:缩放
|
||||
* fade-zoom:缩放淡入
|
||||
* fade-up:上滑淡入
|
||||
* fade-down:下滑淡入
|
||||
* fade-left:左滑淡入
|
||||
* fade-right:右滑淡入
|
||||
* slide-up:上滑进入
|
||||
* slide-down:下滑进入
|
||||
* slide-left:左滑进入
|
||||
* slide-right:右滑进入
|
||||
*/
|
||||
.u-fade-enter-active.data-v-0573594d,
|
||||
.u-fade-leave-active.data-v-0573594d {
|
||||
transition-property: opacity;
|
||||
}
|
||||
.u-fade-enter.data-v-0573594d,
|
||||
.u-fade-leave-to.data-v-0573594d {
|
||||
opacity: 0;
|
||||
}
|
||||
.u-fade-zoom-enter.data-v-0573594d,
|
||||
.u-fade-zoom-leave-to.data-v-0573594d {
|
||||
transform: scale(0.95);
|
||||
opacity: 0;
|
||||
}
|
||||
.u-fade-zoom-enter-active.data-v-0573594d,
|
||||
.u-fade-zoom-leave-active.data-v-0573594d {
|
||||
transition-property: transform, opacity;
|
||||
}
|
||||
.u-fade-down-enter-active.data-v-0573594d,
|
||||
.u-fade-down-leave-active.data-v-0573594d,
|
||||
.u-fade-left-enter-active.data-v-0573594d,
|
||||
.u-fade-left-leave-active.data-v-0573594d,
|
||||
.u-fade-right-enter-active.data-v-0573594d,
|
||||
.u-fade-right-leave-active.data-v-0573594d,
|
||||
.u-fade-up-enter-active.data-v-0573594d,
|
||||
.u-fade-up-leave-active.data-v-0573594d {
|
||||
transition-property: opacity, transform;
|
||||
}
|
||||
.u-fade-up-enter.data-v-0573594d,
|
||||
.u-fade-up-leave-to.data-v-0573594d {
|
||||
transform: translate3d(0, 100%, 0);
|
||||
opacity: 0;
|
||||
}
|
||||
.u-fade-down-enter.data-v-0573594d,
|
||||
.u-fade-down-leave-to.data-v-0573594d {
|
||||
transform: translate3d(0, -100%, 0);
|
||||
opacity: 0;
|
||||
}
|
||||
.u-fade-left-enter.data-v-0573594d,
|
||||
.u-fade-left-leave-to.data-v-0573594d {
|
||||
transform: translate3d(-100%, 0, 0);
|
||||
opacity: 0;
|
||||
}
|
||||
.u-fade-right-enter.data-v-0573594d,
|
||||
.u-fade-right-leave-to.data-v-0573594d {
|
||||
transform: translate3d(100%, 0, 0);
|
||||
opacity: 0;
|
||||
}
|
||||
.u-slide-down-enter-active.data-v-0573594d,
|
||||
.u-slide-down-leave-active.data-v-0573594d,
|
||||
.u-slide-left-enter-active.data-v-0573594d,
|
||||
.u-slide-left-leave-active.data-v-0573594d,
|
||||
.u-slide-right-enter-active.data-v-0573594d,
|
||||
.u-slide-right-leave-active.data-v-0573594d,
|
||||
.u-slide-up-enter-active.data-v-0573594d,
|
||||
.u-slide-up-leave-active.data-v-0573594d {
|
||||
transition-property: transform;
|
||||
}
|
||||
.u-slide-up-enter.data-v-0573594d,
|
||||
.u-slide-up-leave-to.data-v-0573594d {
|
||||
transform: translate3d(0, 100%, 0);
|
||||
}
|
||||
.u-slide-down-enter.data-v-0573594d,
|
||||
.u-slide-down-leave-to.data-v-0573594d {
|
||||
transform: translate3d(0, -100%, 0);
|
||||
}
|
||||
.u-slide-left-enter.data-v-0573594d,
|
||||
.u-slide-left-leave-to.data-v-0573594d {
|
||||
transform: translate3d(-100%, 0, 0);
|
||||
}
|
||||
.u-slide-right-enter.data-v-0573594d,
|
||||
.u-slide-right-leave-to.data-v-0573594d {
|
||||
transform: translate3d(100%, 0, 0);
|
||||
}
|
||||
.u-zoom-enter-active.data-v-0573594d,
|
||||
.u-zoom-leave-active.data-v-0573594d {
|
||||
transition-property: transform;
|
||||
}
|
||||
.u-zoom-enter.data-v-0573594d,
|
||||
.u-zoom-leave-to.data-v-0573594d {
|
||||
transform: scale(0.95);
|
||||
}
|
|
@ -0,0 +1,77 @@
|
|||
"use strict";
|
||||
const common_vendor = require("../../common/vendor.js");
|
||||
if (!Array) {
|
||||
const _easycom_up_button2 = common_vendor.resolveComponent("up-button");
|
||||
const _component_CommentItem = common_vendor.resolveComponent("CommentItem");
|
||||
(_easycom_up_button2 + _component_CommentItem)();
|
||||
}
|
||||
const _easycom_up_button = () => "../../node-modules/uview-plus/components/u-button/u-button.js";
|
||||
if (!Math) {
|
||||
_easycom_up_button();
|
||||
}
|
||||
const _sfc_main = {
|
||||
__name: "CommentItem",
|
||||
props: {
|
||||
comment: Object
|
||||
},
|
||||
emits: ["reply", "like", "share"],
|
||||
setup(__props, { emit: __emit }) {
|
||||
const props = __props;
|
||||
const emit = __emit;
|
||||
const toggleReplyForm = () => {
|
||||
props.comment.showReplyForm = !props.comment.showReplyForm;
|
||||
};
|
||||
const likeComment = () => {
|
||||
emit("like", props.comment.id);
|
||||
};
|
||||
const shareComment = () => {
|
||||
emit("share", props.comment.id);
|
||||
};
|
||||
const handleReply = (commentId, replyText) => {
|
||||
emit("reply", commentId, replyText);
|
||||
};
|
||||
const handleLike = (commentId) => {
|
||||
emit("like", commentId);
|
||||
};
|
||||
const handleShare = (commentId) => {
|
||||
emit("share", commentId);
|
||||
};
|
||||
return (_ctx, _cache) => {
|
||||
return common_vendor.e({
|
||||
a: __props.comment.avatar,
|
||||
b: common_vendor.t(__props.comment.username),
|
||||
c: common_vendor.t(__props.comment.text),
|
||||
d: common_vendor.t(__props.comment.likes),
|
||||
e: common_vendor.o(likeComment),
|
||||
f: common_vendor.o(toggleReplyForm),
|
||||
g: common_vendor.o(shareComment),
|
||||
h: __props.comment.showReplyForm
|
||||
}, __props.comment.showReplyForm ? {
|
||||
i: _ctx.newComment,
|
||||
j: common_vendor.o(($event) => _ctx.newComment = $event.detail.value),
|
||||
k: common_vendor.o(_ctx.addComment),
|
||||
l: common_vendor.p({
|
||||
size: "large",
|
||||
type: "primary",
|
||||
shape: "circle",
|
||||
text: "发表"
|
||||
})
|
||||
} : {}, {
|
||||
m: common_vendor.f(__props.comment.replies, (reply, k0, i0) => {
|
||||
return {
|
||||
a: reply.id,
|
||||
b: common_vendor.o(handleReply, reply.id),
|
||||
c: common_vendor.o(handleLike, reply.id),
|
||||
d: common_vendor.o(handleShare, reply.id),
|
||||
e: "ed332cbd-1-" + i0,
|
||||
f: common_vendor.p({
|
||||
comment: reply
|
||||
})
|
||||
};
|
||||
})
|
||||
});
|
||||
};
|
||||
}
|
||||
};
|
||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-ed332cbd"], ["__file", "C:/Users/33043/Desktop/文件/work/newStud学习/greenStu/pages/discuss/CommentItem.vue"]]);
|
||||
wx.createComponent(Component);
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"component": true,
|
||||
"usingComponents": {
|
||||
"up-button": "../../node-modules/uview-plus/components/u-button/u-button"
|
||||
}
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
<view class="comment-card data-v-ed332cbd"><view class="comment data-v-ed332cbd"><image src="{{a}}" class="avatar data-v-ed332cbd"/><view class="comment-content data-v-ed332cbd"><view class="username data-v-ed332cbd">{{b}}</view><view class="text data-v-ed332cbd">{{c}}</view><view class="actions data-v-ed332cbd"><label class="like data-v-ed332cbd" bindtap="{{e}}"><image src="https://img.icons8.com/ios-glyphs/30/000000/facebook-like.png" class="like-icon data-v-ed332cbd"/> {{d}} 赞 </label><label class="reply data-v-ed332cbd" bindtap="{{f}}">回复</label><label class="share data-v-ed332cbd" bindtap="{{g}}"><image src="https://img.icons8.com/ios-filled/30/000000/share.png" class="share-icon data-v-ed332cbd"/> 分享 </label></view><view wx:if="{{h}}" class="reply-form data-v-ed332cbd"><input placeholder="发表评论" class="comment-input data-v-ed332cbd" value="{{i}}" bindinput="{{j}}"/><view class=" data-v-ed332cbd" style="display:flex;align-items:center;width:200rpx"><up-button wx:if="{{l}}" class="data-v-ed332cbd" bindclick="{{k}}" u-i="ed332cbd-0" bind:__l="__l" u-p="{{l}}"></up-button></view></view><view class="replies data-v-ed332cbd"><comment-item wx:for="{{m}}" wx:for-item="reply" wx:key="a" class="data-v-ed332cbd" bindreply="{{reply.b}}" bindlike="{{reply.c}}" bindshare="{{reply.d}}" u-i="{{reply.e}}" bind:__l="__l" u-p="{{reply.f}}"/></view></view></view></view>
|
|
@ -0,0 +1,82 @@
|
|||
|
||||
.comment-card.data-v-ed332cbd {
|
||||
background-color: #fff;
|
||||
padding: 15px;
|
||||
border-radius: 10px;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
||||
margin-bottom: 15px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.comment.data-v-ed332cbd {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
}
|
||||
.avatar.data-v-ed332cbd {
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
border-radius: 50%;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.comment-content.data-v-ed332cbd {
|
||||
flex: 1;
|
||||
}
|
||||
.username.data-v-ed332cbd {
|
||||
font-weight: bold;
|
||||
color: #007aff;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
.text.data-v-ed332cbd {
|
||||
color: #333;
|
||||
}
|
||||
.actions.data-v-ed332cbd {
|
||||
margin-top: 10px;
|
||||
}
|
||||
.like.data-v-ed332cbd,
|
||||
.reply.data-v-ed332cbd,
|
||||
.share.data-v-ed332cbd {
|
||||
color: #007aff;
|
||||
cursor: pointer;
|
||||
margin-right: 15px;
|
||||
}
|
||||
.like.data-v-ed332cbd:hover,
|
||||
.reply.data-v-ed332cbd:hover,
|
||||
.share.data-v-ed332cbd:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
.like-icon.data-v-ed332cbd,
|
||||
.share-icon.data-v-ed332cbd {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin-right: 5px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.reply-form.data-v-ed332cbd {
|
||||
display: flex;
|
||||
margin-top: 10px;
|
||||
}
|
||||
.reply-input.data-v-ed332cbd {
|
||||
flex-grow: 1;
|
||||
margin-right: 10px;
|
||||
padding: 10px;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 5px;
|
||||
font-size: 14px;
|
||||
}
|
||||
.reply-button.data-v-ed332cbd {
|
||||
padding: 10px 20px;
|
||||
background-color: #007aff;
|
||||
color: #fff;
|
||||
border: none;
|
||||
border-radius: 5px;
|
||||
cursor: pointer;
|
||||
font-size: 14px;
|
||||
}
|
||||
.reply-button.data-v-ed332cbd:hover {
|
||||
background-color: #005bb5;
|
||||
}
|
||||
.replies.data-v-ed332cbd {
|
||||
margin-top: 10px;
|
||||
padding-left: 20px;
|
||||
border-left: 2px solid #f0f0f0;
|
||||
}
|
|
@ -1,5 +1,14 @@
|
|||
"use strict";
|
||||
const common_vendor = require("../../common/vendor.js");
|
||||
if (!Array) {
|
||||
const _easycom_up_button2 = common_vendor.resolveComponent("up-button");
|
||||
_easycom_up_button2();
|
||||
}
|
||||
const _easycom_up_button = () => "../../node-modules/uview-plus/components/u-button/u-button.js";
|
||||
if (!Math) {
|
||||
(CommentItem + _easycom_up_button)();
|
||||
}
|
||||
const CommentItem = () => "./CommentItem.js";
|
||||
const _sfc_main = {
|
||||
__name: "discuss",
|
||||
setup(__props) {
|
||||
|
@ -8,8 +17,8 @@ const _sfc_main = {
|
|||
content: "这是帖子的内容,大家可以在评论区讨论。"
|
||||
});
|
||||
const comments = common_vendor.ref([
|
||||
{ id: 1, username: "Alice", text: "非常好的帖子!" },
|
||||
{ id: 2, username: "Bob", text: "同意楼上的观点!" }
|
||||
{ id: 1, username: "Alice", avatar: "https://via.placeholder.com/50", text: "非常好的帖子!", replies: [], showReplyForm: false, replyText: "" },
|
||||
{ id: 2, username: "Bob", avatar: "https://via.placeholder.com/50", text: "同意楼上的观点!", replies: [], showReplyForm: false, replyText: "" }
|
||||
]);
|
||||
const newComment = common_vendor.ref("");
|
||||
const addComment = () => {
|
||||
|
@ -17,27 +26,67 @@ const _sfc_main = {
|
|||
comments.value.push({
|
||||
id: newId,
|
||||
username: "匿名用户",
|
||||
text: this.newComment
|
||||
avatar: "https://via.placeholder.com/50",
|
||||
text: newComment.value,
|
||||
replies: [],
|
||||
showReplyForm: false,
|
||||
replyText: ""
|
||||
});
|
||||
newComment.value = "";
|
||||
};
|
||||
const handleReply = (commentId, replyText) => {
|
||||
const comment = findCommentById(comments.value, commentId);
|
||||
if (comment) {
|
||||
const newReplyId = comment.replies.length + 1;
|
||||
comment.replies.push({
|
||||
id: newReplyId,
|
||||
username: "匿名用户",
|
||||
avatar: "https://via.placeholder.com/50",
|
||||
text: replyText,
|
||||
replies: [],
|
||||
showReplyForm: false,
|
||||
replyText: ""
|
||||
});
|
||||
}
|
||||
};
|
||||
const findCommentById = (comments2, id) => {
|
||||
for (const comment of comments2) {
|
||||
if (comment.id === id) {
|
||||
return comment;
|
||||
}
|
||||
const reply = findCommentById(comment.replies, id);
|
||||
if (reply) {
|
||||
return reply;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
};
|
||||
return (_ctx, _cache) => {
|
||||
return {
|
||||
a: common_vendor.t(post.value.title),
|
||||
b: common_vendor.t(post.value.content),
|
||||
c: common_vendor.f(comments.value, (comment, k0, i0) => {
|
||||
return {
|
||||
a: common_vendor.t(comment.username),
|
||||
b: common_vendor.t(comment.text),
|
||||
c: comment.id
|
||||
a: comment.id,
|
||||
b: common_vendor.o(handleReply, comment.id),
|
||||
c: "9635802b-0-" + i0,
|
||||
d: common_vendor.p({
|
||||
comment
|
||||
})
|
||||
};
|
||||
}),
|
||||
d: newComment.value,
|
||||
e: common_vendor.o(($event) => newComment.value = $event.detail.value),
|
||||
f: common_vendor.o(addComment)
|
||||
f: common_vendor.o(addComment),
|
||||
g: common_vendor.p({
|
||||
size: "large",
|
||||
type: "primary",
|
||||
shape: "circle",
|
||||
text: "发表"
|
||||
})
|
||||
};
|
||||
};
|
||||
}
|
||||
};
|
||||
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-9635802b"], ["__file", "E:/DAN/wexinxiaochengxude/NewCode2/gree_leran/pages/discuss/discuss.vue"]]);
|
||||
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-9635802b"], ["__file", "C:/Users/33043/Desktop/文件/work/newStud学习/greenStu/pages/discuss/discuss.vue"]]);
|
||||
wx.createPage(MiniProgramPage);
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
{
|
||||
"navigationBarTitleText": "评论",
|
||||
"navigationStyle": "default",
|
||||
"usingComponents": {}
|
||||
"usingComponents": {
|
||||
"up-button": "../../node-modules/uview-plus/components/u-button/u-button",
|
||||
"comment-item": "./CommentItem"
|
||||
}
|
||||
}
|
|
@ -1 +1 @@
|
|||
<view class="container data-v-9635802b"><view class="header data-v-9635802b">{{a}}</view><view class="content data-v-9635802b">{{b}}</view><view class="comments data-v-9635802b"><view wx:for="{{c}}" wx:for-item="comment" wx:key="c" class="comment data-v-9635802b"><view class="username data-v-9635802b">{{comment.a}}</view><view class="text data-v-9635802b">{{comment.b}}</view></view></view><view class="add-comment data-v-9635802b"><input class="data-v-9635802b" placeholder="发表评论" value="{{d}}" bindinput="{{e}}"/><button class="data-v-9635802b" bindtap="{{f}}">发表</button></view></view>
|
||||
<view class="container data-v-9635802b"><view class="header data-v-9635802b">{{a}}</view><view class="content data-v-9635802b">{{b}}</view><view class="comments data-v-9635802b"><comment-item wx:for="{{c}}" wx:for-item="comment" wx:key="a" class="data-v-9635802b" bindreply="{{comment.b}}" u-i="{{comment.c}}" bind:__l="__l" u-p="{{comment.d}}"/></view><view class="add-comment data-v-9635802b"><input placeholder="发表评论" class="comment-input data-v-9635802b" value="{{d}}" bindinput="{{e}}"/><view class=" data-v-9635802b" style="display:flex;align-items:center;width:200rpx"><up-button wx:if="{{g}}" class="data-v-9635802b" bindclick="{{f}}" u-i="9635802b-1" bind:__l="__l" u-p="{{g}}"></up-button></view></view></view>
|
|
@ -1,46 +1,58 @@
|
|||
|
||||
/* @import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap'); */
|
||||
.container.data-v-9635802b {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
margin-top: 20px;
|
||||
padding: 20px;
|
||||
font-family: 'Roboto', sans-serif;
|
||||
background-color: #f9f9f9;
|
||||
border-radius: 10px;
|
||||
|
||||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
.header.data-v-9635802b {
|
||||
font-size: 24px;
|
||||
font-size: 28px;
|
||||
font-weight: bold;
|
||||
color: #333;
|
||||
text-align: center;
|
||||
margin-bottom: 20px;
|
||||
border-bottom: 2px solid #007aff;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
.content.data-v-9635802b {
|
||||
margin-top: 20px;
|
||||
line-height: 1.5;
|
||||
line-height: 1.6;
|
||||
color: #666;
|
||||
}
|
||||
.comments.data-v-9635802b {
|
||||
margin-top: 20px;
|
||||
width: 100%;
|
||||
}
|
||||
.comment.data-v-9635802b {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.username.data-v-9635802b {
|
||||
font-weight: bold;
|
||||
}
|
||||
.add-comment.data-v-9635802b {
|
||||
margin-top: 20px;
|
||||
display: flex;
|
||||
width: 100%;
|
||||
align-items: center;
|
||||
}
|
||||
input.data-v-9635802b {
|
||||
.comment-input.data-v-9635802b {
|
||||
flex-grow: 1;
|
||||
margin-right: 10px;
|
||||
padding: 10px;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 5px;
|
||||
font-size: 14px;
|
||||
}
|
||||
button.data-v-9635802b {
|
||||
padding: 10px;
|
||||
.comment-button.data-v-9635802b {
|
||||
padding: 10px 20px;
|
||||
background-color: #007aff;
|
||||
color: #fff;
|
||||
border: none;
|
||||
border-radius: 5px;
|
||||
cursor: pointer;
|
||||
font-size: 14px;
|
||||
}
|
||||
.comment-button.data-v-9635802b:hover {
|
||||
background-color: #005bb5;
|
||||
}
|
||||
|
|
|
@ -74,7 +74,7 @@ const _sfc_main = {
|
|||
b: common_vendor.t(baseListItem.title),
|
||||
c: baseListIndex,
|
||||
d: common_vendor.o(($event) => NavicatToBaseItems(baseListItem), baseListIndex),
|
||||
e: "6b80012b-3-" + i0 + ",6b80012b-2"
|
||||
e: "5cad4243-3-" + i0 + ",5cad4243-2"
|
||||
};
|
||||
}),
|
||||
e: common_vendor.p({
|
||||
|
@ -88,7 +88,7 @@ const _sfc_main = {
|
|||
}),
|
||||
g: common_vendor.f(newsList, (i, k0, i0) => {
|
||||
return {
|
||||
a: "6b80012b-5-" + i0,
|
||||
a: "5cad4243-5-" + i0,
|
||||
b: common_vendor.p({
|
||||
info: i
|
||||
})
|
||||
|
@ -98,5 +98,5 @@ const _sfc_main = {
|
|||
};
|
||||
}
|
||||
};
|
||||
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__file", "E:/DAN/wexinxiaochengxude/NewCode2/gree_leran/pages/index/index.vue"]]);
|
||||
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__file", "C:/Users/33043/Desktop/文件/work/newStud学习/greenStu/pages/index/index.vue"]]);
|
||||
wx.createPage(MiniProgramPage);
|
||||
|
|
|
@ -1 +1 @@
|
|||
<view class="content"><view class="nav"><view class="tit-box"> 学习平台 </view><view class="search-box" style="width:80%;margin:0 auto"><up-search wx:if="{{b}}" class="search" u-i="6b80012b-0" bind:__l="__l" bindupdateModelValue="{{a}}" u-p="{{b}}"></up-search></view></view><view class="hand"><up-swiper wx:if="{{c}}" u-i="6b80012b-1" bind:__l="__l" u-p="{{c}}"></up-swiper></view><view class="seton"><up-grid wx:if="{{e}}" u-s="{{['d']}}" u-i="6b80012b-2" bind:__l="__l" u-p="{{e}}"><up-grid-item wx:for="{{d}}" wx:for-item="baseListItem" wx:key="c" u-s="{{['d']}}" bindclick="{{baseListItem.d}}" u-i="{{baseListItem.e}}" bind:__l="__l"><image src="{{baseListItem.a}}" style="width:60rpx" mode="widthFix"></image><text class="grid-text" style="margin:10rpx">{{baseListItem.b}}</text></up-grid-item></up-grid></view><view class="newlist"><up-text wx:if="{{f}}" u-i="6b80012b-4" bind:__l="__l" u-p="{{f}}"></up-text><view class=""><news-card wx:for="{{g}}" wx:for-item="i" u-i="{{i.a}}" bind:__l="__l" u-p="{{i.b}}"></news-card></view></view></view>
|
||||
<view class="content"><view class="nav"><view class="tit-box"> 学习平台 </view><view class="search-box" style="width:80%;margin:0 auto"><up-search wx:if="{{b}}" class="search" u-i="5cad4243-0" bind:__l="__l" bindupdateModelValue="{{a}}" u-p="{{b}}"></up-search></view></view><view class="hand"><up-swiper wx:if="{{c}}" u-i="5cad4243-1" bind:__l="__l" u-p="{{c}}"></up-swiper></view><view class="seton"><up-grid wx:if="{{e}}" u-s="{{['d']}}" u-i="5cad4243-2" bind:__l="__l" u-p="{{e}}"><up-grid-item wx:for="{{d}}" wx:for-item="baseListItem" wx:key="c" u-s="{{['d']}}" bindclick="{{baseListItem.d}}" u-i="{{baseListItem.e}}" bind:__l="__l"><image src="{{baseListItem.a}}" style="width:60rpx" mode="widthFix"></image><text class="grid-text" style="margin:10rpx">{{baseListItem.b}}</text></up-grid-item></up-grid></view><view class="newlist"><up-text wx:if="{{f}}" u-i="5cad4243-4" bind:__l="__l" u-p="{{f}}"></up-text><view class=""><news-card wx:for="{{g}}" wx:for-item="i" u-i="{{i.a}}" bind:__l="__l" u-p="{{i.b}}"></news-card></view></view></view>
|
|
@ -3,13 +3,64 @@ const common_vendor = require("../../common/vendor.js");
|
|||
const _sfc_main = {
|
||||
data() {
|
||||
return {
|
||||
// 数据部分可以根据实际需求添加,比如用户积分、可用积分等
|
||||
nowTime: "",
|
||||
baseUrl,
|
||||
scocre: null,
|
||||
rankList: []
|
||||
};
|
||||
}
|
||||
// 方法部分可以根据需要添加,比如用户积分可用于兑换商品等
|
||||
},
|
||||
onLoad() {
|
||||
this.getTime();
|
||||
this.getRanking();
|
||||
},
|
||||
methods: {
|
||||
async getRanking() {
|
||||
const resp = await getUserIntegral();
|
||||
console.log(resp);
|
||||
this.rankList = resp.data;
|
||||
this.rankList.forEach((e) => {
|
||||
this.scocre += e.integral;
|
||||
});
|
||||
},
|
||||
getTime: function() {
|
||||
var date = /* @__PURE__ */ new Date(), year = date.getFullYear(), month = date.getMonth() + 1, day = date.getDate(), hour = date.getHours() < 10 ? "0" + date.getHours() : date.getHours();
|
||||
date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
|
||||
date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
|
||||
month >= 1 && month <= 9 ? month = "0" + month : "";
|
||||
day >= 0 && day <= 9 ? day = "0" + day : "";
|
||||
var timer = year + "-" + month + "-" + day + " " + hour + ":00";
|
||||
this.nowTime = timer;
|
||||
console.log(this.nowTime);
|
||||
}
|
||||
},
|
||||
filters: {}
|
||||
};
|
||||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return {};
|
||||
return common_vendor.e({
|
||||
a: $data.rankList[1].user.avatar ? $data.baseUrl + $data.rankList[1].user.avatar : "/static/hands.png",
|
||||
b: common_vendor.t($data.rankList[1].user.nickName),
|
||||
c: common_vendor.t($data.rankList[1].integral),
|
||||
d: $data.rankList[0].user.avatar ? $data.baseUrl + $data.rankList[0].user.avatar : "/static/hands.png",
|
||||
e: common_vendor.t($data.rankList[0].user.nickName),
|
||||
f: common_vendor.t($data.rankList[0].integral),
|
||||
g: $data.rankList[2].user.avatar ? $data.baseUrl + $data.rankList[2].user.avatar : "/static/hands.png",
|
||||
h: common_vendor.t($data.rankList[1].user.nickName),
|
||||
i: common_vendor.t($data.rankList[1].integral),
|
||||
j: common_vendor.t($data.nowTime),
|
||||
k: common_vendor.t(new Number($data.scocre / $data.rankList.length).toFixed(2)),
|
||||
l: _ctx.index < 100
|
||||
}, _ctx.index < 100 ? {
|
||||
m: common_vendor.f($data.rankList, (item, index, i0) => {
|
||||
return {
|
||||
a: common_vendor.t(index + 4),
|
||||
b: item.user.avatar ? $data.baseUrl + item.user.avatar : "/static/hands.png",
|
||||
c: common_vendor.t(item.user.nickName),
|
||||
d: common_vendor.t(item.post),
|
||||
e: common_vendor.t(item.integral),
|
||||
f: index
|
||||
};
|
||||
})
|
||||
} : {});
|
||||
}
|
||||
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-e7fd672d"], ["__file", "E:/DAN/wexinxiaochengxude/NewCode2/gree_leran/pages/intergral/intergral.vue"]]);
|
||||
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "C:/Users/33043/Desktop/文件/work/newStud学习/greenStu/pages/intergral/intergral.vue"]]);
|
||||
wx.createPage(MiniProgramPage);
|
||||
|
|
|
@ -1 +1 @@
|
|||
<view class="container data-v-e7fd672d"><view class="score-title data-v-e7fd672d">积分</view><view class="score-content data-v-e7fd672d"><view class="score-item data-v-e7fd672d"><text class="score-label data-v-e7fd672d">我的积分:</text><text class="score-value data-v-e7fd672d">1234</text></view><view class="score-item data-v-e7fd672d"><text class="score-label data-v-e7fd672d">可用积分:</text><text class="score-value data-v-e7fd672d">100</text></view><view class="score-item data-v-e7fd672d"><text class="score-label data-v-e7fd672d">积分使用规则:</text></view></view></view>
|
||||
<view><view class="contaier" style="background-color:#FFFFFF"><view class="top_bg"><view class="one_box"><view class="top3"><view class="num_two"><image class="huangguan2" src="/static/rank/two.png"></image><image class="top3_head" src="{{a}}"></image><view class="top_name">{{b}}</view><view class="top_sy">{{c}}<label>分</label></view></view></view><view class="top3"><view class="num_one"><image class="huangguan1" src="/static/rank/one.png"></image><image class="top3_head" src="{{d}}"></image><view class="top_name text-bold" style="font-size:30rpx">{{e}}</view><view class="top_sy">{{f}}<label>分</label></view></view></view><view class="top3"><view class="num_three"><image class="huangguan2" src="/static/rank/three.png"></image><image class="top3_head" src="{{g}}"></image><view class="top_name">{{h}}</view><view class="top_sy">{{i}}分</view></view></view></view><view class="number_sy_box"><view class="number_sy_box_title"><text>分数·统计</text><text style="position:absolute;right:20rpx;z-index:9999;font-size:24rpx;color:#c3c3c3"> 截止:{{j}}</text></view><view class="number_sy_main"><view style="width:50%;text-align:center;border-right:1px solid #eee"><view class="number_num1">{{k}}分</view><view class="danwei">平均积分</view></view><image mode="widthFix" class="xiaoding_bg" src="/static/rank/Intersect.png"></image></view></view></view><view class="rankList_box"><block wx:if="{{l}}"><view wx:for="{{m}}" wx:for-item="item" wx:key="f" class="rankItem"><view class="rankIndex"><text>{{item.a}}</text></view><view class="HeardBox"><image class="rankHeard" src="{{item.b}}"></image></view><view class="NameBox"><view class="userName text-bold">{{item.c}}</view><view class="userPost text-gray">{{item.d}}</view><view class="color_ccc"><text class="text-blue">{{item.e}}</text>分</view></view><view class="download_box"><image mode="widthFix" src="/static/rank/download.png"></image></view></view></block></view></view></view>
|
|
@ -1,24 +1,233 @@
|
|||
|
||||
.container.data-v-e7fd672d {
|
||||
padding: 20px;
|
||||
/**
|
||||
* 这里是uni-app内置的常用样式变量
|
||||
*
|
||||
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
|
||||
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
|
||||
*
|
||||
*/
|
||||
/**
|
||||
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
|
||||
*
|
||||
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
|
||||
*/
|
||||
/* 颜色变量 */
|
||||
/* 行为相关颜色 */
|
||||
/* 文字基本颜色 */
|
||||
/* 背景颜色 */
|
||||
/* 边框颜色 */
|
||||
/* 尺寸变量 */
|
||||
/* 文字尺寸 */
|
||||
/* 图片尺寸 */
|
||||
/* Border Radius */
|
||||
/* 水平间距 */
|
||||
/* 垂直间距 */
|
||||
/* 透明度 */
|
||||
/* 文章场景相关 */
|
||||
.top_bg {
|
||||
width: 750rpx;
|
||||
height: 650rpx;
|
||||
background: url(http://cdn.zhoukaiwen.com/rank_bg.png) no-repeat;
|
||||
background-size: 750rpx;
|
||||
position: relative;
|
||||
}
|
||||
.score-title.data-v-e7fd672d {
|
||||
font-size: 18px;
|
||||
font-weight: bold;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.score-item.data-v-e7fd672d {
|
||||
.one_box {
|
||||
width: 750rpx;
|
||||
height: 260rpx;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 110rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 10px;
|
||||
justify-content: space-around;
|
||||
}
|
||||
.score-label.data-v-e7fd672d {
|
||||
flex: 1;
|
||||
text-align: right;
|
||||
.one_box .top3 {
|
||||
width: 210rpx;
|
||||
height: 280rpx;
|
||||
}
|
||||
.score-value.data-v-e7fd672d {
|
||||
flex: 1;
|
||||
text-align: left;
|
||||
font-weight: bold;
|
||||
color: #5677fc;
|
||||
.top_name {
|
||||
width: 100%;
|
||||
height: 55rpx;
|
||||
line-height: 60rpx;
|
||||
color: #f2f2f2;
|
||||
font-size: 26rpx;
|
||||
text-align: center;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.top_sy {
|
||||
width: 100%;
|
||||
height: 40rpx;
|
||||
line-height: 40rpx;
|
||||
font-size: 24rpx;
|
||||
color: rgba(255, 255, 255, 0.7);
|
||||
text-align: center;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.top_sy span {
|
||||
font-size: 20rpx !important;
|
||||
}
|
||||
.num_one {
|
||||
position: relative;
|
||||
}
|
||||
.huangguan1 {
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
position: absolute;
|
||||
right: -10rpx;
|
||||
top: -36rpx;
|
||||
}
|
||||
.num_one .top3_head {
|
||||
width: 150rpx;
|
||||
height: 150rpx;
|
||||
border-radius: 100%;
|
||||
margin: 15rpx 0 0 30rpx;
|
||||
border: 4rpx solid #ffdd3c;
|
||||
}
|
||||
.num_two {
|
||||
position: relative;
|
||||
}
|
||||
.huangguan2 {
|
||||
width: 100rpx;
|
||||
height: 100rpx;
|
||||
position: absolute;
|
||||
right: 15rpx;
|
||||
}
|
||||
.num_two .top3_head {
|
||||
width: 120rpx;
|
||||
height: 120rpx;
|
||||
border-radius: 100%;
|
||||
margin: 45rpx 0 0 45rpx;
|
||||
border: 4rpx solid #bcdcdf;
|
||||
}
|
||||
.num_three {
|
||||
position: relative;
|
||||
}
|
||||
.huangguan2 {
|
||||
width: 100rpx;
|
||||
height: 100rpx;
|
||||
position: absolute;
|
||||
right: 15rpx;
|
||||
}
|
||||
.num_three .top3_head {
|
||||
width: 120rpx;
|
||||
height: 120rpx;
|
||||
border-radius: 100%;
|
||||
margin: 45rpx 0 0 45rpx;
|
||||
border: 4rpx solid #e29d85;
|
||||
}
|
||||
.number_sy_box {
|
||||
width: 700rpx;
|
||||
height: 210rpx;
|
||||
background-color: #FFFFFF;
|
||||
position: absolute;
|
||||
left: 25rpx;
|
||||
border-radius: 20rpx;
|
||||
bottom: -115rpx;
|
||||
z-index: 999;
|
||||
padding: 22rpx;
|
||||
box-shadow: 3px 3px 15px 3px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
.number_sy_box_title {
|
||||
color: #888888;
|
||||
font-size: 28rpx;
|
||||
display: flex;
|
||||
z-index: 9999;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.number_sy_main {
|
||||
width: 100%;
|
||||
height: 124rpx;
|
||||
padding-top: 20rpx;
|
||||
line-height: 52rpx;
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
position: relative;
|
||||
}
|
||||
.xiaoding_bg {
|
||||
position: absolute;
|
||||
right: -22rpx;
|
||||
bottom: -30rpx;
|
||||
width: 180rpx;
|
||||
}
|
||||
.number_num1 {
|
||||
font-size: 40rpx;
|
||||
font-weight: 500;
|
||||
color: #2fc04f;
|
||||
}
|
||||
.number_num2 {
|
||||
font-size: 40rpx;
|
||||
font-weight: 500;
|
||||
color: #4bac7f;
|
||||
}
|
||||
.danwei {
|
||||
height: 60rpx;
|
||||
line-height: 60rpx;
|
||||
font-size: 26rpx;
|
||||
color: #c9c9c9;
|
||||
}
|
||||
.rankList_box {
|
||||
width: 750rpx;
|
||||
min-height: 200rpx;
|
||||
margin-top: 130rpx;
|
||||
}
|
||||
.rankItem:last-child {
|
||||
border: none;
|
||||
}
|
||||
.rankItem {
|
||||
width: 700rpx;
|
||||
height: 140rpx;
|
||||
margin: 0px auto;
|
||||
border-bottom: 1px solid #e9e9e9;
|
||||
}
|
||||
.rankIndex {
|
||||
width: 60rpx;
|
||||
height: 140rpx;
|
||||
line-height: 140rpx;
|
||||
text-align: center;
|
||||
color: #CCCCCC;
|
||||
font-size: 40rpx;
|
||||
float: left;
|
||||
}
|
||||
.HeardBox {
|
||||
width: 100rpx;
|
||||
height: 100rpx;
|
||||
margin: 20rpx;
|
||||
border-radius: 100%;
|
||||
overflow: hidden;
|
||||
float: left;
|
||||
margin-right: 25rpx;
|
||||
margin-left: 10rpx !important;
|
||||
}
|
||||
.HeardBox image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
.NameBox {
|
||||
width: 400rpx;
|
||||
height: 140rpx;
|
||||
float: left;
|
||||
padding-top: 10rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.NameBox view {
|
||||
height: 50rpx;
|
||||
line-height: 70rpx;
|
||||
}
|
||||
.userName {
|
||||
min-width: 90rpx;
|
||||
font-size: 30rpx;
|
||||
float: left;
|
||||
margin-right: 20rpx;
|
||||
}
|
||||
.download_box {
|
||||
width: 80rpx;
|
||||
height: 140rpx;
|
||||
float: right;
|
||||
}
|
||||
.download_box image {
|
||||
width: 45rpx;
|
||||
margin: 50rpx auto;
|
||||
display: block;
|
||||
}
|
|
@ -17,7 +17,7 @@ const _sfc_main = {
|
|||
return {
|
||||
a: common_vendor.f(newsList, (i, k0, i0) => {
|
||||
return {
|
||||
a: "5399d236-0-" + i0,
|
||||
a: "2b6dbdfd-0-" + i0,
|
||||
b: common_vendor.p({
|
||||
info: i
|
||||
})
|
||||
|
@ -27,5 +27,5 @@ const _sfc_main = {
|
|||
};
|
||||
}
|
||||
};
|
||||
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__file", "E:/DAN/wexinxiaochengxude/NewCode2/gree_leran/pages/news/news.vue"]]);
|
||||
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__file", "C:/Users/33043/Desktop/文件/work/newStud学习/greenStu/pages/news/news.vue"]]);
|
||||
wx.createPage(MiniProgramPage);
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
const common_vendor = require("../../common/vendor.js");
|
||||
const comm_api = require("../../comm/api.js");
|
||||
const utils_Auth = require("../../utils/Auth.js");
|
||||
require("../../utils/http.js");
|
||||
if (!Array) {
|
||||
const _easycom_up_button2 = common_vendor.resolveComponent("up-button");
|
||||
_easycom_up_button2();
|
||||
|
@ -57,5 +58,5 @@ const _sfc_main = {
|
|||
};
|
||||
}
|
||||
};
|
||||
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__file", "E:/DAN/wexinxiaochengxude/NewCode2/gree_leran/pages/user/login.vue"]]);
|
||||
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__file", "C:/Users/33043/Desktop/文件/work/newStud学习/greenStu/pages/user/login.vue"]]);
|
||||
wx.createPage(MiniProgramPage);
|
||||
|
|
|
@ -1 +1 @@
|
|||
<view class="main"><view class="" style="width:80%;margin:0 auto"><up-button wx:if="{{b}}" bindclick="{{a}}" u-i="d9879682-0" bind:__l="__l" u-p="{{b}}"></up-button></view></view>
|
||||
<view class="main"><view class="" style="width:80%;margin:0 auto"><up-button wx:if="{{b}}" bindclick="{{a}}" u-i="35531eb2-0" bind:__l="__l" u-p="{{b}}"></up-button></view></view>
|
|
@ -2,6 +2,7 @@
|
|||
const common_vendor = require("../../common/vendor.js");
|
||||
const utils_Auth = require("../../utils/Auth.js");
|
||||
const comm_api = require("../../comm/api.js");
|
||||
require("../../utils/http.js");
|
||||
if (!Array) {
|
||||
const _easycom_up_avatar2 = common_vendor.resolveComponent("up-avatar");
|
||||
const _easycom_up_cell2 = common_vendor.resolveComponent("up-cell");
|
||||
|
@ -82,5 +83,5 @@ const _sfc_main = {
|
|||
};
|
||||
}
|
||||
};
|
||||
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-0f7520f0"], ["__file", "E:/DAN/wexinxiaochengxude/NewCode2/gree_leran/pages/user/user.vue"]]);
|
||||
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-0f7520f0"], ["__file", "C:/Users/33043/Desktop/文件/work/newStud学习/greenStu/pages/user/user.vue"]]);
|
||||
wx.createPage(MiniProgramPage);
|
||||
|
|
|
@ -1,119 +1,106 @@
|
|||
"use strict";
|
||||
const common_vendor = require("../../common/vendor.js");
|
||||
const cardVideo = () => "../../components/cardVideo.js";
|
||||
const potoInfo = () => "../../components/photosInfo.js";
|
||||
const _sfc_main = {
|
||||
components: {
|
||||
cardVideo,
|
||||
potoInfo
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
screenHeight: 0,
|
||||
statusBarHeight: 0,
|
||||
navBarHeight: 0,
|
||||
originList: [],
|
||||
// 源数据
|
||||
displaySwiperList: [],
|
||||
// swiper需要的数据
|
||||
displayIndex: 0,
|
||||
// 用于显示swiper的真正的下标数值只有:0,1,2。
|
||||
originIndex: 0,
|
||||
// 记录源数据的下标
|
||||
changeIndex: 0,
|
||||
//控制video是否渲染
|
||||
page: 0,
|
||||
// 视频分页
|
||||
num: 0,
|
||||
flag: true
|
||||
status: "loadmore",
|
||||
list: [{
|
||||
name: "视频"
|
||||
}, {
|
||||
name: "图片"
|
||||
}],
|
||||
current: 0,
|
||||
imageList: [],
|
||||
swpper: {
|
||||
index: 0
|
||||
},
|
||||
page: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
total: 0
|
||||
},
|
||||
videoList: [{
|
||||
src: "",
|
||||
avatar: "dsfs",
|
||||
username: "sdsd",
|
||||
titleName: "asdsdas",
|
||||
tagName: "sdasd"
|
||||
}],
|
||||
videoContext: null
|
||||
};
|
||||
},
|
||||
onLoad() {
|
||||
common_vendor.wx$1.getSystemInfo({
|
||||
success: (res) => {
|
||||
this.screenHeight = res.screenHeight;
|
||||
this.statusBarHeight = res.statusBarHeight;
|
||||
if (res.system.substring(0, 3) == "iOS") {
|
||||
this.navBarHeight = 42;
|
||||
} else {
|
||||
this.navBarHeight = 40;
|
||||
}
|
||||
}
|
||||
});
|
||||
this.getPageID();
|
||||
},
|
||||
methods: {
|
||||
/* 生成随机的 pageID */
|
||||
getPageID() {
|
||||
let pageID = parseInt(Math.random() * (0 - 100 + 1) + 100);
|
||||
this.getVideoList(pageID);
|
||||
getVideo(e) {
|
||||
console.log(e);
|
||||
if (this.videoContext) {
|
||||
console.log("test");
|
||||
this.videoContext.pause();
|
||||
}
|
||||
this.videoContext = e.videoContext;
|
||||
},
|
||||
/* 获取视频数据 */
|
||||
getVideoList(pageID) {
|
||||
common_vendor.index.request({
|
||||
url: "https://api.apiopen.top/api/getMiniVideo?page=" + pageID + "&size=10&pageSize=10",
|
||||
// 请求数据接口
|
||||
data: {},
|
||||
success: (res) => {
|
||||
if (res.data.code == 200) {
|
||||
res.data.result.list.forEach((item) => {
|
||||
let obj = {};
|
||||
obj.src = item.playurl;
|
||||
obj.title = item.title;
|
||||
this.originList.push(obj);
|
||||
});
|
||||
}
|
||||
if (this.flag) {
|
||||
this.flag = false;
|
||||
this.initSwiperData(0);
|
||||
}
|
||||
ISstatusInit() {
|
||||
switch (this.swpper.index) {
|
||||
case 0: {
|
||||
this.getVideoList();
|
||||
break;
|
||||
}
|
||||
});
|
||||
},
|
||||
changed(event) {
|
||||
let {
|
||||
current
|
||||
} = event.detail;
|
||||
let originListLength = this.originList.length;
|
||||
this.changeIndex = current;
|
||||
if (this.displayIndex - current == 2 || this.displayIndex - current == -1) {
|
||||
this.originIndex = this.originIndex + 1 == originListLength ? 0 : this.originIndex + 1;
|
||||
this.displayIndex = this.displayIndex + 1 == 3 ? 0 : this.displayIndex + 1;
|
||||
this.initSwiperData(this.originIndex);
|
||||
this.num++;
|
||||
console.log("num", this.num, this.originList.length);
|
||||
if (this.num + 5 >= this.originList.length) {
|
||||
this.getPageID();
|
||||
}
|
||||
} else if (this.displayIndex - current == -2 || this.displayIndex - current == 1) {
|
||||
this.originIndex = this.originIndex - 1 == -1 ? originListLength - 1 : this.originIndex - 1;
|
||||
this.displayIndex = this.displayIndex - 1 == -1 ? 2 : this.displayIndex - 1;
|
||||
this.initSwiperData(this.originIndex);
|
||||
if (this.num > 0) {
|
||||
this.num--;
|
||||
case 1: {
|
||||
this.getImageList();
|
||||
}
|
||||
}
|
||||
},
|
||||
initSwiperData(originIndex = this.originIndex) {
|
||||
let originListLength = this.originList.length;
|
||||
let displayList = [];
|
||||
displayList[this.displayIndex] = this.originList[originIndex];
|
||||
displayList[this.displayIndex - 1 == -1 ? 2 : this.displayIndex - 1] = this.originList[originIndex - 1 == -1 ? originListLength - 1 : originIndex - 1];
|
||||
displayList[this.displayIndex + 1 == 3 ? 0 : this.displayIndex + 1] = this.originList[originIndex + 1 == originListLength ? 0 : originIndex + 1];
|
||||
this.displaySwiperList = displayList;
|
||||
onReachLoad() {
|
||||
this.status = "loading";
|
||||
this.page.pageSize += 10;
|
||||
this.ISstatusInit();
|
||||
console.log(this.swpper.index);
|
||||
if (this.list.length >= this.page.total) {
|
||||
console.log(this.list.length);
|
||||
this.status = "nomore";
|
||||
} else {
|
||||
this.status = "loadmore";
|
||||
}
|
||||
},
|
||||
async getVideoList() {
|
||||
},
|
||||
change(e) {
|
||||
console.log(e);
|
||||
this.swpper.index = e.index;
|
||||
this.page = {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
total: 0
|
||||
};
|
||||
this.ISstatusInit();
|
||||
}
|
||||
}
|
||||
};
|
||||
if (!Array) {
|
||||
const _component_card_video = common_vendor.resolveComponent("card-video");
|
||||
_component_card_video();
|
||||
}
|
||||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return {
|
||||
a: common_vendor.f($data.displaySwiperList, (item, index, i0) => {
|
||||
return common_vendor.e({
|
||||
a: index == $data.changeIndex
|
||||
}, index == $data.changeIndex ? {
|
||||
b: item.src
|
||||
} : {}, {
|
||||
c: common_vendor.t(item.title),
|
||||
d: index
|
||||
});
|
||||
}),
|
||||
b: common_vendor.o((...args) => _ctx.transition && _ctx.transition(...args)),
|
||||
c: common_vendor.o((...args) => $options.changed && $options.changed(...args)),
|
||||
d: $data.screenHeight - $data.navBarHeight + "px"
|
||||
a: common_vendor.f($data.videoList, (item, index, i0) => {
|
||||
return {
|
||||
a: common_vendor.o($options.getVideo, index),
|
||||
b: index,
|
||||
c: "71f14456-0-" + i0,
|
||||
d: common_vendor.p({
|
||||
VideoId: index,
|
||||
Videos: item
|
||||
})
|
||||
};
|
||||
})
|
||||
};
|
||||
}
|
||||
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "E:/DAN/wexinxiaochengxude/NewCode2/gree_leran/pages/video/video.vue"]]);
|
||||
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "C:/Users/33043/Desktop/文件/work/newStud学习/greenStu/pages/video/video.vue"]]);
|
||||
wx.createPage(MiniProgramPage);
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
{
|
||||
"navigationBarTitleText": "视频",
|
||||
"navigationStyle": "default",
|
||||
"usingComponents": {}
|
||||
"usingComponents": {
|
||||
"card-video": "../../components/cardVideo"
|
||||
}
|
||||
}
|
|
@ -1 +1 @@
|
|||
<view><swiper circular vertical duration="200" bindtransition="{{b}}" bindchange="{{c}}" style="{{'height:' + d}}"><block wx:for="{{a}}" wx:for-item="item" wx:key="d"><swiper-item><video wx:if="{{item.a}}" src="{{item.b}}" autoplay="true" controls="true" custom-cache="false" loop="false" enable-play-gesture="true" enable-progress-gesture="true" show-center-play-btn="true"></video><view class="video-text"><view class="tips">{{item.c}}</view></view></swiper-item></block></swiper></view>
|
||||
<view class="content"><view class="swiper-item"><card-video wx:for="{{a}}" wx:for-item="item" wx:key="b" style="margin-bottom:20px" bindonplay="{{item.a}}" u-i="{{item.c}}" bind:__l="__l" u-p="{{item.d}}"></card-video></view></view>
|
|
@ -1,25 +1,46 @@
|
|||
|
||||
swiper {
|
||||
width: 100%;
|
||||
background: #000
|
||||
/**
|
||||
* 这里是uni-app内置的常用样式变量
|
||||
*
|
||||
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
|
||||
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
|
||||
*
|
||||
*/
|
||||
/**
|
||||
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
|
||||
*
|
||||
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
|
||||
*/
|
||||
/* 颜色变量 */
|
||||
/* 行为相关颜色 */
|
||||
/* 文字基本颜色 */
|
||||
/* 背景颜色 */
|
||||
/* 边框颜色 */
|
||||
/* 尺寸变量 */
|
||||
/* 文字尺寸 */
|
||||
/* 图片尺寸 */
|
||||
/* Border Radius */
|
||||
/* 水平间距 */
|
||||
/* 垂直间距 */
|
||||
/* 透明度 */
|
||||
/* 文章场景相关 */
|
||||
.content {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 100vh;
|
||||
padding-bottom: 10%;
|
||||
}
|
||||
swiper-item {
|
||||
height: 100%;
|
||||
width: 100%
|
||||
.content .nav {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
position: fixed;
|
||||
top: 0%;
|
||||
justify-content: center;
|
||||
z-index: 2;
|
||||
}
|
||||
video {
|
||||
height: 96%;
|
||||
width: 100%
|
||||
}
|
||||
.video-text {
|
||||
position: absolute;
|
||||
margin-left: 32rpx;
|
||||
width: 580rpx;
|
||||
bottom: 200rpx;
|
||||
z-index: 9999;
|
||||
}
|
||||
.tips {
|
||||
width: 560rpx;
|
||||
font-size: 26rpx;
|
||||
color: #ffffff;
|
||||
.content swiper {
|
||||
position: relative;
|
||||
top: 90rpx;
|
||||
}
|
||||
.content swiper swiper-item {
|
||||
overflow: scroll;
|
||||
}
|
|
@ -18,7 +18,8 @@
|
|||
"ignore": [],
|
||||
"disablePlugins": [],
|
||||
"outputPath": ""
|
||||
}
|
||||
},
|
||||
"ignoreUploadUnusedFiles": false
|
||||
},
|
||||
"condition": {},
|
||||
"editorSetting": {
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
"description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
|
||||
"projectname": "gree_leran",
|
||||
"setting": {
|
||||
"compileHotReLoad": true,
|
||||
"urlCheck": false
|
||||
"compileHotReLoad": true
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue