229 lines
5.2 KiB
Vue
229 lines
5.2 KiB
Vue
|
|
<template>
|
|||
|
|
<view class="hole-page">
|
|||
|
|
<view class="select-area">
|
|||
|
|
例会类型:
|
|||
|
|
<uni-data-select
|
|||
|
|
v-model="meetVal"
|
|||
|
|
:localdata="meetRange"
|
|||
|
|
@change="meetChange"
|
|||
|
|
:clear="false"
|
|||
|
|
></uni-data-select>
|
|||
|
|
</view>
|
|||
|
|
<view class="select-area">
|
|||
|
|
选择日期范围:
|
|||
|
|
<uni-datetime-picker
|
|||
|
|
v-model="timeRange"
|
|||
|
|
type="daterange"
|
|||
|
|
@change="timeChange"
|
|||
|
|
:clear-icon="false"
|
|||
|
|
/>
|
|||
|
|
</view>
|
|||
|
|
<!-- <view class="meeting-upper">
|
|||
|
|
<view>例会类型</view>
|
|||
|
|
<view>例会主题</view>
|
|||
|
|
<view>例会时间</view>
|
|||
|
|
</view> -->
|
|||
|
|
<view
|
|||
|
|
class="single-meeting"
|
|||
|
|
v-for="(meeting, index) in meetingList"
|
|||
|
|
:key="index"
|
|||
|
|
@click="jumpDetail(meeting.id)"
|
|||
|
|
>
|
|||
|
|
<view>
|
|||
|
|
<h4>例会类型</h4>
|
|||
|
|
<span>{{ meeting.meetingType }}</span>
|
|||
|
|
</view>
|
|||
|
|
<view>
|
|||
|
|
<h4>例会主题</h4>
|
|||
|
|
<span>{{ meeting.meetingTheme }}</span>
|
|||
|
|
</view>
|
|||
|
|
<view>
|
|||
|
|
<h4>例会时间</h4>
|
|||
|
|
<span>{{ meeting.updateTime }}</span>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
<view class="no-data" v-show="showNoData">
|
|||
|
|
<view class="cen-pic">
|
|||
|
|
<image src="/static/noMeeting.png" mode=""></image>
|
|||
|
|
<span>当前时间段无会议</span>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
</template>
|
|||
|
|
|
|||
|
|
<script>
|
|||
|
|
import { publicPath } from '../../public';
|
|||
|
|
export default {
|
|||
|
|
data() {
|
|||
|
|
return {
|
|||
|
|
meetVal: 1,
|
|||
|
|
meetRange: [
|
|||
|
|
{ value: 1, text: '月例会' },
|
|||
|
|
{ value: 2, text: '周例会' },
|
|||
|
|
{ value: 3, text: '安全例会' }
|
|||
|
|
],
|
|||
|
|
timeRange: [],
|
|||
|
|
meetingList: [],
|
|||
|
|
yr: new Date().getFullYear(),
|
|||
|
|
month: new Date().getMonth() + 1,
|
|||
|
|
day: new Date().getDate(),
|
|||
|
|
showNoData: false
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
methods: {
|
|||
|
|
meetChange (e) {
|
|||
|
|
console.log(this.meetVal, this.timeRange);
|
|||
|
|
this.fetchMeetings(this.meetVal, this.timeRange[0], this.timeRange[1])
|
|||
|
|
},
|
|||
|
|
timeChange (e) {
|
|||
|
|
console.log(this.meetVal, this.timeRange);
|
|||
|
|
this.fetchMeetings(this.meetVal, this.timeRange[0], this.timeRange[1])
|
|||
|
|
},
|
|||
|
|
fetchMeetings (type, start, end) {
|
|||
|
|
let that = this
|
|||
|
|
that.meetingList = []
|
|||
|
|
uni.request({
|
|||
|
|
url: publicPath + '/backstage/app/getAppMeetingList',
|
|||
|
|
method: 'POST',
|
|||
|
|
header: {
|
|||
|
|
'content-type':'application/x-www-form-urlencoded; charset=UTF-8'
|
|||
|
|
},
|
|||
|
|
data: {
|
|||
|
|
meetingType: type,
|
|||
|
|
startTime: start,
|
|||
|
|
endTime: end
|
|||
|
|
},
|
|||
|
|
success: (res) => {
|
|||
|
|
console.log(res);
|
|||
|
|
if (res.data.code == 500) {
|
|||
|
|
/* uni.showToast({
|
|||
|
|
icon: 'none',
|
|||
|
|
title: '该时间段暂无例会数据!'
|
|||
|
|
}) */
|
|||
|
|
that.showNoData = true
|
|||
|
|
} else {
|
|||
|
|
that.showNoData = false
|
|||
|
|
for (let i = 0; i < res.data.data.length; i++) {
|
|||
|
|
switch (res.data.data[i].meetingType) {
|
|||
|
|
case '1':
|
|||
|
|
res.data.data[i].meetingType = '月例会'
|
|||
|
|
break;
|
|||
|
|
case '2':
|
|||
|
|
res.data.data[i].meetingType = '周例会'
|
|||
|
|
break;
|
|||
|
|
case '3':
|
|||
|
|
res.data.data[i].meetingType = '安全例会'
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
that.meetingList = res.data.data
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
},
|
|||
|
|
timestampToTime (timestamp) {
|
|||
|
|
var date = new Date(timestamp);
|
|||
|
|
var Y = date.getFullYear() + "-";
|
|||
|
|
var M =
|
|||
|
|
(date.getMonth() + 1 < 10
|
|||
|
|
? "0" + (date.getMonth() + 1)
|
|||
|
|
: date.getMonth() + 1) + "-";
|
|||
|
|
var D = (date.getDate() < 10 ? "0" + date.getDate() : date.getDate()) + " ";
|
|||
|
|
return Y + M + D;
|
|||
|
|
},
|
|||
|
|
jumpDetail (id) {
|
|||
|
|
uni.navigateTo({
|
|||
|
|
url: `/pages/meetingDetail/meetingDetail?id=${id}`
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
onNavigationBarButtonTap() {
|
|||
|
|
uni.navigateTo({
|
|||
|
|
url: '/pages/addMeeting/addMeeting'
|
|||
|
|
})
|
|||
|
|
},
|
|||
|
|
onShow() {
|
|||
|
|
this.yr = new Date().getFullYear()
|
|||
|
|
this.month = new Date().getMonth() + 1
|
|||
|
|
this.day = new Date().getDate()
|
|||
|
|
if (this.month < 10) {
|
|||
|
|
this.month = '0' + this.month
|
|||
|
|
}
|
|||
|
|
if (this.day < 10) {
|
|||
|
|
this.day = '0' + this.day
|
|||
|
|
}
|
|||
|
|
let today = this.yr + '-' + this.month + '-' + this.day
|
|||
|
|
console.log(today);
|
|||
|
|
let lastSeven = this.timestampToTime(new Date(today).getTime() - (1000 * 60 * 60 * 24 * 7))
|
|||
|
|
console.log(lastSeven);
|
|||
|
|
this.timeRange = [lastSeven, today]
|
|||
|
|
this.fetchMeetings(this.meetVal, lastSeven, today)
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
</script>
|
|||
|
|
|
|||
|
|
<style lang="scss" scoped>
|
|||
|
|
.hole-page{
|
|||
|
|
width: 100%;
|
|||
|
|
height: 100vh;
|
|||
|
|
background-color: #f7fbfe;
|
|||
|
|
.select-area{
|
|||
|
|
width: 100%;
|
|||
|
|
margin: 0 auto;
|
|||
|
|
display: flex;
|
|||
|
|
align-items: center;
|
|||
|
|
font-size: 14px;
|
|||
|
|
background-color: #fff;
|
|||
|
|
box-sizing: border-box;
|
|||
|
|
padding: 20rpx;
|
|||
|
|
}
|
|||
|
|
.single-meeting{
|
|||
|
|
width: 100%;
|
|||
|
|
margin: 20rpx auto;
|
|||
|
|
box-sizing: border-box;
|
|||
|
|
padding: 0 40rpx 20rpx 40rpx;
|
|||
|
|
display: flex;
|
|||
|
|
flex-direction: column;
|
|||
|
|
background-color: #fff;
|
|||
|
|
view{
|
|||
|
|
box-sizing: border-box;
|
|||
|
|
padding: 20rpx;
|
|||
|
|
display: flex;
|
|||
|
|
justify-content: space-between;
|
|||
|
|
align-items: center;
|
|||
|
|
border-bottom: 1px solid #dbdbdb;
|
|||
|
|
h4{
|
|||
|
|
font-weight: normal;
|
|||
|
|
font-size: 14px;
|
|||
|
|
color: #868686;
|
|||
|
|
}
|
|||
|
|
span{
|
|||
|
|
font-size: 14px;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
.no-data{
|
|||
|
|
width: 100%;
|
|||
|
|
height: 50vh;
|
|||
|
|
display: flex;
|
|||
|
|
background-color: #fff;
|
|||
|
|
.cen-pic{
|
|||
|
|
width: 30%;
|
|||
|
|
height: 15vh;
|
|||
|
|
margin: auto;
|
|||
|
|
display: flex;
|
|||
|
|
flex-direction: column;
|
|||
|
|
justify-content: space-around;
|
|||
|
|
image{
|
|||
|
|
width: 100%;
|
|||
|
|
height: 12vh;
|
|||
|
|
}
|
|||
|
|
span{
|
|||
|
|
font-size: 14px;
|
|||
|
|
color: #9f9f9f;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
</style>
|