页面调整

This commit is contained in:
虾壳 2024-06-23 19:13:34 +08:00
parent e0b7985e2b
commit d0bca860a3
51 changed files with 834 additions and 612 deletions

View File

@ -15,9 +15,9 @@
</view>
<view class="cardbox-icon">
<up-icon v-if="info.isLike" @click="toLike" name="heart-fill" color="#ff0004" size="28"></up-icon>
<up-icon v-else name="heart" @click="toLike" color="#ff0004" size="28"></up-icon>
<up-icon v-if="info.isCollection" @click="toCollection" name="star-fill" color="#ff0004" size="28"></up-icon>
<up-icon v-else name="star" @click="toCollection" color="#ff0004" size="28"></up-icon>
<up-icon v-else name="heart" @click="toLike" color="#000" size="28"></up-icon>
<up-icon v-if="info.isCollection" @click="toCollection" name="star-fill" color="#ffe623" size="28"></up-icon>
<up-icon v-else name="star" @click="toCollection" color="#000" size="28"></up-icon>
</view>
</view>
</view>
@ -214,7 +214,7 @@ onMounted(() => {
}
.cardbox-bttom {
width: 90%;
height: 10%;
height: 12%;
overflow: hidden;
display: flex;
justify-content: space-between;

View File

@ -149,7 +149,7 @@
height: 100%;
display: flexbox;
flex-flow: column;
background-color: #e2e2e2;
background-color: #F7F8FA;
}
.list-itme{
width: 98%;

View File

@ -6,16 +6,12 @@
<div class="title-and-stats">
<span class="title">{{ Videos.titleName }}</span>
<div class="stats">
<!-- <span class="views">{{ info.viewCount }} 次观看</span> -->
<span class="date">{{ info.createTime }}</span>
</div>
</div>
<div class="action-buttons">
<!-- 点赞按钮 -->
<up-icon v-if="info.isLike" @click="toLike" name="heart-fill" color="#ff0004" size="28"></up-icon>
<up-icon v-else name="heart" @click="toLike" color="#ff0004" size="28"></up-icon>
<!-- {{info.likeCount!=0?info.likeCount:""}} -->
<!-- 收藏按钮 -->
<up-icon v-if="info.isCollection" @click="toCollection" name="star-fill" color="#ffd700" size="28"></up-icon>
<up-icon v-else name="star" @click="toCollection" color="#ffd700" size="28"></up-icon>
</div>
@ -24,13 +20,14 @@
<div :class="{'description': true, 'expanded': isExpanded}">
<rich-text :nodes="info.description"></rich-text>
</div>
<button class="expand-button" @click="toggleExpand">
{{ isExpanded ? '收起' : '展开' }}
</button>
<div class="expand-button" @click="toggleExpand">
<span class="expand-text">{{ isExpanded ? '收起' : '展开描述' }}</span>
</div>
</div>
</div>
</div>
</template>
<script setup>
import { ref, reactive, defineProps, defineEmits, onMounted } from 'vue';
@ -119,6 +116,7 @@ onMounted(() => {
info.viewCount = props.Videos.viewCount;
});
</script>
<style scoped lang="scss">
$videoBoxradius: 10px;
$backColor: #fff;
@ -149,6 +147,7 @@ $borderColor: rgba(0, 0, 0, 0.1);
.video {
width: 100%;
border-bottom: 1px solid $borderColor;
border-radius: $videoBoxradius $videoBoxradius 0 0;
}
.info-bar {
@ -199,11 +198,11 @@ $borderColor: rgba(0, 0, 0, 0.1);
.description {
overflow: hidden;
max-height: 100px;
max-height: 0;
transition: max-height 0.3s ease-in-out;
&.expanded {
max-height: none;
max-height: 200px;
}
rich-text {
@ -216,18 +215,21 @@ $borderColor: rgba(0, 0, 0, 0.1);
.expand-button {
margin-top: 10px;
background: none;
border: none;
color: $primaryColor;
cursor: pointer;
font-size: 14px;
padding: 0;
outline: none;
display: flex;
align-items: center;
transition: color 0.3s ease-in-out;
&:hover {
color: darken($primaryColor, 10%);
}
.expand-text {
font-size: 14px;
margin-left: 5px;
}
}
}
}

View File

@ -5,8 +5,8 @@
学习平台
</view>
<view class="search-box" style="width: 80%;margin: 0 auto;">
<!-- <up-search class="search" placeholder="日照香炉生紫烟" :clearabled="true" v-model="keyword"
animation="false"></up-search> -->
<up-search class="search" placeholder="日照香炉生紫烟" :clearabled="true" v-model="keyword"
animation="false"></up-search>
</view>
</view>
<view class="hand">
@ -26,7 +26,7 @@
<up-text margin="1em" type="primary" text="新闻"></up-text>
</view>
<!-- <button @click="clicksx">刷新</button> -->
<CaseList style="height: 100vh;" ref="caseList"></CaseList>
<CaseList ref="caseList"></CaseList>
</view>
<MenTab></MenTab>
</view>
@ -133,17 +133,21 @@
}
.newlist{
overflow-y: hidden;
// flex: 1;
display: flex;
flex-flow: column;
// display: flex;
// flex-flow: column;
// overflow: hidden;
}
.newList-t{
position: sticky;
top: 60rpx;
height: 60rpx;
// position: sticky;
// top: 60rpx;
// height: 60rpx;
height: 70rpx;
padding: 10rpx;
background-color: #fff;
z-index: 2;
margin: 20rpx auto;
// background-color: #000;
}
.content {

View File

@ -1,257 +1,253 @@
<template>
<view class="case-info-box">
<view class="case-info">
<view class="user-info">
<up-avatar :src="info.iamge" size="70"></up-avatar>
<!-- <up-text :text="info.name"></up-text>1 -->
<view class="user-info-box">
<view class="user-name">
<up-text text="作者名" size="33rpx" :bold="true"></up-text>
</view>
<view class="user-data">
<up-text :text="'发布于-'+info.createTime"></up-text>
</view>
</view>
</view>
<view class="title-info">
<view class="title-info-main">
<up-text :text="info.title" bold="true" size="47rpx"></up-text>
</view>
<view class="title-info-fu">
<up-text :text="info.content" color="#8f8f8f"></up-text>
</view>
</view>
<view class="body-info">
<up-text :text="info.description" size="40rpx"></up-text>
<img :src="info.imageUrl" alt="" />
</view>
</view>
<view class="comment-info">
<view class="comment-titls">
评论留言
</view>
<view class="comment-titls-list">
<CommentsBox @addComment="addComment" v-for="(item, index) in commentList" :key="item.id" :data="item">
</CommentsBox>
</view>
</view>
<InputBox v-if="inputVisible" @submit="submitNote" @blurCom="blurCom"></InputBox>
<view class="input-di">
<view class="input-di-ico" style="width: 30vw;">
<up-icon @click="clickLike" v-if="info.isLike" name="heart-fill" color="red" size="28"></up-icon>
<up-icon @click="clickLike" v-else name="heart" color="#000" size="28"></up-icon>
<up-icon @click="clickCollection" v-if="info.isCollection" name="star-fill" color="#ffe135" size="28"></up-icon>
<up-icon @click="clickCollection" v-else name="star" color="#000" size="28"></up-icon>
</view>
<view class="input-di-button" @click="addComment()">评论</view>
</view>
<view class="di"></view>
</view>
<view class="case-info-box">
<view class="case-info">
<view class="user-info">
<up-avatar :src="info.iamge" size="70"></up-avatar>
<view class="user-info-box">
<view class="user-name">
<up-text :text="info.name" size="33rpx" :bold="true"></up-text>
</view>
<view class="user-data">
<up-text :text="'发布于 ' + info.createTime"></up-text>
</view>
</view>
</view>
<view class="title-info">
<view class="title-info-main">
<up-text :text="info.title" bold="true" size="47rpx"></up-text>
</view>
<view class="title-info-fu">
<up-text :text="info.content" color="#8f8f8f"></up-text>
</view>
</view>
<view class="body-info">
<up-text :text="info.description" size="40rpx"></up-text>
<img :src="info.imageUrl" alt="Image" class="info-image" />
</view>
</view>
<view class="comment-info">
<view class="comment-title">评论留言</view>
<view class="comment-list">
<CommentsBox
@addComment="addComment"
v-for="(item, index) in commentList"
:key="item.id"
:data="item"
/>
</view>
</view>
<InputBox v-if="inputVisible" @submit="submitNote" @blurCom="blurCom"></InputBox>
<view class="input-di">
<view class="input-di-ico">
<up-icon @click="clickLike" v-if="info.isLike" name="heart-fill" color="red" size="28"></up-icon>
<up-icon @click="clickLike" v-else name="heart" color="#000" size="28"></up-icon>
<up-icon @click="clickCollection" v-if="info.isCollection" name="star-fill" color="#ffe135" size="28"></up-icon>
<up-icon @click="clickCollection" v-else name="star" color="#000" size="28"></up-icon>
</view>
<view class="input-di-button" @click="addComment">评论</view>
</view>
<view class="di"></view>
</view>
</template>
<script setup>
import {
reactive,
ref
} from 'vue';
import {
onLoad
} from "@dcloudio/uni-app"
import {
getCastInfo
} from '@/apis/cast.js'
import{getImageById}from '@/apis/user.js'
import {
getCommentsByRelatedPostId,
addComments
} from '@/apis/comments.js'
//
import {addLike} from '@/apis/likes.js'
//
import {addCollections} from "@/apis/collections.js"
const id = ref(null);
const value = ref('');
const src = ref('path/to/avatar'); //
const inputVisible = ref(false);
const inputContent = ref('');
const inputHeight = ref('40px');
const info = reactive({
caseId: null,
title: null,
content: null,
description: null,
imageUrl: null,
userId: null,
name: null,
createTime:null,
isLike:false,
isCollection:false,
iamge:null,
})
const commentList = ref([]);
const currParentCommentId = ref(null);
const currReplyUseId = ref(null);
const getInfo = async (id) => {
let res = await getCastInfo(id);
if (res.code == 200) {
console.log("详细数据", res.data);
return res;
}
return null;
}
import { reactive, ref } from 'vue';
import { onLoad } from "@dcloudio/uni-app";
import { getCastInfo } from '@/apis/cast.js';
import { getImageById } from '@/apis/user.js';
import { getCommentsByRelatedPostId, addComments } from '@/apis/comments.js';
import { addLike } from '@/apis/likes.js';
import { addCollections } from "@/apis/collections.js";
const addComment = (data) => {
if(data!=undefined){
currParentCommentId.value = data.parentCommentId | null;
currReplyUseId.value = data.replyUseId | null;
}else{
currParentCommentId.value=null;
currReplyUseId.value=null;
}
showInputBox();
//
}
const submitNote = (text) => {
inputContent.value = text;
submitComment();
inputContent.value = null;
}
const blurCom = () => {
// this.focus = false
inputVisible.value = false;
}
const showInputBox = () => {
inputVisible.value = true;
uni.nextTick(() => {
// this.focus = true
})
// inputVisible.value = false;
}
const hideInputBox = () => {}
const adjustHeight = (event) => {
inputHeight.value = event.target.scrollHeight + 'px';
}
const submitComment = async () => {
console.log("提交评论", currParentCommentId.value,currReplyUseId.value);
let res = await addComments({
relatedPostId: info.caseId,
commentContent: inputContent.value,
parentCommentId: currParentCommentId.value,
replyUseId: currReplyUseId.value,
})
currParentCommentId.value = null;
currReplyUseId.value = null;
console.log("保存评论", res);
//
inputContent.value = '';
getData(id.value);
}
const getData = async () => {
let com = await getInfo(id.value);
com = com.data;
let list = await getCommentsByRelatedPostId(id.value);
let image= await getImageById(com.userId);
list = list.data;
console.log("接口", com, list);
commentList.value = list;
info.iamge=image.msg;
info.caseId = com.caseId
info.title = com.title;
info.content = com.content;
info.description = com.description
info.imageUrl = com.imageUrl
info.userId = com.userId
info.createTime=com.createTime;
info.isLike=com.extField4=="1";
info.isCollection=com.extField5=="1";
}
const clickLike=()=>{
// console.log("",info)
info.isLike=!info.isLike;
let bo="0";
if(info.isLike){
bo="1"
}
addLike({
contentType:0,
contentId:info.caseId,
extField1:bo,
})
}
const clickCollection=()=>{
// console.log("",info)
info.isCollection=!info.isCollection;
let bo="0";
if(info.isCollection){
bo="1"
}
addCollections({
contentType:0,
contentId:info.caseId,
extField1:bo,
})
const id = ref(null);
const inputVisible = ref(false);
const inputContent = ref('');
const info = reactive({
caseId: null,
title: null,
content: null,
description: null,
imageUrl: null,
userId: null,
name: null,
createTime: null,
isLike: false,
isCollection: false,
iamge: null,
});
const commentList = ref([]);
const currParentCommentId = ref(null);
const currReplyUseId = ref(null);
}
onLoad((e) => {
console.log("进入", e)
id.value = e.id;
getData();
const getInfo = async (id) => {
let res = await getCastInfo(id);
if (res.code == 200) {
return res;
}
return null;
};
})
const addComment = (data) => {
if (data != undefined) {
currParentCommentId.value = data.parentCommentId | null;
currReplyUseId.value = data.replyUseId | null;
} else {
currParentCommentId.value = null;
currReplyUseId.value = null;
}
showInputBox();
};
const submitNote = (text) => {
inputContent.value = text;
submitComment();
inputContent.value = null;
};
const blurCom = () => {
inputVisible.value = false;
};
const showInputBox = () => {
inputVisible.value = true;
};
const submitComment = async () => {
let res = await addComments({
relatedPostId: info.caseId,
commentContent: inputContent.value,
parentCommentId: currParentCommentId.value,
replyUseId: currReplyUseId.value,
});
currParentCommentId.value = null;
currReplyUseId.value = null;
inputContent.value = '';
getData(id.value);
};
const getData = async () => {
let com = await getInfo(id.value);
com = com.data;
let list = await getCommentsByRelatedPostId(id.value);
let image = await getImageById(com.userId);
list = list.data;
commentList.value = list;
info.iamge = image.msg;
info.caseId = com.caseId;
info.title = com.title;
info.content = com.content;
info.description = com.description;
info.imageUrl = com.imageUrl;
info.userId = com.userId;
info.createTime = com.createTime;
info.isLike = com.extField4 == "1";
info.isCollection = com.extField5 == "1";
};
const clickLike = () => {
info.isLike = !info.isLike;
let bo = info.isLike ? "1" : "0";
addLike({ contentType: 0, contentId: info.caseId, extField1: bo });
};
const clickCollection = () => {
info.isCollection = !info.isCollection;
let bo = info.isCollection ? "1" : "0";
addCollections({ contentType: 0, contentId: info.caseId, extField1: bo });
};
onLoad((e) => {
id.value = e.id;
getData();
});
</script>
<style lang="scss">
.case-info-box{
// background-color: #E8E8E8;
}
.case-info{
width: 97%;
box-sizing: border-box;
padding: 20rpx;
margin: 10rpx auto;
border-radius: 10rpx;
background-color: #fff;
.user-info{
display: flex;
align-items:end;
.user-data{
margin-top:40rpx;
height: 30%;
margin-left: 20rpx;
}
.user-name{
margin-left: 20rpx;
display: flex;
flex-flow: column;
}
}
.title-info{
margin-top: 20rpx;
}
.body-info{
margin-top:40rpx;
}
}
.comment-titls{
font-size: 37rpx;
height: 50rpx;
display: flex;
justify-content: left;
align-items: center;
width: 95%;
margin:20rpx auto;
background-color: #A8E6CF;
}
.input-di {
<style scoped lang="scss">
.case-info-box {
padding: 20rpx;
min-height: 90vh;
background-color:#F5F5F5;
}
.case-info {
width: 100%;
box-sizing: border-box;
padding: 20rpx;
margin: 10rpx auto;
border-radius: 20rpx;
background-color: #ffffff;
box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.1);
}
.user-info {
display: flex;
align-items: center;
.user-info-box {
margin-left: 20rpx;
.user-name {
margin-bottom: 5rpx;
}
.user-data {
font-size: 30rpx;
color: #888888;
}
}
}
.title-info {
margin-top: 20rpx;
.title-info-main {
margin-bottom: 10rpx;
}
.title-info-fu {
color: #8f8f8f;
font-size: 35rpx;
}
}
.body-info {
margin-top: 20rpx;
.info-image {
width: 100%;
border-radius: 10rpx;
margin-top: 10rpx;
}
}
.comment-info {
margin-top: 30rpx;
.comment-title {
font-size: 37rpx;
font-weight: bold;
color: #333333;
margin-bottom: 10rpx;
}
.comment-list {
background-color: #ffffff;
border-radius: 10rpx;
padding: 10rpx;
box-shadow: 0 1rpx 6rpx rgba(0, 0, 0, 0.1);
}
}
.input-di {
display: flex;
position: fixed;
justify-content: space-between;
align-items: center;
bottom: 0;
left: 0;
height: 10vh;
width: 100%;
background-color: #A8E6CF;
border-radius: 20rpx 20rpx 10rpx 10rpx;
}
.di {
height: 10vh;
width: 100%;
@ -265,30 +261,18 @@
}
.input-di-button {
display: flex;
justify-content: center;
align-items: center;
height: 50%;
width: 30%;
margin-right: 20rpx;
// margin-left: auto;
background-color: #000;
color: #fff;
border-radius: 40rpx;
}
.album {
@include flex;
align-items: flex-start;
&__avatar {
background-color: $u-bg-color;
padding: 5px;
border-radius: 3px;
}
&__content {
margin-left: 10px;
flex: 1;
}
margin: auto;
margin-right: 60rpx;
}
</style>

View File

@ -10158,6 +10158,138 @@ const createHook = (lifecycle) => (hook, target = getCurrentInstance()) => {
};
const onShow = /* @__PURE__ */ createHook(ON_SHOW);
const onLoad = /* @__PURE__ */ createHook(ON_LOAD);
const props$n = {
props: {
// 搜索框形状round-圆形square-方形
shape: {
type: String,
default: () => defProps.search.shape
},
// 搜索框背景色,默认值#f2f2f2
bgColor: {
type: String,
default: () => defProps.search.bgColor
},
// 占位提示文字
placeholder: {
type: String,
default: () => defProps.search.placeholder
},
// 是否启用清除控件
clearabled: {
type: Boolean,
default: () => defProps.search.clearabled
},
// 是否自动聚焦
focus: {
type: Boolean,
default: () => defProps.search.focus
},
// 是否在搜索框右侧显示取消按钮
showAction: {
type: Boolean,
default: () => defProps.search.showAction
},
// 右边控件的样式
actionStyle: {
type: Object,
default: () => defProps.search.actionStyle
},
// 取消按钮文字
actionText: {
type: String,
default: () => defProps.search.actionText
},
// 输入框内容对齐方式,可选值为 left|center|right
inputAlign: {
type: String,
default: () => defProps.search.inputAlign
},
// input输入框的样式可以定义文字颜色大小等对象形式
inputStyle: {
type: Object,
default: () => defProps.search.inputStyle
},
// 是否启用输入框
disabled: {
type: Boolean,
default: () => defProps.search.disabled
},
// 边框颜色
borderColor: {
type: String,
default: () => defProps.search.borderColor
},
// 搜索图标的颜色,默认同输入框字体颜色
searchIconColor: {
type: String,
default: () => defProps.search.searchIconColor
},
// 输入框字体颜色
color: {
type: String,
default: () => defProps.search.color
},
// placeholder的颜色
placeholderColor: {
type: String,
default: () => defProps.search.placeholderColor
},
// 左边输入框的图标可以为uView图标名称或图片路径
searchIcon: {
type: String,
default: () => defProps.search.searchIcon
},
searchIconSize: {
type: [Number, String],
default: () => defProps.search.searchIconSize
},
// 组件与其他上下左右元素之间的距离,带单位的字符串形式,如"30px"、"30px 20px"等写法
margin: {
type: String,
default: () => defProps.search.margin
},
// 开启showAction时是否在input获取焦点时才显示
animation: {
type: Boolean,
default: () => defProps.search.animation
},
// 输入框的初始化内容
modelValue: {
type: String,
default: () => defProps.search.value
},
value: {
type: String,
default: () => defProps.search.value
},
// 输入框最大能输入的长度,-1为不限制长度(来自uniapp文档)
maxlength: {
type: [String, Number],
default: () => defProps.search.maxlength
},
// 搜索框高度单位px
height: {
type: [String, Number],
default: () => defProps.search.height
},
// 搜索框左侧文本
label: {
type: [String, Number, null],
default: () => defProps.search.label
},
// 键盘弹起时,是否自动上推页面
adjustPosition: {
type: Boolean,
default: () => true
},
// 键盘收起时,是否自动失去焦点
autoBlur: {
type: Boolean,
default: () => false
}
}
};
const props$m = {
props: {
// 列表数组元素可为字符串如为对象可通过keyName指定目标属性名
@ -12200,29 +12332,30 @@ exports.onMounted = onMounted;
exports.onShow = onShow;
exports.openType = openType;
exports.p = p;
exports.props = props$m;
exports.props$1 = props$l;
exports.props$10 = props$c;
exports.props$11 = props$b;
exports.props$12 = props$a;
exports.props$13 = props$9;
exports.props$14 = props$8;
exports.props$15 = props$7;
exports.props$16 = props$6;
exports.props$17 = props$5;
exports.props$18 = props$4;
exports.props$19 = props$3;
exports.props$2 = props$k;
exports.props$20 = props$2;
exports.props$21 = props$1;
exports.props$22 = props;
exports.props$3 = props$j;
exports.props$4 = props$i;
exports.props$5 = props$h;
exports.props$6 = props$g;
exports.props$7 = props$f;
exports.props$8 = props$e;
exports.props$9 = props$d;
exports.props = props$n;
exports.props$1 = props$m;
exports.props$10 = props$d;
exports.props$11 = props$c;
exports.props$12 = props$b;
exports.props$13 = props$a;
exports.props$14 = props$9;
exports.props$15 = props$8;
exports.props$16 = props$7;
exports.props$17 = props$6;
exports.props$18 = props$5;
exports.props$19 = props$4;
exports.props$2 = props$l;
exports.props$20 = props$3;
exports.props$21 = props$2;
exports.props$22 = props$1;
exports.props$23 = props;
exports.props$3 = props$k;
exports.props$4 = props$j;
exports.props$5 = props$i;
exports.props$6 = props$h;
exports.props$7 = props$g;
exports.props$8 = props$f;
exports.props$9 = props$e;
exports.random = random;
exports.reactive = reactive;
exports.ref = ref;

View File

@ -180,7 +180,7 @@ const _sfc_main = {
j: common_vendor.o(toLike),
k: common_vendor.p({
name: "heart",
color: "#ff0004",
color: "#000",
size: "28"
})
}, {
@ -189,14 +189,14 @@ const _sfc_main = {
m: common_vendor.o(toCollection),
n: common_vendor.p({
name: "star-fill",
color: "#ff0004",
color: "#ffe623",
size: "28"
})
} : {
o: common_vendor.o(toCollection),
p: common_vendor.p({
name: "star",
color: "#ff0004",
color: "#000",
size: "28"
})
});

View File

@ -65,7 +65,7 @@
}
.cardbox-bttom.data-v-13ba89b0 {
width: 90%;
height: 10%;
height: 12%;
overflow: hidden;
display: flex;
justify-content: space-between;

View File

@ -28,7 +28,7 @@
height: 100%;
display: flexbox;
flex-flow: column;
background-color: #e2e2e2;
background-color: #F7F8FA;
}
.list-itme {
width: 98%;

View File

@ -124,7 +124,7 @@ const _sfc_main = {
}, {
o: info.description,
p: isExpanded.value ? 1 : "",
q: common_vendor.t(isExpanded.value ? "收起" : "展开"),
q: common_vendor.t(isExpanded.value ? "收起" : "展开描述"),
r: common_vendor.o(toggleExpand)
});
};

View File

@ -1 +1 @@
<view class="container data-v-3ffa2b55"><view class="video-box data-v-3ffa2b55"><video class="video data-v-3ffa2b55" ref="videoStatus" bindplay="{{a}}" src="{{b}}" controls></video><view class="info-bar data-v-3ffa2b55"><view class="title-and-stats data-v-3ffa2b55"><label class="title data-v-3ffa2b55">{{c}}</label><view class="stats data-v-3ffa2b55"><label class="date data-v-3ffa2b55">{{d}}</label></view></view><view class="action-buttons data-v-3ffa2b55"><up-icon wx:if="{{e}}" class="data-v-3ffa2b55" bindclick="{{f}}" u-i="3ffa2b55-0" bind:__l="__l" u-p="{{g}}"></up-icon><up-icon wx:else class="data-v-3ffa2b55" bindclick="{{h}}" u-i="3ffa2b55-1" bind:__l="__l" u-p="{{i||''}}"></up-icon><up-icon wx:if="{{j}}" class="data-v-3ffa2b55" bindclick="{{k}}" u-i="3ffa2b55-2" bind:__l="__l" u-p="{{l}}"></up-icon><up-icon wx:else class="data-v-3ffa2b55" bindclick="{{m}}" u-i="3ffa2b55-3" bind:__l="__l" u-p="{{n||''}}"></up-icon></view></view><view class="description-bar data-v-3ffa2b55"><view class="{{['data-v-3ffa2b55', 'description', p && 'expanded']}}"><rich-text class="data-v-3ffa2b55" nodes="{{o}}"></rich-text></view><button class="expand-button data-v-3ffa2b55" bindtap="{{r}}">{{q}}</button></view></view></view>
<view class="container data-v-3ffa2b55"><view class="video-box data-v-3ffa2b55"><video class="video data-v-3ffa2b55" ref="videoStatus" bindplay="{{a}}" src="{{b}}" controls></video><view class="info-bar data-v-3ffa2b55"><view class="title-and-stats data-v-3ffa2b55"><label class="title data-v-3ffa2b55">{{c}}</label><view class="stats data-v-3ffa2b55"><label class="date data-v-3ffa2b55">{{d}}</label></view></view><view class="action-buttons data-v-3ffa2b55"><up-icon wx:if="{{e}}" class="data-v-3ffa2b55" bindclick="{{f}}" u-i="3ffa2b55-0" bind:__l="__l" u-p="{{g}}"></up-icon><up-icon wx:else class="data-v-3ffa2b55" bindclick="{{h}}" u-i="3ffa2b55-1" bind:__l="__l" u-p="{{i||''}}"></up-icon><up-icon wx:if="{{j}}" class="data-v-3ffa2b55" bindclick="{{k}}" u-i="3ffa2b55-2" bind:__l="__l" u-p="{{l}}"></up-icon><up-icon wx:else class="data-v-3ffa2b55" bindclick="{{m}}" u-i="3ffa2b55-3" bind:__l="__l" u-p="{{n||''}}"></up-icon></view></view><view class="description-bar data-v-3ffa2b55"><view class="{{['data-v-3ffa2b55', 'description', p && 'expanded']}}"><rich-text class="data-v-3ffa2b55" nodes="{{o}}"></rich-text></view><view class="expand-button data-v-3ffa2b55" bindtap="{{r}}"><label class="expand-text data-v-3ffa2b55">{{q}}</label></view></view></view></view>

View File

@ -44,6 +44,7 @@
.container .video-box .video.data-v-3ffa2b55 {
width: 100%;
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
border-radius: 10px 10px 0 0;
}
.container .video-box .info-bar.data-v-3ffa2b55 {
display: flex;
@ -86,11 +87,11 @@
}
.container .video-box .description-bar .description.data-v-3ffa2b55 {
overflow: hidden;
max-height: 100px;
max-height: 0;
transition: max-height 0.3s ease-in-out;
}
.container .video-box .description-bar .description.expanded.data-v-3ffa2b55 {
max-height: none;
max-height: 200px;
}
.container .video-box .description-bar .description rich-text.data-v-3ffa2b55 {
display: block;
@ -100,15 +101,17 @@
}
.container .video-box .description-bar .expand-button.data-v-3ffa2b55 {
margin-top: 10px;
background: none;
border: none;
color: #ff0004;
cursor: pointer;
font-size: 14px;
padding: 0;
outline: none;
display: flex;
align-items: center;
transition: color 0.3s ease-in-out;
}
.container .video-box .description-bar .expand-button.data-v-3ffa2b55:hover {
color: #cc0003;
}
.container .video-box .description-bar .expand-button .expand-text.data-v-3ffa2b55 {
font-size: 14px;
margin-left: 5px;
}

View File

@ -3,7 +3,7 @@ const common_vendor = require("../../../../common/vendor.js");
const base64Avatar = "data:image/jpg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMraHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjREMEQwRkY0RjgwNDExRUE5OTY2RDgxODY3NkJFODMxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjREMEQwRkY1RjgwNDExRUE5OTY2RDgxODY3NkJFODMxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NEQwRDBGRjJGODA0MTFFQTk5NjZEODE4Njc2QkU4MzEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NEQwRDBGRjNGODA0MTFFQTk5NjZEODE4Njc2QkU4MzEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAGBAQEBQQGBQUGCQYFBgkLCAYGCAsMCgoLCgoMEAwMDAwMDBAMDg8QDw4MExMUFBMTHBsbGxwfHx8fHx8fHx8fAQcHBw0MDRgQEBgaFREVGh8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx//wAARCADIAMgDAREAAhEBAxEB/8QAcQABAQEAAwEBAAAAAAAAAAAAAAUEAQMGAgcBAQAAAAAAAAAAAAAAAAAAAAAQAAIBAwICBgkDBQAAAAAAAAABAhEDBCEFMVFBYXGREiKBscHRMkJSEyOh4XLxYjNDFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8A/fAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHbHFyZ/Dam+yLA+Z2L0Pjtyj2poD4AAAAAAAAAAAAAAAAAAAAAAAAKWFs9y6lcvvwQeqj8z9wFaziY1n/HbUX9XF97A7QAGXI23EvJ1goyfzR0YEfN269jeZ+a03pNe0DIAAAAAAAAAAAAAAAAAAAACvtO3RcVkXlWutuL9YFYAAAAAOJRjKLjJVi9GmB5/csH/mu1h/in8PU+QGMAAAAAAAAAAAAAAAAAAaMDG/6MmMH8C80+xAelSSVFolwQAAAAAAAHVlWI37ErUulaPk+hgeYnCUJuElSUXRrrQHAAAAAAAAAAAAAAAAABa2Oz4bM7r4zdF2ICmAAAAAAAAAg7zZ8GX41wuJP0rRgYAAAAAAAAAAAAAAAAAD0m2R8ODaXU33tsDSAAAAAAAAAlb9HyWZcnJd9PcBHAAAAAAAAAAAAAAAAAPS7e64Vn+KA0AAAAAAAAAJm+v8Ftf3ewCKAAAAAAAAAAAAAAAAAX9muqeGo9NttP06+0DcAAAAAAAAAjb7dTu2ra+VOT9P8AQCWAAAAAAAAAAAAAAAAAUNmyPt5Ltv4bui/kuAF0AAAAAAADiUlGLlJ0SVW+oDzOXfd/Ind6JPRdS0QHSAAAAAAAAAAAAAAAAAE2nVaNcGB6Lbs6OTao9LsF51z60BrAAAAAABJ3jOVHjW3r/sa9QEgAAAAAAAAAAAAAAAAAAAPu1duWriuW34ZR4MC9hbnZyEoy8l36XwfYBsAAADaSq9EuLAlZ+7xSdrGdW9Hc5dgEdtt1erfFgAAAAAAAAAAAAAAAAADVjbblX6NR8MH80tEBRs7HYivyzlN8lovaBPzduvY0m6eK10TXtAyAarO55lpJK54orolr+4GqO/Xaea1FvqbXvA+Z77kNeW3GPbV+4DJfzcm/pcm3H6Vou5AdAFLC2ed2Pjv1txa8sV8T6wOL+yZEKu1JXFy4MDBOE4ScZxcZLinoB8gAAAAAAAAAAAB242LeyJ+C3GvN9C7QLmJtePYpKS+5c+p8F2IDYAANJqj1T4oCfk7Nj3G5Wn9qXJax7gJ93Z82D8sVNc4v30A6Xg5i42Z+iLfqARwcyT0sz9MWvWBps7LlTf5Grce9/oBTxdtxseklHxT+uWr9AGoAB138ezfj4bsFJdD6V2MCPm7RdtJzs1uW1xXzL3gTgAAAAAAAAADRhYc8q74I6RWs5ckB6GxYtWLat21SK731sDsAAAAAAAAAAAAAAAASt021NO/YjrxuQXT1oCOAAAAAAABzGLlJRSq26JAelwsWONYjbXxcZvmwO8AAAAAAAAAAAAAAAAAAef3TEWPkVivx3NY9T6UBiAAAAAABo2+VmGXblddIJ8eivRUD0oAAAAAAAAAAAAAAAAAAAYt4tKeFKVNYNSXfRgefAAAAAAAAr7VuSSWPedKaW5v1MCsAAAAAAAAAAAAAAAAAAIe6bj96Ts2n+JPzSXzP3ATgAAAAAAAAFbbt1UUrOQ9FpC4/UwK6aaqtU+DAAAAAAAAAAAAAAA4lKMIuUmoxWrb4ARNx3R3q2rLpa4Sl0y/YCcAAAAAAAAAAANmFud7G8r89r6X0dgFvGzLGRGtuWvTF6NAdwAAAAAAAAAAAy5W442PVN+K59EePp5ARMvOv5MvO6QXCC4AZwAAAAAAAAAAAAAcxlKLUotprg1owN+PvORborq+7Hnwl3gUbO74VzRydt8pKn68ANcJwmqwkpLmnUDkAAAAfNy9atqtyagut0AxXt5xIV8Fbj6lRd7Am5G65V6qUvtwfyx94GMAAAAAAAAAAAAAAAAAAAOU2nVOj5gdsc3LiqRvTpyqwOxbnnrhdfpSfrQB7pnv/AGvuS9gHXPMy5/Fem1yq0v0A6W29XqwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf//Z";
const _sfc_main = {
name: "u-avatar",
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$5],
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$6],
data() {
return {
// 如果配置randomBgColor参数为true在图标或者文字的模式下会随机从中取出一个颜色值当做背景色

View File

@ -2,7 +2,7 @@
const common_vendor = require("../../../../common/vendor.js");
const _sfc_main = {
name: "u-button",
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.button, common_vendor.openType, common_vendor.props$10],
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.button, common_vendor.openType, common_vendor.props$11],
data() {
return {};
},

View File

@ -5,7 +5,7 @@ const _sfc_main = {
data() {
return {};
},
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$6],
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$7],
computed: {
titleTextStyle() {
return common_vendor.addStyle(this.titleStyle);

View File

@ -2,7 +2,7 @@
const common_vendor = require("../../../../common/vendor.js");
const _sfc_main = {
name: "u-grid-item",
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$1],
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$2],
data() {
return {
parentData: {

View File

@ -2,7 +2,7 @@
const common_vendor = require("../../../../common/vendor.js");
const _sfc_main = {
name: "u-grid",
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$2],
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$3],
data() {
return {
index: 0,

View File

@ -6,7 +6,7 @@ const _sfc_main = {
return {};
},
emits: ["click"],
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$14],
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$15],
computed: {
uClasses() {
let classes = [];

View File

@ -2,7 +2,7 @@
const common_vendor = require("../../../../common/vendor.js");
const _sfc_main = {
name: "u-input",
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$9],
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$10],
data() {
return {
// 清除操作

View File

@ -2,7 +2,7 @@
const common_vendor = require("../../../../common/vendor.js");
const _sfc_main = {
name: "u-line",
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$22],
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$23],
computed: {
lineStyle() {
const style = {};

View File

@ -2,7 +2,7 @@
const common_vendor = require("../../../../common/vendor.js");
const _sfc_main = {
name: "u-link",
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$17],
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$18],
computed: {
linkStyle() {
const style = {

View File

@ -2,7 +2,7 @@
const common_vendor = require("../../../../common/vendor.js");
const _sfc_main = {
name: "u-list-item",
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$7],
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$8],
data() {
return {
// 节点信息

View File

@ -2,7 +2,7 @@
const common_vendor = require("../../../../common/vendor.js");
const _sfc_main = {
name: "u-list",
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$8],
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$9],
watch: {
scrollIntoView(n) {
this.scrollIntoViewById(n);

View File

@ -2,7 +2,7 @@
const common_vendor = require("../../../../common/vendor.js");
const _sfc_main = {
name: "u-loading-icon",
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$15],
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$16],
data() {
return {
// Array.form可以通过一个伪数组对象创建指定长度的数组

View File

@ -1,99 +0,0 @@
"use strict";
const common_vendor = require("../../../../common/vendor.js");
const _sfc_main = {
name: "u-loadmore",
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$18],
data() {
return {
// 粗点
dotText: "●"
};
},
computed: {
// 加载的文字显示的样式
loadTextStyle() {
return {
color: this.color,
fontSize: common_vendor.addUnit(this.fontSize),
lineHeight: common_vendor.addUnit(this.fontSize),
backgroundColor: this.bgColor
};
},
// 显示的提示文字
showText() {
let text = "";
if (this.status == "loadmore")
text = this.loadmoreText;
else if (this.status == "loading")
text = this.loadingText;
else if (this.status == "nomore" && this.isDot)
text = this.dotText;
else
text = this.nomoreText;
return text;
}
},
emits: ["loadmore"],
methods: {
addStyle: common_vendor.addStyle,
addUnit: common_vendor.addUnit,
loadMore() {
if (this.status == "loadmore")
this.$emit("loadmore");
}
}
};
if (!Array) {
const _easycom_u_line2 = common_vendor.resolveComponent("u-line");
const _easycom_u_loading_icon2 = common_vendor.resolveComponent("u-loading-icon");
(_easycom_u_line2 + _easycom_u_loading_icon2)();
}
const _easycom_u_line = () => "../u-line/u-line.js";
const _easycom_u_loading_icon = () => "../u-loading-icon/u-loading-icon.js";
if (!Math) {
(_easycom_u_line + _easycom_u_loading_icon)();
}
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return common_vendor.e({
a: _ctx.line
}, _ctx.line ? {
b: common_vendor.p({
length: "140rpx",
color: _ctx.lineColor,
hairline: false,
dashed: _ctx.dashed
})
} : {}, {
c: _ctx.status === "loading" && _ctx.icon
}, _ctx.status === "loading" && _ctx.icon ? {
d: common_vendor.p({
color: _ctx.iconColor,
size: _ctx.iconSize,
mode: _ctx.loadingIcon
})
} : {}, {
e: common_vendor.t($options.showText),
f: common_vendor.s($options.loadTextStyle),
g: common_vendor.n(_ctx.status == "nomore" && _ctx.isDot == true ? "u-loadmore__content__dot-text" : "u-loadmore__content__text"),
h: common_vendor.o((...args) => $options.loadMore && $options.loadMore(...args)),
i: common_vendor.n(_ctx.status == "loadmore" || _ctx.status == "nomore" ? "u-more" : ""),
j: _ctx.line
}, _ctx.line ? {
k: common_vendor.p({
length: "140rpx",
color: _ctx.lineColor,
hairline: false,
dashed: _ctx.dashed
})
} : {}, {
l: common_vendor.s($options.addStyle(_ctx.customStyle)),
m: common_vendor.s({
backgroundColor: _ctx.bgColor,
marginBottom: $options.addUnit(_ctx.marginBottom),
marginTop: $options.addUnit(_ctx.marginTop),
height: $options.addUnit(_ctx.height)
})
});
}
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-5817e4cf"], ["__file", "D:/uniapp1/gree_leran/node_modules/uview-plus/components/u-loadmore/u-loadmore.vue"]]);
wx.createComponent(Component);

View File

@ -1,7 +0,0 @@
{
"component": true,
"usingComponents": {
"u-line": "../u-line/u-line",
"u-loading-icon": "../u-loading-icon/u-loading-icon"
}
}

View File

@ -1 +0,0 @@
<view class="u-loadmore data-v-5817e4cf" style="{{l + ';' + m}}"><u-line wx:if="{{a}}" class="data-v-5817e4cf" u-i="5817e4cf-0" bind:__l="__l" u-p="{{b}}"></u-line><view class="{{[i, 'u-loadmore__content', 'data-v-5817e4cf']}}"><view wx:if="{{c}}" class="u-loadmore__content__icon-wrap data-v-5817e4cf"><u-loading-icon wx:if="{{d}}" class="data-v-5817e4cf" u-i="5817e4cf-1" bind:__l="__l" u-p="{{d}}"></u-loading-icon></view><text style="{{f}}" class="{{['u-line-1', 'data-v-5817e4cf', g]}}" bindtap="{{h}}">{{e}}</text></view><u-line wx:if="{{j}}" class="data-v-5817e4cf" u-i="5817e4cf-2" bind:__l="__l" u-p="{{k}}"></u-line></view>

View File

@ -1,66 +0,0 @@
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场https://ext.dcloud.net.cn上很多三方插件均使用了这些样式变量
* 如果你是插件开发者建议你使用scss预处理并在插件代码中直接使用这些变量无需 import 这个文件方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者插件使用者你可以通过修改这些变量来定制自己的插件主题实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
/* 文字基本颜色 */
/* 背景颜色 */
/* 边框颜色 */
/* 尺寸变量 */
/* 文字尺寸 */
/* 图片尺寸 */
/* Border Radius */
/* 水平间距 */
/* 垂直间距 */
/* 透明度 */
/* 文章场景相关 */
.u-empty.data-v-5817e4cf,
.u-empty__wrap.data-v-5817e4cf,
.u-tabs.data-v-5817e4cf,
.u-tabs__wrapper.data-v-5817e4cf,
.u-tabs__wrapper__scroll-view-wrapper.data-v-5817e4cf,
.u-tabs__wrapper__scroll-view.data-v-5817e4cf,
.u-tabs__wrapper__nav.data-v-5817e4cf,
.u-tabs__wrapper__nav__line.data-v-5817e4cf {
display: flex;
flex-direction: column;
flex-shrink: 0;
flex-grow: 0;
flex-basis: auto;
align-items: stretch;
align-content: flex-start;
}
.u-loadmore.data-v-5817e4cf {
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
flex: 1;
}
.u-loadmore__content.data-v-5817e4cf {
margin: 0 15px;
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
}
.u-loadmore__content__icon-wrap.data-v-5817e4cf {
margin-right: 8px;
}
.u-loadmore__content__text.data-v-5817e4cf {
font-size: 14px;
color: #606266;
}
.u-loadmore__content__dot-text.data-v-5817e4cf {
font-size: 15px;
color: #909193;
}

View File

@ -2,7 +2,7 @@
const common_vendor = require("../../../../common/vendor.js");
const _sfc_main = {
name: "u-notify",
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$12],
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$13],
data() {
return {
// 是否展示组件

View File

@ -2,7 +2,7 @@
const common_vendor = require("../../../../common/vendor.js");
const _sfc_main = {
name: "u-overlay",
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$18],
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$19],
computed: {
overlayStyle() {
const style = {

View File

@ -2,7 +2,7 @@
const common_vendor = require("../../../../common/vendor.js");
const _sfc_main = {
name: "u-popup",
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$4],
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$5],
data() {
return {
overlayDuration: this.duration + 50

View File

@ -2,7 +2,7 @@
const common_vendor = require("../../../../common/vendor.js");
const _sfc_main = {
name: "u-safe-bottom",
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$20],
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$21],
data() {
return {
safeAreaBottomHeight: 0,

View File

@ -0,0 +1,161 @@
"use strict";
const common_vendor = require("../../../../common/vendor.js");
const _sfc_main = {
name: "u-search",
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props],
data() {
return {
keyword: "",
showClear: false,
// 是否显示右边的清除图标
show: false,
// 标记input当前状态是否处于聚焦中如果是才会显示右侧的清除控件
focused: this.focus
// 绑定输入框的值
// inputValue: this.value
};
},
watch: {
keyword(nVal) {
this.$emit("update:modelValue", nVal);
this.$emit("change", nVal);
},
modelValue: {
immediate: true,
handler(nVal) {
this.keyword = nVal;
}
}
},
computed: {
showActionBtn() {
return !this.animation && this.showAction;
}
},
emits: ["clear", "search", "custom", "focus", "blur", "click", "clickIcon", "update:modelValue", "change"],
methods: {
addStyle: common_vendor.addStyle,
addUnit: common_vendor.addUnit,
// 目前HX2.6.9 v-model双向绑定无效故监听input事件获取输入框内容的变化
inputChange(e) {
this.keyword = e.detail.value;
},
// 清空输入
// 也可以作为用户通过this.$refs形式调用清空输入框内容
clear() {
this.keyword = "";
this.$nextTick(() => {
this.$emit("clear");
});
},
// 确定搜索
search(e) {
this.$emit("search", e.detail.value);
try {
common_vendor.index.hideKeyboard();
} catch (e2) {
}
},
// 点击右边自定义按钮的事件
custom() {
this.$emit("custom", this.keyword);
try {
common_vendor.index.hideKeyboard();
} catch (e) {
}
},
// 获取焦点
getFocus() {
this.focused = true;
if (this.animation && this.showAction)
this.show = true;
this.$emit("focus", this.keyword);
},
// 失去焦点
blur() {
setTimeout(() => {
this.focused = false;
}, 100);
this.show = false;
this.$emit("blur", this.keyword);
},
// 点击搜索框只有disabled=true时才发出事件因为禁止了输入意味着是想跳转真正的搜索页
clickHandler() {
if (this.disabled)
this.$emit("click");
},
// 点击左边图标
clickIcon(e) {
this.$emit("clickIcon", this.keyword);
try {
common_vendor.index.hideKeyboard();
} catch (e2) {
}
}
}
};
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.$slots.label || _ctx.label !== null
}, _ctx.$slots.label || _ctx.label !== null ? {
b: common_vendor.t(_ctx.label)
} : {}, {
c: common_vendor.o($options.clickIcon),
d: common_vendor.p({
size: _ctx.searchIconSize,
name: _ctx.searchIcon,
color: _ctx.searchIconColor ? _ctx.searchIconColor : _ctx.color
}),
e: common_vendor.o((...args) => $options.blur && $options.blur(...args)),
f: $data.keyword,
g: common_vendor.o((...args) => $options.search && $options.search(...args)),
h: common_vendor.o((...args) => $options.inputChange && $options.inputChange(...args)),
i: _ctx.disabled,
j: common_vendor.o((...args) => $options.getFocus && $options.getFocus(...args)),
k: _ctx.focus,
l: _ctx.maxlength,
m: _ctx.adjustPosition,
n: _ctx.autoBlur,
o: _ctx.placeholder,
p: `color: ${_ctx.placeholderColor}`,
q: common_vendor.s({
textAlign: _ctx.inputAlign,
color: _ctx.color,
backgroundColor: _ctx.bgColor,
height: $options.addUnit(_ctx.height)
}),
r: common_vendor.s(_ctx.inputStyle),
s: $data.keyword && _ctx.clearabled && $data.focused
}, $data.keyword && _ctx.clearabled && $data.focused ? {
t: common_vendor.p({
name: "close",
size: "11",
color: "#ffffff",
customStyle: "line-height: 12px"
}),
v: common_vendor.o((...args) => $options.clear && $options.clear(...args))
} : {}, {
w: _ctx.bgColor,
x: _ctx.shape == "round" ? "100px" : "4px",
y: _ctx.borderColor,
z: common_vendor.t(_ctx.actionText),
A: common_vendor.s(_ctx.actionStyle),
B: common_vendor.n(($options.showActionBtn || $data.show) && "u-search__action--active"),
C: common_vendor.o((...args) => $options.custom && $options.custom(...args)),
D: common_vendor.o((...args) => $options.clickHandler && $options.clickHandler(...args)),
E: common_vendor.s({
margin: _ctx.margin
}),
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", "D:/uniapp1/gree_leran/node_modules/uview-plus/components/u-search/u-search.vue"]]);
wx.createComponent(Component);

View File

@ -0,0 +1,6 @@
{
"component": true,
"usingComponents": {
"u-icon": "../u-icon/u-icon"
}
}

View File

@ -0,0 +1 @@
<view class="u-search data-v-ed789780" bindtap="{{D}}" style="{{E + ';' + F}}"><view class="u-search__content data-v-ed789780" style="{{'background-color:' + w + ';' + ('border-radius:' + x) + ';' + ('border-color:' + y)}}"><block wx:if="{{a}}"><block wx:if="{{$slots.label}}"><slot name="label"></slot></block><block wx:else><text class="u-search__content__label data-v-ed789780">{{b}}</text></block></block><view class="u-search__content__icon data-v-ed789780"><u-icon wx:if="{{d}}" class="data-v-ed789780" bindtap="{{c}}" u-i="ed789780-0" bind:__l="__l" u-p="{{d}}"></u-icon></view><input confirm-type="search" bindblur="{{e}}" value="{{f}}" bindconfirm="{{g}}" bindinput="{{h}}" disabled="{{i}}" bindfocus="{{j}}" focus="{{k}}" maxlength="{{l}}" adjust-position="{{m}}" auto-blur="{{n}}" placeholder-class="u-search__content__input--placeholder" placeholder="{{o}}" placeholder-style="{{p}}" class="u-search__content__input data-v-ed789780" type="text" style="{{q + ';' + r}}"/><view wx:if="{{s}}" class="u-search__content__icon u-search__content__close data-v-ed789780" bindtap="{{v}}"><u-icon wx:if="{{t}}" class="data-v-ed789780" u-i="ed789780-1" bind:__l="__l" u-p="{{t}}"></u-icon></view></view><text style="{{A}}" class="{{['u-search__action', 'data-v-ed789780', B]}}" catchtap="{{C}}">{{z}}</text></view>

View File

@ -0,0 +1,107 @@
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场https://ext.dcloud.net.cn上很多三方插件均使用了这些样式变量
* 如果你是插件开发者建议你使用scss预处理并在插件代码中直接使用这些变量无需 import 这个文件方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者插件使用者你可以通过修改这些变量来定制自己的插件主题实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
/* 文字基本颜色 */
/* 背景颜色 */
/* 边框颜色 */
/* 尺寸变量 */
/* 文字尺寸 */
/* 图片尺寸 */
/* Border Radius */
/* 水平间距 */
/* 垂直间距 */
/* 透明度 */
/* 文章场景相关 */
.u-empty.data-v-ed789780,
.u-empty__wrap.data-v-ed789780,
.u-tabs.data-v-ed789780,
.u-tabs__wrapper.data-v-ed789780,
.u-tabs__wrapper__scroll-view-wrapper.data-v-ed789780,
.u-tabs__wrapper__scroll-view.data-v-ed789780,
.u-tabs__wrapper__nav.data-v-ed789780,
.u-tabs__wrapper__nav__line.data-v-ed789780 {
display: flex;
flex-direction: column;
flex-shrink: 0;
flex-grow: 0;
flex-basis: auto;
align-items: stretch;
align-content: flex-start;
}
.u-search.data-v-ed789780 {
display: flex;
flex-direction: row;
align-items: center;
flex: 1;
}
.u-search__content.data-v-ed789780 {
display: flex;
flex-direction: row;
align-items: center;
padding: 0 10px;
flex: 1;
justify-content: space-between;
border-width: 1px;
border-color: transparent;
border-style: solid;
overflow: hidden;
}
.u-search__content__icon.data-v-ed789780 {
display: flex;
flex-direction: row;
align-items: center;
}
.u-search__content__label.data-v-ed789780 {
color: #303133;
font-size: 14px;
margin: 0 4px;
}
.u-search__content__close.data-v-ed789780 {
width: 20px;
height: 20px;
border-top-left-radius: 100px;
border-top-right-radius: 100px;
border-bottom-left-radius: 100px;
border-bottom-right-radius: 100px;
background-color: #C6C7CB;
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
transform: scale(0.82);
}
.u-search__content__input.data-v-ed789780 {
flex: 1;
font-size: 14px;
line-height: 1;
margin: 0 5px;
color: #303133;
}
.u-search__content__input--placeholder.data-v-ed789780 {
color: #909193;
}
.u-search__action.data-v-ed789780 {
font-size: 14px;
color: #303133;
width: 0;
overflow: hidden;
transition-property: width;
transition-duration: 0.3s;
white-space: nowrap;
text-align: center;
}
.u-search__action--active.data-v-ed789780 {
width: 40px;
margin-left: 5px;
}

View File

@ -2,7 +2,7 @@
const common_vendor = require("../../../../common/vendor.js");
const _sfc_main = {
name: "u-status-bar",
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$19],
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$20],
data() {
return {};
},

View File

@ -2,7 +2,7 @@
const common_vendor = require("../../../../common/vendor.js");
const _sfc_main = {
name: "u-subsection",
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$13],
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$14],
data() {
return {
// 组件尺寸

View File

@ -2,7 +2,7 @@
const common_vendor = require("../../../../common/vendor.js");
const _sfc_main = {
name: "u-swiper-indicator",
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$16],
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$17],
data() {
return {
lineWidth: 22

View File

@ -2,7 +2,7 @@
const common_vendor = require("../../../../common/vendor.js");
const _sfc_main = {
name: "u-swiper",
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props],
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$1],
data() {
return {
currentIndex: 0

View File

@ -2,7 +2,7 @@
const common_vendor = require("../../../../common/vendor.js");
const _sfc_main = {
name: "u--text",
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.value, common_vendor.button, common_vendor.openType, common_vendor.props$3],
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.value, common_vendor.button, common_vendor.openType, common_vendor.props$4],
emits: ["click"],
computed: {
valueStyle() {

View File

@ -33,7 +33,7 @@ const _sfc_main = {
}
},
// 将mixin挂在到组件中实际上为一个vue格式对象。
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.transition, common_vendor.props$21],
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.transition, common_vendor.props$22],
watch: {
show: {
handler(newVal) {

View File

@ -2,7 +2,7 @@
const common_vendor = require("../../../../common/vendor.js");
const _sfc_main = {
name: "u-upload",
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.mixinUp, common_vendor.props$11],
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.mixinUp, common_vendor.props$12],
data() {
return {
lists: [],

View File

@ -1,14 +1,16 @@
"use strict";
const common_vendor = require("../../common/vendor.js");
if (!Array) {
const _easycom_up_search2 = common_vendor.resolveComponent("up-search");
const _easycom_up_swiper2 = common_vendor.resolveComponent("up-swiper");
const _easycom_up_grid_item2 = common_vendor.resolveComponent("up-grid-item");
const _easycom_up_grid2 = common_vendor.resolveComponent("up-grid");
const _easycom_up_text2 = common_vendor.resolveComponent("up-text");
const _easycom_CaseList2 = common_vendor.resolveComponent("CaseList");
const _easycom_MenTab2 = common_vendor.resolveComponent("MenTab");
(_easycom_up_swiper2 + _easycom_up_grid_item2 + _easycom_up_grid2 + _easycom_up_text2 + _easycom_CaseList2 + _easycom_MenTab2)();
(_easycom_up_search2 + _easycom_up_swiper2 + _easycom_up_grid_item2 + _easycom_up_grid2 + _easycom_up_text2 + _easycom_CaseList2 + _easycom_MenTab2)();
}
const _easycom_up_search = () => "../../node-modules/uview-plus/components/u-search/u-search.js";
const _easycom_up_swiper = () => "../../node-modules/uview-plus/components/u-swiper/u-swiper.js";
const _easycom_up_grid_item = () => "../../node-modules/uview-plus/components/u-grid-item/u-grid-item.js";
const _easycom_up_grid = () => "../../node-modules/uview-plus/components/u-grid/u-grid.js";
@ -16,7 +18,7 @@ const _easycom_up_text = () => "../../node-modules/uview-plus/components/u-text/
const _easycom_CaseList = () => "../../components/CaseList/CaseList.js";
const _easycom_MenTab = () => "../../components/MenTab/MenTab.js";
if (!Math) {
(_easycom_up_swiper + _easycom_up_grid_item + _easycom_up_grid + _easycom_up_text + _easycom_CaseList + _easycom_MenTab)();
(_easycom_up_search + _easycom_up_swiper + _easycom_up_grid_item + _easycom_up_grid + _easycom_up_text + _easycom_CaseList + _easycom_MenTab)();
}
const _sfc_main = {
__name: "index",
@ -70,30 +72,37 @@ const _sfc_main = {
}
return (_ctx, _cache) => {
return {
a: common_vendor.p({
a: common_vendor.o(($event) => _ctx.keyword = $event),
b: common_vendor.p({
placeholder: "日照香炉生紫烟",
clearabled: true,
animation: "false",
modelValue: _ctx.keyword
}),
c: common_vendor.p({
height: "150",
list: swipe
}),
b: common_vendor.f(baseList.value, (baseListItem, baseListIndex, i0) => {
d: common_vendor.f(baseList.value, (baseListItem, baseListIndex, i0) => {
return {
a: baseListItem.src,
b: common_vendor.t(baseListItem.title),
c: baseListIndex,
d: common_vendor.o(($event) => NavicatToBaseItems(baseListItem), baseListIndex),
e: "adbc9592-2-" + i0 + ",adbc9592-1"
e: "adbc9592-3-" + i0 + ",adbc9592-2"
};
}),
c: common_vendor.p({
e: common_vendor.p({
border: false,
col: "4"
}),
d: common_vendor.p({
f: common_vendor.p({
margin: "1em",
type: "primary",
text: "新闻"
}),
e: common_vendor.o(toTop),
f: common_vendor.sr(caseList, "adbc9592-4", {
g: common_vendor.o(toTop),
h: common_vendor.sr(caseList, "adbc9592-5", {
"k": "caseList"
})
};

View File

@ -1,6 +1,7 @@
{
"navigationStyle": "custom",
"usingComponents": {
"up-search": "../../node-modules/uview-plus/components/u-search/u-search",
"up-swiper": "../../node-modules/uview-plus/components/u-swiper/u-swiper",
"up-grid-item": "../../node-modules/uview-plus/components/u-grid-item/u-grid-item",
"up-grid": "../../node-modules/uview-plus/components/u-grid/u-grid",

View File

@ -1 +1 @@
<view class="content"><view class="nav"><view class="tit-box"> 学习平台 </view><view class="search-box" style="width:80%;margin:0 auto"></view></view><view class="hand"><up-swiper wx:if="{{a}}" u-i="adbc9592-0" bind:__l="__l" u-p="{{a}}"></up-swiper></view><view class="seton"><up-grid wx:if="{{c}}" u-s="{{['d']}}" u-i="adbc9592-1" bind:__l="__l" u-p="{{c}}"><up-grid-item wx:for="{{b}}" 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"><view class="newList-t" bindtap="{{e}}"><up-text wx:if="{{d}}" u-i="adbc9592-3" bind:__l="__l" u-p="{{d}}"></up-text></view><case-list class="r" style="height:100vh" u-r="caseList" u-i="adbc9592-4" bind:__l="__l"></case-list></view><men-tab u-i="adbc9592-5" bind:__l="__l"></men-tab></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="adbc9592-0" bind:__l="__l" bindupdateModelValue="{{a}}" u-p="{{b}}"></up-search></view></view><view class="hand"><up-swiper wx:if="{{c}}" u-i="adbc9592-1" bind:__l="__l" u-p="{{c}}"></up-swiper></view><view class="seton"><up-grid wx:if="{{e}}" u-s="{{['d']}}" u-i="adbc9592-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"><view class="newList-t" bindtap="{{g}}"><up-text wx:if="{{f}}" u-i="adbc9592-4" bind:__l="__l" u-p="{{f}}"></up-text></view><case-list class="r" u-r="caseList" u-i="adbc9592-5" bind:__l="__l"></case-list></view><men-tab u-i="adbc9592-6" bind:__l="__l"></men-tab></view>

View File

@ -46,16 +46,14 @@
top: 25rpx;
}
.newlist {
display: flex;
flex-flow: column;
overflow-y: hidden;
}
.newList-t {
position: -webkit-sticky;
position: sticky;
top: 60rpx;
height: 60rpx;
height: 70rpx;
padding: 10rpx;
background-color: #fff;
z-index: 2;
margin: 20rpx auto;
}
.content {
height: 100vh;

View File

@ -27,11 +27,8 @@ const _sfc_main = {
__name: "newsInfo",
setup(__props) {
const id = common_vendor.ref(null);
common_vendor.ref("");
common_vendor.ref("path/to/avatar");
const inputVisible = common_vendor.ref(false);
const inputContent = common_vendor.ref("");
common_vendor.ref("40px");
const info = common_vendor.reactive({
caseId: null,
title: null,
@ -51,7 +48,6 @@ const _sfc_main = {
const getInfo = async (id2) => {
let res = await apis_cast.getCastInfo(id2);
if (res.code == 200) {
console.log("详细数据", res.data);
return res;
}
return null;
@ -76,12 +72,9 @@ const _sfc_main = {
};
const showInputBox = () => {
inputVisible.value = true;
common_vendor.index.nextTick(() => {
});
};
const submitComment = async () => {
console.log("提交评论", currParentCommentId.value, currReplyUseId.value);
let res = await apis_comments.addComments({
await apis_comments.addComments({
relatedPostId: info.caseId,
commentContent: inputContent.value,
parentCommentId: currParentCommentId.value,
@ -89,7 +82,6 @@ const _sfc_main = {
});
currParentCommentId.value = null;
currReplyUseId.value = null;
console.log("保存评论", res);
inputContent.value = "";
getData(id.value);
};
@ -99,7 +91,6 @@ const _sfc_main = {
let list = await apis_comments.getCommentsByRelatedPostId(id.value);
let image = await apis_user.getImageById(com.userId);
list = list.data;
console.log("接口", com, list);
commentList.value = list;
info.iamge = image.msg;
info.caseId = com.caseId;
@ -114,30 +105,15 @@ const _sfc_main = {
};
const clickLike = () => {
info.isLike = !info.isLike;
let bo = "0";
if (info.isLike) {
bo = "1";
}
apis_likes.addLike({
contentType: 0,
contentId: info.caseId,
extField1: bo
});
let bo = info.isLike ? "1" : "0";
apis_likes.addLike({ contentType: 0, contentId: info.caseId, extField1: bo });
};
const clickCollection = () => {
info.isCollection = !info.isCollection;
let bo = "0";
if (info.isCollection) {
bo = "1";
}
apis_collections.addCollections({
contentType: 0,
contentId: info.caseId,
extField1: bo
});
let bo = info.isCollection ? "1" : "0";
apis_collections.addCollections({ contentType: 0, contentId: info.caseId, extField1: bo });
};
common_vendor.onLoad((e) => {
console.log("进入", e);
id.value = e.id;
getData();
});
@ -148,12 +124,12 @@ const _sfc_main = {
size: "70"
}),
b: common_vendor.p({
text: "作者名",
text: info.name,
size: "33rpx",
bold: true
}),
c: common_vendor.p({
text: "发布于-" + info.createTime
text: "发布于 " + info.createTime
}),
d: common_vendor.p({
text: info.title,
@ -173,7 +149,7 @@ const _sfc_main = {
return {
a: common_vendor.o(addComment, item.id),
b: item.id,
c: "5ecea49e-6-" + i0,
c: "7d230679-6-" + i0,
d: common_vendor.p({
data: item
})
@ -216,10 +192,10 @@ const _sfc_main = {
size: "28"
})
}, {
w: common_vendor.o(($event) => addComment())
w: common_vendor.o(addComment)
});
};
}
};
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__file", "D:/uniapp1/gree_leran/pages/newsInfo/newsInfo.vue"]]);
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-7d230679"], ["__file", "D:/uniapp1/gree_leran/pages/newsInfo/newsInfo.vue"]]);
wx.createPage(MiniProgramPage);

View File

@ -1 +1 @@
<view class="case-info-box"><view class="case-info"><view class="user-info"><up-avatar wx:if="{{a}}" u-i="5ecea49e-0" bind:__l="__l" u-p="{{a}}"></up-avatar><view class="user-info-box"><view class="user-name"><up-text wx:if="{{b}}" u-i="5ecea49e-1" bind:__l="__l" u-p="{{b}}"></up-text></view><view class="user-data"><up-text wx:if="{{c}}" u-i="5ecea49e-2" bind:__l="__l" u-p="{{c}}"></up-text></view></view></view><view class="title-info"><view class="title-info-main"><up-text wx:if="{{d}}" u-i="5ecea49e-3" bind:__l="__l" u-p="{{d}}"></up-text></view><view class="title-info-fu"><up-text wx:if="{{e}}" u-i="5ecea49e-4" bind:__l="__l" u-p="{{e}}"></up-text></view></view><view class="body-info"><up-text wx:if="{{f}}" u-i="5ecea49e-5" bind:__l="__l" u-p="{{f}}"></up-text><image src="{{g}}" alt=""/></view></view><view class="comment-info"><view class="comment-titls"> 评论留言 </view><view class="comment-titls-list"><comments-box wx:for="{{h}}" wx:for-item="item" wx:key="b" bindaddComment="{{item.a}}" u-i="{{item.c}}" bind:__l="__l" u-p="{{item.d}}"></comments-box></view></view><input-box wx:if="{{i}}" bindsubmit="{{j}}" bindblurCom="{{k}}" u-i="5ecea49e-7" bind:__l="__l"></input-box><view class="input-di"><view class="input-di-ico" style="width:30vw"><up-icon wx:if="{{l}}" bindclick="{{m}}" u-i="5ecea49e-8" bind:__l="__l" u-p="{{n}}"></up-icon><up-icon wx:else bindclick="{{o}}" u-i="5ecea49e-9" bind:__l="__l" u-p="{{p||''}}"></up-icon><up-icon wx:if="{{q}}" bindclick="{{r}}" u-i="5ecea49e-10" bind:__l="__l" u-p="{{s}}"></up-icon><up-icon wx:else bindclick="{{t}}" u-i="5ecea49e-11" bind:__l="__l" u-p="{{v||''}}"></up-icon></view><view class="input-di-button" bindtap="{{w}}">评论</view></view><view class="di"></view></view>
<view class="case-info-box data-v-7d230679"><view class="case-info data-v-7d230679"><view class="user-info data-v-7d230679"><up-avatar wx:if="{{a}}" class="data-v-7d230679" u-i="7d230679-0" bind:__l="__l" u-p="{{a}}"></up-avatar><view class="user-info-box data-v-7d230679"><view class="user-name data-v-7d230679"><up-text wx:if="{{b}}" class="data-v-7d230679" u-i="7d230679-1" bind:__l="__l" u-p="{{b}}"></up-text></view><view class="user-data data-v-7d230679"><up-text wx:if="{{c}}" class="data-v-7d230679" u-i="7d230679-2" bind:__l="__l" u-p="{{c}}"></up-text></view></view></view><view class="title-info data-v-7d230679"><view class="title-info-main data-v-7d230679"><up-text wx:if="{{d}}" class="data-v-7d230679" u-i="7d230679-3" bind:__l="__l" u-p="{{d}}"></up-text></view><view class="title-info-fu data-v-7d230679"><up-text wx:if="{{e}}" class="data-v-7d230679" u-i="7d230679-4" bind:__l="__l" u-p="{{e}}"></up-text></view></view><view class="body-info data-v-7d230679"><up-text wx:if="{{f}}" class="data-v-7d230679" u-i="7d230679-5" bind:__l="__l" u-p="{{f}}"></up-text><image src="{{g}}" alt="Image" class="info-image data-v-7d230679"/></view></view><view class="comment-info data-v-7d230679"><view class="comment-title data-v-7d230679">评论留言</view><view class="comment-list data-v-7d230679"><comments-box wx:for="{{h}}" wx:for-item="item" wx:key="b" class="data-v-7d230679" bindaddComment="{{item.a}}" u-i="{{item.c}}" bind:__l="__l" u-p="{{item.d}}"/></view></view><input-box wx:if="{{i}}" class="data-v-7d230679" bindsubmit="{{j}}" bindblurCom="{{k}}" u-i="7d230679-7" bind:__l="__l"></input-box><view class="input-di data-v-7d230679"><view class="input-di-ico data-v-7d230679"><up-icon wx:if="{{l}}" class="data-v-7d230679" bindclick="{{m}}" u-i="7d230679-8" bind:__l="__l" u-p="{{n}}"></up-icon><up-icon wx:else class="data-v-7d230679" bindclick="{{o}}" u-i="7d230679-9" bind:__l="__l" u-p="{{p||''}}"></up-icon><up-icon wx:if="{{q}}" class="data-v-7d230679" bindclick="{{r}}" u-i="7d230679-10" bind:__l="__l" u-p="{{s}}"></up-icon><up-icon wx:else class="data-v-7d230679" bindclick="{{t}}" u-i="7d230679-11" bind:__l="__l" u-p="{{v||''}}"></up-icon></view><view class="input-di-button data-v-7d230679" bindtap="{{w}}">评论</view></view><view class="di data-v-7d230679"></view></view>

View File

@ -23,87 +23,98 @@
/* 垂直间距 */
/* 透明度 */
/* 文章场景相关 */
.case-info {
width: 97%;
.case-info-box.data-v-7d230679 {
padding: 20rpx;
min-height: 90vh;
background-color: #F5F5F5;
}
.case-info.data-v-7d230679 {
width: 100%;
box-sizing: border-box;
padding: 20rpx;
margin: 10rpx auto;
border-radius: 10rpx;
background-color: #fff;
border-radius: 20rpx;
background-color: #ffffff;
box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.1);
}
.case-info .user-info {
.user-info.data-v-7d230679 {
display: flex;
align-items: end;
align-items: center;
}
.case-info .user-info .user-data {
margin-top: 40rpx;
height: 30%;
.user-info .user-info-box.data-v-7d230679 {
margin-left: 20rpx;
}
.case-info .user-info .user-name {
margin-left: 20rpx;
display: flex;
flex-flow: column;
.user-info .user-info-box .user-name.data-v-7d230679 {
margin-bottom: 5rpx;
}
.case-info .title-info {
.user-info .user-info-box .user-data.data-v-7d230679 {
font-size: 30rpx;
color: #888888;
}
.title-info.data-v-7d230679 {
margin-top: 20rpx;
}
.case-info .body-info {
margin-top: 40rpx;
.title-info .title-info-main.data-v-7d230679 {
margin-bottom: 10rpx;
}
.comment-titls {
.title-info .title-info-fu.data-v-7d230679 {
color: #8f8f8f;
font-size: 35rpx;
}
.body-info.data-v-7d230679 {
margin-top: 20rpx;
}
.body-info .info-image.data-v-7d230679 {
width: 100%;
border-radius: 10rpx;
margin-top: 10rpx;
}
.comment-info.data-v-7d230679 {
margin-top: 30rpx;
}
.comment-info .comment-title.data-v-7d230679 {
font-size: 37rpx;
height: 50rpx;
display: flex;
justify-content: left;
align-items: center;
width: 95%;
margin: 20rpx auto;
background-color: #A8E6CF;
font-weight: bold;
color: #333333;
margin-bottom: 10rpx;
}
.input-di {
.comment-info .comment-list.data-v-7d230679 {
background-color: #ffffff;
border-radius: 10rpx;
padding: 10rpx;
box-shadow: 0 1rpx 6rpx rgba(0, 0, 0, 0.1);
}
.input-di.data-v-7d230679 {
display: flex;
position: fixed;
justify-content: space-between;
align-items: center;
bottom: 0;
left: 0;
height: 10vh;
width: 100%;
background-color: #A8E6CF;
border-radius: 20rpx 20rpx 10rpx 10rpx;
}
.di {
.di.data-v-7d230679 {
height: 10vh;
width: 100%;
}
.input-di-ico {
.input-di-ico.data-v-7d230679 {
display: flex;
justify-content: center;
align-items: center;
width: 30%;
}
.input-di-button {
.input-di-button.data-v-7d230679 {
display: flex;
justify-content: center;
align-items: center;
height: 50%;
width: 30%;
margin-right: 20rpx;
background-color: #000;
color: #fff;
border-radius: 40rpx;
}
.album {
display: flex;
flex-direction: row;
align-items: flex-start;
}
.album__avatar {
background-color: #f3f4f6;
padding: 5px;
border-radius: 3px;
}
.album__content {
margin-left: 10px;
flex: 1;
margin: auto;
margin-right: 60rpx;
}

View File

@ -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": true
"compileHotReLoad": true
}
}