master
lion 1 year ago
parent e3b1d206ba
commit 9d28edccf4

@ -1,7 +1,7 @@
const mode = 'production'; //devLocal本地测试、devOnline线上测试、production生产环境 const mode = 'production'; //devLocal本地测试、devOnline线上测试、production生产环境
let ROOTPATH = ''; //域名 let ROOTPATH = ''; //域名
let baseUrl = "https://suzhoukeji-test.ali251.langye.net" // let baseUrl = "https://suzhoukeji-test.ali251.langye.net"
// let baseUrl = "https://wx.sstbc.com" let baseUrl = "https://wx.sstbc.com"
switch (mode) { switch (mode) {
case 'devLocal': case 'devLocal':
ROOTPATH = baseUrl ROOTPATH = baseUrl

@ -110,12 +110,12 @@
this.$refs.uForm.validate(valid => { this.$refs.uForm.validate(valid => {
if (valid) { if (valid) {
this.$u.api.updateDonates(this.form).then(res => { this.$u.api.updateDonates(this.form).then(res => {
this.base.toast('提交成功',1000,function(){ this.base.toast('提交成功',1500,function(){
setTimeout(function(){ setTimeout(function(){
uni.switchTab({ uni.switchTab({
url:'/pages/me/index' url:'/pages/me/index'
}) })
},50) },100)
}) })
}) })
} else { } else {

@ -1,18 +1,24 @@
<template> <template>
<view class="container"> <view class="container">
<image class="cbg" :src="base.imgHost('common_bg.png')"></image> <image class="cbg" :src="base.imgHost('common_bg.png')"></image>
<view class="search"> <view class="search-wrap" v-if="selectList.length>0">
<!-- <view class="select"> --> <view class="search">
<w-select width="250rpx" :showClose="false" style="margin-left: 20rpx;" v-model="chooseValue" :list="selectList" valueName="name" <!-- <view class="select"> -->
keyName="id" @change="changeMonth"> <w-select width="250rpx" :showClose="false" style="margin-left: 20rpx;" v-model="chooseValue"
:list="selectList" valueName="name" keyName="id" @change="changeMonth">
</w-select> </w-select>
<!-- </view> --> <!-- </view> -->
<view class="all" @click="changeAll"></view> <view class="all" @click="changeAll"></view>
</view>
</view>
<view class="search-tab" v-if="selectDayList.length>0">
<u-tabs :bg-color="'#f0f7fc'" active-color="#b89155" :list="selectDayList" name="value" :is-scroll="true"
:current="current" @change="changeSearchDay"></u-tabs>
</view> </view>
<view class="wrap"> <view class="wrap" :style="isAll?'padding-top:100rpx':'padding-top:30rpx'">
<view v-if="monthList.length>0"> <view v-if="dayDataList.length>0">
<view class="item" v-for="item in monthList"> <view class="item" v-for="item in dayDataList">
<view class="item-date">{{item.monthday}}</view> <view v-if="isAll" class="item-date">{{item.monthday}}</view>
<view class="item-period">{{item.period}}</view> <view class="item-period">{{item.period}}</view>
<view class="item-img"> <view class="item-img">
<image :src="base.imgHost('mycourse-c1.png')" style="width:22rpx;height:22rpx"></image> <image :src="base.imgHost('mycourse-c1.png')" style="width:22rpx;height:22rpx"></image>
@ -44,9 +50,12 @@
data() { data() {
return { return {
list: [], list: [],
monthList: [], dayDataList: [],
chooseValue: '', chooseValue: '',
selectList: '' selectList: '',
selectDayList: [],
current: 0,
isAll:false
} }
}, },
onLoad(options) { onLoad(options) {
@ -56,37 +65,58 @@
async getMyCourseContents(id) { async getMyCourseContents(id) {
const res = await this.$u.api.courseContent({ const res = await this.$u.api.courseContent({
course_id: id, course_id: id,
}) })
this.list = res.list this.list = res.list
if(res.list.length>0){ if (res.list.length > 0) {
// this.monthList = res.list // this.dayDataList = res.list
let obj = this.groupByMonthAndSort(res.list) let obj = this.groupByMonthAndSort(res.list)
const currentMonth = this.$moment().format('YYYY年MM月') const currentMonth = this.$moment().format('YYYY年MM月')
const currentDay = this.$moment().format('MM月DD日')
if(this.selectList.length>0){ if (this.selectList.length > 0) {
this.selectList.map((item,index)=>{ this.selectList.map((item, index) => {
if(item.name===currentMonth){ if (item.name === currentMonth) {
this.monthList = item.item this.chooseValue = item.name
this.selectDayList = item.item
this.dayDataList = item.item[0]['arr']
item.item.map((cur,index1)=>{
if(cur.value===currentDay){
this.dayDataList = cur['arr']
this.current = index1
}
})
} else {
this.selectDayList = this.selectList[this.selectList.length - 1]['item']
this.chooseValue = item.name this.chooseValue = item.name
}else{ this.dayDataList = this.selectList[this.selectList.length - 1]['item'][0]['arr']
this.monthList = this.selectList[this.selectList.length-1]['item'] }
this.chooseValue = item.name })
} }
})
}
} }
}, },
changeMonth(e) { changeMonth(e) {
console.log("e",e,this.chooseValue) console.log("e", e, this.chooseValue)
this.monthList = e.item this.selectDayList = e.item
}, this.dayDataList = e.item[0]['arr']
changeAll(){ this.current = 0
this.chooseValue = '' this.isAll = false
this.monthList = this.list
}, },
changeAll() {
this.current = 0
this.selectDayList = []
this.dayDataList = this.list
this.isAll = true
// this.$set(this,'chooseValue','')
},
//
changeSearchDay(e) {
console.log("e1", e)
this.current = e
this.dayDataList = this.selectDayList[e]['arr']
},
//
groupByMonthAndSort(a) { groupByMonthAndSort(a) {
// //
const groupedData = {}; const groupedData = {};
@ -103,20 +133,45 @@
} }
// //
groupedData[monthKey].push(item); groupedData[monthKey].push(item);
}); });
let _arr = [] let _arr = []
for (var k in groupedData) {
for(var k in groupedData){ _arr.push({
_arr.push({ name: k,
name:k, item: groupedData[k],
item:groupedData[k], id: k
id:k })
}) }
} this.selectList = this.transformItemsToObject(_arr)
this.selectList = _arr
// //
return groupedData; return groupedData;
} },
//
transformItemsToObject(arr) {
return arr.map(month => {
const transformedItems = month.item.reduce((acc, curr) => {
const key = curr.monthday;
const existingItem = acc.find(item => item.value === key);
if (existingItem) {
existingItem.arr.push(curr);
} else {
acc.push({
value: key,
arr: [curr]
});
}
return acc;
}, []);
return {
...month,
item: transformedItems
};
});
},
} }
} }
@ -137,28 +192,41 @@
height: 100vh; height: 100vh;
} }
.search {
width:100%; .search {
padding: 30rpx; position: fixed;
position: fixed; top: 0;
top:0; left: 0;
left:0; width: 100%;
display: flex; width: 100%;
justify-content: space-between; padding: 30rpx;
align-items: center; display: flex;
box-shadow: 1rpx -4rpx 15rpx 0 #333; justify-content: space-between;
z-index:9; align-items: center;
background-color: #fff; box-shadow: 1rpx -4rpx 15rpx 0 #333;
height:100rpx; z-index: 9;
.all { background-color: #fff;
font-size: 28rpx; height: 100rpx;
color:#b89155;
.all {
font-size: 28rpx;
color: #b89155;
} }
} }
.search-tab {
// position: fixed;
// top: 100rpx;
// left: 0;
// width: 100%;
margin-top: 100rpx;
background-color: #fff;
}
.wrap { .wrap {
position: relative; position: relative;
padding-top:100rpx; // padding-top: 20rpx;
.item { .item {
background-color: #fff; background-color: #fff;
padding: 30rpx; padding: 30rpx;

@ -3,6 +3,7 @@
<image class="cbg" :src="base.imgHost('common_bg.png')"></image> <image class="cbg" :src="base.imgHost('common_bg.png')"></image>
<view class="wrap"> <view class="wrap">
<view class="wrap-title"> <view class="wrap-title">
<text v-if="info.course.year">{{info.course.year+''}}</text>
<text v-if="info.course.type">{{info.course.type_detail?info.course.type_detail.name+' | ':''}}</text> <text v-if="info.course.type">{{info.course.type_detail?info.course.type_detail.name+' | ':''}}</text>
{{info.course?info.course.name:''}} {{info.course?info.course.name:''}}
</view> </view>

Loading…
Cancel
Save