提交修改调整

This commit is contained in:
daihh
2022-11-16 15:03:50 +08:00
14 changed files with 151 additions and 66 deletions

View File

@@ -28,6 +28,9 @@ send 姓名
const pagelist=function(query){
return ajax.post('/xboe/m/comment/tome/page',query);
}
const mobilepage=function(query){
return ajax.post('/xboe/m/comment/tome/mobilepage',query);
}
/*
保存评论
{Object }
@@ -87,5 +90,6 @@ export default{
pageQuery,
reply,
replyList,
delReply
delReply,
mobilepage
}

View File

@@ -10,6 +10,10 @@ import ajax from '@/utils/xajax.js'
const list=function(query){
return ajax.post('/xboe/sys/message/list',query);
}
const mobilelist=function(query){
return ajax.post('/xboe/sys/message/mobilelist',query);
}
// mobilelist
/*
删除消息
@param ids 勾选的多个消息id
@@ -61,5 +65,6 @@ export default{
isRead,
updateIsRead,
readAll,
cleanAll
cleanAll,
mobilelist
}

View File

@@ -12,7 +12,7 @@
{{course.name}}
</view>
<view class="course-text">
{{course.teacher}} | {{course.studys || course.studies}}人已学
{{course.teacher}} | {{formatUserNumber(course.studys || course.studies)}}人已学
</view>
<view class="course-type">
<text class="type-index" v-if="sysTypeName(course.sysType1) != ''">{{sysTypeName(course.sysType1)}}</text>
@@ -24,7 +24,7 @@
<script>
import { mapGetters,mapActions} from 'vuex';
import {toScore} from '@/utils/tools.js'
import {toScore,formatUserNumber} from '@/utils/tools.js'
export default {
props:{
items:{
@@ -37,6 +37,7 @@
data() {
return {
converToScore:toScore,
formatUserNumber,
}
},
methods: {

View File

@@ -7,7 +7,7 @@
<!-- ${filterWidth} -->
<u-popup :show="filterShow" mode="center" @close="closeFilter" :safeAreaInsetTop="true" :closeable="false">
<view :style="{width:filterWidth}" style="height: 100vh;padding-top: 32upx; overflow: auto;position: relative;">
<view v-if="type==1" >
<view v-if="type==1" style="margin-bottom: 400upx;">
<view class="filter-title-top">
<u-icon @click="filterShow = false" class="icon" name="arrow-left" color="#333333" size="20"></u-icon>课程分类
</view>
@@ -22,6 +22,9 @@
<view class="filter-option" :class="{'filter-checked':course.courseType==20}" @click="setCourseFilter('courseType',20)">录播课</view>
<view class="filter-option" :class="{'filter-checked':course.courseType==30}" @click="setCourseFilter('courseType',30)">线下课</view>
<view class="filter-option" :class="{'filter-checked':course.courseType==40}" @click="setCourseFilter('courseType',40)">学习项目</view>
</view>
<view class="">
</view>
<view class="filter-title" style="margin-top: 10upx;">内容分类</view>
<view class="filter-body">
@@ -189,6 +192,7 @@
}
},
methods:{
stopRoll(){},
toNewLink(){
location.href='https://m.qingxuetang.com/x/?appId=qxtcorp306130';
},
@@ -492,6 +496,10 @@
}
}
.filter-footer{
position: fixed;
bottom: 126upx;
left: 0;
right:0;
display: flex;
justify-content: center;
margin-top: 84upx;

View File

@@ -18,12 +18,11 @@
<view v-if="users.length>0" style="overflow-x: auto;height: 160upx;white-space: nowrap;overflow-y: hidden;">
<view style="line-height: 60upx;display: inline-block;margin: 10upx;" v-for="(su,suidx) in users" :key="suidx" @click="confirmShare(su)">
<view style="text-align: center;"><!--用户头像-->
<view v-if="su.avatar"><image :src="su.avatar" shape="circle" style="width: 80upx;height: 80upx;"></image></view>
<view v-if="su.avatar" style="border-radius: 50%;"><image :src="$config.fileUrl+su.avatar" shape="circle" style="width: 80upx;height: 80upx;border-radius: 50%;"></image></view>
<view v-else>
<image v-if="su.sex === 1 " shape="circle" src="../../static/images/man.png" style="width: 80upx;height: 80upx;" alt=""></image>
<image v-else shape="circle" src="../../static/images/woman.png" style="width: 80upx;height: 80upx;" alt=""></image>
</view>
</view>
<view style="text-align: center;font-size: 22upx;">{{su.name}}({{su.code}})</view>
</view>
@@ -144,7 +143,7 @@
// item.sex=1;
// ids.push(item.aid);
// }
item.avatar='';
// item.avatar='';
item.sex=1;
ids.push(item.aid);
});
@@ -242,9 +241,9 @@
item.avatar= author.avatar;
item.code= author.code;
item.sex=author.sex;
if(author.avatar != '') {
item.avatar=this.$config.fileUrl + author.avatar;
}
// if(author.avatar != '') {
// item.avatar=this.$config.fileUrl + author.avatar;
// }
return true;
}else{
return false;

View File

@@ -3,8 +3,8 @@
<u-toast ref="toast"></u-toast>
<view class="news-page-btn">
<view class="btn-index" @click="selectFn">多选</view>
<view class="btn-index" @click="isAllClear()">清空</view>
<view class="btn-index" @click="allRead()">一键已读</view>
<view class="btn-index" :class="{'wu-list':items.length == 0}" @click="isAllClear()">清空</view>
<view class="btn-index" :class="{'wu-list':items.length == 0}" @click="allRead()">一键已读</view>
</view>
<view class="news-page-list">
<view class="list-index" v-for="item in items" :key="item.id" @click="returnRouter(item)">
@@ -43,6 +43,7 @@
props:{
items:{
type:Array,
default:()=>[]
}
},
data() {
@@ -72,15 +73,18 @@
url: '/pages/resource/qaDetail?id=' + item.refId
});
} else {
if (item.conType == '10') {
uni.navigateTo({
url: '/pages/resource/microDetail?id=' + item.refId
});
} else if (item.conType == '20') {
uni.navigateTo({
url: '/pages/resource/courseDetail?id=' +item.refId
});
}
uni.navigateTo({
url: '/pages/study/courseStudy?id=' + item.refId
});
// if (item.conType == '10') {
// uni.navigateTo({
// url: '/pages/resource/microDetail?id=' + item.refId
// });
// } else if (item.conType == '20') {
// uni.navigateTo({
// url: '/pages/resource/courseDetail?id=' +item.refId
// });
// }
}
},
cancel() {
@@ -131,6 +135,9 @@
});
},
isAllClear() {
if(this.items.length == 0) {
return
}
this.isAll = 0;
this.modalShow = true;
this.content='确认删所有信息吗?'
@@ -144,6 +151,9 @@
})
},
allRead(){
if(this.items.length == 0) {
return
}
let ids = this.items.map(item=>{
if(!item.isRead) {
return item.id;
@@ -160,6 +170,9 @@
</script>
<style scoped lang="scss">
.wu-list{
background-color: #eee;
}
/deep/ .u-modal{
width: 288px !important;
border-radius: 28upx;

View File

@@ -114,6 +114,7 @@
}
},
onLoad(options) {
this.tab = options.type;
this.$store.dispatch('GetUserInfo').then(rs => {
this.userInfo = rs;
this.getMyPage();
@@ -146,7 +147,10 @@
} else {
$this.follow.list.splice(this.cancelIndex,1);
}
this.$refs.messager.show({message:'停止关注成功',type:'info'});
uni.showToast({
title:'停止关注成功'
})
// this.$refs.messager.show({message:'停止关注成功',type:'info'});
}
})
},
@@ -161,7 +165,7 @@
})
},
ubtab(num){
this.tab = num
this.tab = num;
},
getMyPage() {//关注我的,关注他的
this.followMe.aid = this.userInfo.aid;
@@ -225,7 +229,7 @@
});
});
} else {
this.$message.error(res.message);
// this.$message.error(res.message);
}
});
},

View File

@@ -78,12 +78,12 @@
</view>
<text class="asset-border"></text>
<view @click="navigateTo('follow')">
<view @click="navigateTo('follow?type=1')">
<text>{{ concernme }}</text>
关注我的
</view>
<text class="asset-border"></text>
<view @click="navigateTo('follow')">
<view @click="navigateTo('follow?type=2')">
<text>{{ myconcern }}</text>
我的关注
</view>
@@ -367,7 +367,6 @@
Followto(){
apiFollow.counts(this.userInfoObj.aid).then(res => {
console.log(res);
this.concernme = res.result.passive;
this.myconcern = res.result.initiative;
})

View File

@@ -100,15 +100,15 @@
</view>
</view>
</view>
<u-popup :show="inputShow" @close="closeInput" @open="openInput">
<u-popup :show="inputShow" @close="closeInput" @open="openInput" :round="16">
<view>
<view style="display: flex;">
<view style="flex: 1;padding: 15upx;">
<u--textarea :height="150" v-model="inputValue" :plaholder="'回复'" count></u--textarea>
<view style="padding: 60upx 30upx;">
<view>
<u--textarea style="border: none;background: #F4F4F4;" :height="50" v-model="inputValue" :plaholder="'回复'" count></u--textarea>
</view>
<view style="width:160upx;text-align: center;padding-top: 10px;line-height: 80upx;">
<view style="width:160upx;padding-top: 10px;float: right;height: 120upx;">
<view>
<u-button type="primary" @click="publishReply" text="发布" style="width: 100upx;height: 80upx;margin-top: 80upx;"></u-button>
<u-button type="primary" @click="publishReply" text="发布" style="padding: 2upx 30upx;height: 52upx;background: #87B3FF;border-color: #87B3FF;"></u-button>
</view>
</view>
</view>

View File

@@ -7,7 +7,7 @@
</view>
<view class="top-content">
<view>{{uinfo.uCurrency}}</view>
统计时间2022.11.4
统计时间{{formatDate(new Date()).split(' ')[0]}}
</view>
</view>
<view class="ub-list" v-for="(day, index) in uCoinRecord" :key="index">
@@ -32,6 +32,7 @@
<script>
import { mapGetters } from 'vuex';
import apiStat from '@/api/phase2/stat.js';
import {formatDate} from '../../utils/tools.js'
export default {
computed: {
...mapGetters(['userInfo']),
@@ -41,6 +42,7 @@
},
data() {
return {
formatDate,
uCoinRecord: [],
uinfo: {
uCurrency: 0, // 用户累计U币

View File

@@ -211,6 +211,17 @@
</script>
<style lang="scss" scoped>
/deep/ .u-modal{
width: 288px !important;
border-radius: 28upx;
}
/deep/ .u-modal__content{
text-align: center;
font-size: 36upx;
font-weight: 600;
color: #333333;
padding: 33px 25px 33px 25px;
}
.uavatar{
border:1px solid #73adfe;
color:#73adfe;

View File

@@ -46,7 +46,6 @@
loadStatus:'noMore',//more,loading,noMore
query:{
pageIndex:1,//当前页
type:null,//当前只限于文章
pageSize:10,//条数
},//查询条件
message:{
@@ -98,7 +97,7 @@
}
let $this = this;
uni.showLoading({ title: '加载中...' });
apiMessage.list(this.queryData).then(res => {
apiMessage.mobilelist(this.queryData).then(res => {
if (res.status == 200) {
let ids = [];
this.emptyControl=true
@@ -133,7 +132,7 @@
this.data=[]
this.pageIndex=1
}
apiComments.pagelist(this.query).then(res=>{
apiComments.mobilepage(this.query).then(res=>{
if (res.status == 200) {
this.total=res.result.count;
let ids = [];

View File

@@ -743,6 +743,17 @@
})
}
}
}
</script>
<style lang="scss" scoped>
/deep/ .u-modal{
width: 288px !important;
border-radius: 28upx;
}
/deep/ .u-modal__content{
text-align: center;
font-size: 36upx;
font-weight: 600;
color: #333333;
padding: 33px 25px 33px 25px;

View File

@@ -4,11 +4,16 @@
<!-- <view class="top-ten" style="margin-top: 21px;margin-left: 13px;">
<text class="textbtn" @click="loadstatusSelecShow=!loadstatusSelecShow">状态</text>
</view> -->
<view class="searchView">
<view class="searchView" v-show="tabIndex===0">
<u-search :clearabled="true" @search="loadBoeData(true)" @clear="loadBoeData(true)"
placeholder="搜索关键字" v-model="loadkeyword" :showAction="false" shape="square" bgColor="##F2F5F7">
</u-search>
</view>
<view class="searchView" v-show="tabIndex===1">
<u-search :clearabled="true" @search="getLearning()" @clear="getLearning()"
placeholder="搜索关键字" v-model="learkeyword" :showAction="false" shape="square" bgColor="##F2F5F7">
</u-search>
</view>
</view>
<view class="tabbar" style="position: relative;">
<view class="tabbar-item" style="text-align: right;margin-right: 26upx;" @click="clicktab(0)" :class="{'active':tabIndex===0}">
@@ -20,14 +25,25 @@
</view>
</view>
<!-- 筛选状态 -->
<view class="addition" v-if="tabIndex===1">
<view class="addition" v-show="tabIndex===0">
<view class="textbtn" style="color:#666;font-size: 28upx;" @click="statusSelectShow = !statusSelectShow">
<text>筛选</text>
<u-icon style="margin-left: 18upx;" name="arrow-down"></u-icon>
</view>
<view class="sea-show" v-show="statusSelectShow">
<view v-for="(status,index) in selectData" :key="index" :class="[articleList.status == status.value? 'sea-active':'','sea-index']" @click="chooseStatus(status)">
{{status.label}}
<view v-for="(status,index) in statustList" :key="index" :class="[classType == status.value? 'sea-active':'','sea-index']" @click="autonomyStatus(status.value)">
{{status.name}}
</view>
</view>
</view>
<view class="addition" v-show="tabIndex===1">
<view class="textbtn" style="color:#666;font-size: 28upx;" @click="statusSelectShow = !statusSelectShow">
<text>筛选</text>
<u-icon style="margin-left: 18upx;" name="arrow-down"></u-icon>
</view>
<view class="sea-show" v-show="statusSelectShow">
<view v-for="(status,index) in statustList" :key="index" :class="[classType == status.value? 'sea-active':'','sea-index']" @click="taskStatus(status.value)">
{{status.name}}
</view>
</view>
</view>
@@ -108,11 +124,13 @@
<text style="font-size: 30upx; font-weight: bold;" v-html="$keywordActiveShow(c.courseName, autonomy.keyword)"></text>
</view>
<view class="coures-midd">
</view>
<view class="rowbtn">
<image @click.native.stop="rowbtn(c)" style="width: 100%;height: 100%;"
<view class="rowbtn" >
<image @click.native.stop="removecour(c)" style="width: 100%;height: 100%;position: relative"
src="../../static/images/icon/more.png" alt="">
<view class="delcoures" v-show="c.delcour" @click.native.stop="rowbtn(c)">
<u-icon style="line-height: 90upx;" name="trash" label="删除课程"></u-icon>
</view>
</view>
<view class="coures-bottom coures-midd">
<view v-if="c.teacherName" class="course-author">
@@ -295,7 +313,7 @@
couresList: '',
switch: '',
hisswitch: '',
classType: 0,
classType: '',
hisclassType: '',
historyList: '',
studyList: [],
@@ -413,6 +431,10 @@
}, 500);
},
methods: {
removecour(item){
console.log(item);
item.delcour = !item.delcour
},
rowbtn(row) {
this.delData = row;
this.btnsShow = true;
@@ -427,6 +449,7 @@
});
this.studyList.forEach((item, index) => {
if (item.id === this.delData.id) {
// item.delcour = false;
this.studyList.splice(index, 1);
}
})
@@ -514,16 +537,17 @@
})
},
autonomyStatus(num) {
// this.isSelect = num;
this.autonomy.status = num;
this.searchData();
this.status = num;
this.getLearning();
},
taskStatus(num) {
this.boeStatus = num;
this.loadBoeData(true);
},
closeBtns() {
this.btnsShow = false;
},
searchData() {
// this.page.pageIndex = 1;
// this.isListOne = true;
let list = this.studyData;
let type;
let wei;
@@ -580,13 +604,10 @@
}
apiBoeCourse.cmtaskList(params).then(res => {
this.taskCount = res.result.count;
// let userIds=[];
res.result.list.forEach(item => {
let time = this.formatDate(item.created_at * 1000);
item.created_at = time.split(' ')[0];
// userIds.push(item.sysCreateAid);
});
// this.loadUserInfos(rs.result.list, userIds);
this.couresList = res.result.list;
if (this.taskCount > this.taskPageIndex * this.taskPageSize) {
this.taskHasMore = true;
@@ -700,23 +721,20 @@
title: '加载中...'
});
this.loadStatus = 'loading';
// let classType = null;
let data = [];
let lear = {
pageIndex: 1, //第几页
pageSize: 200,
courseName: this.learkeyword,
// courseType: classType,
status: this.status,
}
// if(this.classType == 'online-course' || this.classType == '') {
await apicourseStudy.myStudyList(lear).then(res => {
if (res.status == 200) {
// 我报名的接口
//console.log(res)
let courseIds = [];
res.result.list.forEach(item => {
item.delcour = false;
item.teachersName = '';
item.addTime = item.addTime.split(' ')[0];
courseIds.push(item.courseId);
@@ -735,8 +753,12 @@
await apiBoeCourse.myLearning(learData).then(res => {
if (res.status == 200) {
res.result.dataList.forEach(item => {
item.delcour = false;
})
let list = this.filterConversion(res.result.dataList);
data.push(...list);
}
})
this.loadStatus = 'noMore';
@@ -865,6 +887,18 @@
</script>
<style lang="scss" scoped>
.delcoures{
position: absolute;
width: 180upx;
top: 40upx;
right: 0;
background: #FFFFFF;
box-shadow: 0px 1px 4px 1px rgba(0,0,0,0.08);
border-radius: 8upx;
z-index: 77;
padding: 30upx 30upx;
color: #333333;
}
.addition {
position: absolute;
right: 10upx;
@@ -875,7 +909,7 @@
color: #4f4f4f;
font-size: 28upx;
}
.sea-show{
.sea-show {
width: 130upx;
position: absolute;
top: 80upx;
@@ -1022,15 +1056,10 @@
padding: 20upx 30upx 10upx 30upx;
.sea-active {
border: 1rpx solid #679cfc !important;
color: #679cfc;
}
.sea-index {
font-size: 26rpx;
padding: 6rpx 16rpx;
border: 1rpx solid #ccc;
border-radius: 20rpx;
margin-right: 16rpx;
background-color: #fff;
}