Commit c7d0b174 by liang ce

修改首页动态

parent d0041ee4
......@@ -10,15 +10,15 @@
<text a:if="{{item.traceTime !== '1970-03-01 00:00:00'}}" class="iconfont iconicon_top1"></text>
</view>
</view>
<block a:for="{{item.meetingLogDataList}}" a:for-item="dynamicItem">
<block a:for="{{item.meetingLogDataList.meetingLogDataList.slice(0,2)}}" a:for-item="dynamicItem">
<view class="userDynamic">
<view class="dynamicTime">
<text>{{dynamicItem.creatorInfo.username}}更新了{{dynamicItem.category == 2 ? '文件' : '任务'}}</text>
<text>{{createTime}}</text>
</view>
<file-list a:if="{{dynamicItem.category === '2'}}" fileView="{{dynamicItem}}" isCanEdit="{{false}}"/>
<file-list a:if="{{dynamicItem.category === '2'}}" fileView="{{dynamicItem.meetingLogResource}}" isCanEdit="{{false}}"/>
<view class="dynamicFile" a:if="{{dynamicItem.category === '3'}}">
<task-list onChangeTaskStatusOnList="onChangeTaskStatusOnList" taskList="{{[dynamicItem]}}" isCanEdit="{{false}}"/>
<task-list onChangeTaskStatusOnList="onChangeTaskStatusOnList" taskList="{{[dynamicItem.meetingLogResource]}}" isCanEdit="{{false}}"/>
</view>
</view>
</block>
......
......@@ -3,7 +3,7 @@ import {
meetingCollection,
updateMeetingTask
} from "../../api/request";
import { dealFileTime } from "../../utils/utils";
import { dealFileTime, uniqueObject } from "../../utils/utils";
Component({
mixins: [],
data: {
......@@ -37,43 +37,43 @@ Component({
// 第一层日程数据处理
if (res.data.data) {
let dynamicList = res.data.data.records.map((item, index) => {
if (item.creatorInfo) {
item.creatorInfo = JSON.parse(item.creatorInfo);
}
// 第二层日程下的动态数据处理
let meetingLogDataList = item.meetingLogDataList.map(
(item2, index2) => {
if (item2.category === "2") {
// 第三层处理动态下的文件或者任务数据
let meetingLogResource = item2.meetingLogResource;
meetingLogResource.fileInfos = !meetingLogResource.fileInfos
? ""
: JSON.parse(meetingLogResource.fileInfos);
meetingLogResource.creatorInfo = !meetingLogResource.creatorInfo
? ""
: JSON.parse(meetingLogResource.creatorInfo);
meetingLogResource.category = "2";
return meetingLogResource;
} else if (item2.category === "3") {
let meetingLogResource = {
category: "3",
groupId: item2.groupId,
scheduleId: item2.scheduleId,
id: item2.meetingLogResource.id,
acceptorInfo: item2.meetingLogResource.acceptorInfo
? JSON.parse(item2.meetingLogResource.acceptorInfo)
: "",
taskInfos: item2.meetingLogResource.taskInfos
? JSON.parse(item2.meetingLogResource.taskInfos)
: "",
taskStatus: item2.meetingLogResource.taskStatus
};
return meetingLogResource;
let meetingLogDataList = {};
let meetingLogDataListArr = [];
for (let i = 0; i < item.meetingLogDataList.length; i++) {
let itemData = item.meetingLogDataList[i].meetingLogResource;
if (itemData) {
if (itemData.taskInfos || itemData.taskInfos) {
if (itemData.creatorInfo) {
itemData.creatorInfo = JSON.parse(itemData.creatorInfo);
}
if (itemData.fileInfos) {
itemData.fileInfos = JSON.parse(itemData.fileInfos);
}
if (itemData.taskInfos) {
itemData.taskInfos = JSON.parse(itemData.taskInfos);
}
if (itemData.acceptorInfo) {
itemData.acceptorInfo = JSON.parse(itemData.acceptorInfo);
}
meetingLogDataList[item.meetingLogDataList[i].resourceId] =
item.meetingLogDataList[i];
}
}
);
}
for (let item in meetingLogDataList) {
meetingLogDataListArr.push(meetingLogDataList[item]);
}
item.meetingLogDataList = meetingLogDataListArr;
return {
scheduleId: item.scheduleId,
title: item.title,
traceTime: item.traceTime,
meetingLogDataList: meetingLogDataList
meetingLogDataList: item
};
});
if (current === 1) {
......
......@@ -2,104 +2,93 @@
<view>2020年3月</view>
<view onTap="changesidebar">icon</view>
</view>
<view class="index">
<view a:if="{{true}}">
<scroll-view class="indexScrollView" a:if="{{todayStr !== ''}}" scroll-y="{{true}}" lower-threshold="1000" onScrollToLower="lower" scroll-into-view="{{todayStr}}">
<block a:for="{{scheduleList}}" a:for-item="scheduleYearList">
<block a:for="{{scheduleYearList}}">
<block a:if="{{item.type == 'year'}}">
<view class="month">
{{item.value}}年
</view>
</block>
<block a:elif="{{item.type == 'month'}}">
<view class="month">
{{item.value}}月
</view>
</block>
<block a:elif="{{item.type == 'week'}}">
<view class="week" id="{{item.dayStr}}">
<view class="manyWeeks">
{{item.value}}
</view>
<scroll-view class="indexScrollView" scroll-y="{{true}}" style="background: #FFFFFF" lower-threshold="1000" onScrollToLower="lower" scroll-into-view="{{thisDay}}">
<block a:for="{{scheduleList}}" a:for-item="scheduleYearList">
<block a:for="{{scheduleYearList}}">
<block a:if="{{item.type == 'year'}}">
<view class="month">
{{item.value}}年
</view>
</block>
<block a:elif="{{item.type == 'month'}}">
<view class="month">
{{item.value}}月
</view>
</block>
<block a:elif="{{item.type == 'week'}}">
<view class="week" id="{{item.dayStr}}">
<view class="manyWeeks">
{{item.value}}
</view>
</view>
</block>
<block a:elif="{{item.type == 'day'}}">
<view class="date">
<view class="dateTime {{item.isThisDay}}">
<view>
{{item.value.week}}
</view>
</block>
<block a:elif="{{item.type == 'day'}}">
<view class="date">
<view class="dateTime {{item.isThisDay}}">
<view>
{{item.value.week}}
</view>
<text>{{item.value.day}}</text>
<text>{{item.value.day}}</text>
</view>
<view class="dataSchedule">
<view a:for="{{item.value.value}}" a:for-item="item2" data-item="{{item2}}" class="{{ item2.isBeOverdue ? 'overdue' : item2.confirmAttendance === 0 ? 'cancel' : '' }}" onTap="nextDetail">
<view class="dataScheduleName">
<text>{{item2.title}}{{item2.isfirstDayOrEndDay ? `(第${item2.isFewDays}天,共${item2.duration}天)` : '' }}</text>
</view>
<view class="dataSchedule">
<view a:for="{{item.value.value}}" a:for-item="item2" data-item="{{item2}}" class="{{ item2.isBeOverdue ? 'overdue' : item2.confirmAttendance === 0 ? 'cancel' : '' }}" onTap="nextDetail">
<view class="dataScheduleName">
<text>{{item2.title}}{{item2.isfirstDayOrEndDay ? `(第${item2.isFewDays}天,共${item2.duration}天)` : '' }}</text>
</view>
<view class="dataScheduleTime">
<text a:if="{{item2.isfirstDayOrEndDay && item2.isfirstDayOrEndDay === '0'}}">{{item2.thisDayStartTime}}</text>
<text a:elif="{{item2.isfirstDayOrEndDay && item2.isfirstDayOrEndDay === '1'}}">全天</text>
<text a:elif="{{item2.isfirstDayOrEndDay && item2.isfirstDayOrEndDay === '2'}}">直到{{item2.thisDayEndTime}}</text>
<text a:else>{{item2.thisDayStartTime}} - {{item2.thisDayEndTime}}</text>
</view>
</view>
<view class="dataScheduleTime">
<text a:if="{{item2.isfirstDayOrEndDay && item2.isfirstDayOrEndDay === '0'}}">{{item2.thisDayStartTime}}</text>
<text a:elif="{{item2.isfirstDayOrEndDay && item2.isfirstDayOrEndDay === '1'}}">全天</text>
<text a:elif="{{item2.isfirstDayOrEndDay && item2.isfirstDayOrEndDay === '2'}}">直到{{item2.thisDayEndTime}}</text>
<text a:else>{{item2.thisDayStartTime}} - {{item2.thisDayEndTime}}</text>
</view>
</view>
</block>
<block a:elif="{{item.type == 'today'}}">
<view class="date" id="{{item.value.dateStr}}">
<view class="dateTime {{item.isThisDay}}">
<view>
今天
</view>
<text>{{item.value.day}}</text>
</view>
<view class="dataSchedule">
<!--<view class="thisDayLine thisDayHavaMeeting" style="margin-bottom: 7.5rpx"></view> -->
<view a:for="{{item.value.value}}" a:for-item="item2" data-item="{{item2}}" class="{{ item2.isBeOverdue ? 'overdue' : item2.confirmAttendance === 0 ? 'cancel' : '' }}" onTap="nextDetail">
<view class="dataScheduleName">
<text>{{item2.title}}{{item2.isfirstDayOrEndDay ? `(第${item2.isFewDays}天,共${item2.duration}天)` : '' }}</text>
</view>
<view class="dataScheduleTime">
<text a:if="{{item2.isfirstDayOrEndDay && item2.isfirstDayOrEndDay === '0'}}">{{item2.thisDayStartTime}}</text>
<text a:elif="{{item2.isfirstDayOrEndDay && item2.isfirstDayOrEndDay === '1'}}">全天</text>
<text a:elif="{{item2.isfirstDayOrEndDay && item2.isfirstDayOrEndDay === '2'}}">直到{{item2.thisDayEndTime}}</text>
<text a:else>{{item2.thisDayStartTime}} - {{item2.thisDayEndTime}}</text>
</view>
</view>
</view>
</view>
</view>
</block>
<block a:elif="{{item.type == 'today'}}">
<view class="date" id="{{item.value.dateStr}}">
<view class="dateTime {{item.isThisDay}}">
<view>
今天
</view>
</block>
<block a:elif="{{item.type == 'thisDay'}}">
<view class="date" id="{{item.value.dateStr}}">
<view class="dateTime thisDay">
<view>
{{item.value.week}}
</view>
<text>{{item.value.day}}</text>
<text>{{item.value.day}}</text>
</view>
<view class="dataSchedule">
<!--<view class="thisDayLine thisDayHavaMeeting" style="margin-bottom: 7.5rpx"></view> -->
<view a:for="{{item.value.value}}" a:for-item="item2" data-item="{{item2}}" class="{{ item2.isBeOverdue ? 'overdue' : item2.confirmAttendance === 0 ? 'cancel' : '' }}" onTap="nextDetail">
<view class="dataScheduleName">
<text>{{item2.title}}{{item2.isfirstDayOrEndDay ? `(第${item2.isFewDays}天,共${item2.duration}天)` : '' }}</text>
</view>
<view class="NoSchedule">
<view>
<text>暂无日程安排,</text>
<text onTap="nextPage">创建日程</text>
</view>
<!--<view class="thisDayLine"></view> -->
<view class="dataScheduleTime">
<text a:if="{{item2.isfirstDayOrEndDay && item2.isfirstDayOrEndDay === '0'}}">{{item2.thisDayStartTime}}</text>
<text a:elif="{{item2.isfirstDayOrEndDay && item2.isfirstDayOrEndDay === '1'}}">全天</text>
<text a:elif="{{item2.isfirstDayOrEndDay && item2.isfirstDayOrEndDay === '2'}}">直到{{item2.thisDayEndTime}}</text>
<text a:else>{{item2.thisDayStartTime}} - {{item2.thisDayEndTime}}</text>
</view>
</view>
</block>
</block>
</view>
</view>
</block>
</scroll-view>
</view>
<view class="startPage" a:else>
<image mode="scaleToFill" src="../../assests/startPage.png"/>
<view class="startText">
<text class="text1">开会有益</text>
<text>快乐工作</text>
</view>
</view>
</view>
<block a:elif="{{item.type == 'thisDay'}}">
<view class="date" id="{{item.value.dateStr}}">
<view class="dateTime thisDay">
<view>
{{item.value.week}}
</view>
<text>{{item.value.day}}</text>
</view>
<view class="NoSchedule">
<view>
<text>暂无日程安排,</text>
<text onTap="nextPage">创建日程</text>
</view>
<!--<view class="thisDayLine"></view> -->
</view>
</view>
</block>
</block>
</block>
</scroll-view>
<popup show="{{show}}" onClose="closePop" position="left">
<view class="sidebarContent" catchTap="preventSort">
<view class="sidebarLogo">
......
......@@ -37,11 +37,10 @@ create.Component({
this.update();
this.getDate();
}
},
didUnmount() { },
didUnmount() {},
methods: {
getDate: throttle(function (e) {
getDate: throttle(function(e) {
let data = {
startTime: "2020-01-01 00:00:00",
endTime: "2025-12-30 23:59:59"
......@@ -69,7 +68,6 @@ create.Component({
todayStr: finalDate.toLocaleDateString(),
thisYear: year,
maxYear: year,
canClick: true,
startPageOnShow: true,
isFirstLoad: false
});
......@@ -77,7 +75,7 @@ create.Component({
);
});
}, 1000),
nextDetail: throttle(function (e) {
nextDetail: throttle(function(e) {
let item = e.target.dataset.item;
dd.navigateTo({
url: `./../meetingDetail/meetingDetail?scheduleItem=${JSON.stringify(
......@@ -129,15 +127,25 @@ create.Component({
// TO DO 判断所获取的时间区间
// 将会议的年,月,日拆分,时分拆分,生成rrules规则
let initialTime = item.initialTime.split("-"); //
let initialTimeDate = new Date(parseInt(initialTime[0]), parseInt(initialTime[1]) - 1, parseInt(initialTime[2]));
initialTimeDate.setDate(initialTimeDate.getDate() - 1)
console.log(initialTimeDate.toLocaleDateString())
let initialTimeDateyear = initialTimeDate.getFullYear()
let initialTimeDatemonth = initialTimeDate.getMonth() + 1 < 10 ? '0' + (initialTimeDate.getMonth() + 1) : initialTimeDate.getMonth() + 1
let initialTimeDateday = initialTimeDate.getDate() < 10 ? '0' + initialTimeDate.getDate() : initialTimeDate.getDate()
let initialTimeDate = new Date(
parseInt(initialTime[0]),
parseInt(initialTime[1]) - 1,
parseInt(initialTime[2])
);
initialTimeDate.setDate(initialTimeDate.getDate() - 1);
console.log(initialTimeDate.toLocaleDateString());
let initialTimeDateyear = initialTimeDate.getFullYear();
let initialTimeDatemonth =
initialTimeDate.getMonth() + 1 < 10
? "0" + (initialTimeDate.getMonth() + 1)
: initialTimeDate.getMonth() + 1;
let initialTimeDateday =
initialTimeDate.getDate() < 10
? "0" + initialTimeDate.getDate()
: initialTimeDate.getDate();
let startTimeList = item.startTime.split(":");
let DTSTART = `${initialTimeDateyear}${initialTimeDatemonth}${initialTimeDateday}T${startTimeList[0]}${startTimeList[1]}00Z`;
console.log(DTSTART)
console.log(DTSTART);
let rule = RRule.fromString(
`${item.recurrenceModel.recurrenceRule};DTSTART=${DTSTART}`
);
......@@ -192,8 +200,8 @@ create.Component({
item.recurrenceModel.startTime;
let endTime = new Date(
getFormatDate(item2, "yyyyMMdd") +
" " +
item.recurrenceModel.startTime
" " +
item.recurrenceModel.startTime
);
endTime.setMinutes(
endTime.getMinutes() + item.recurrenceModel.duration
......@@ -228,7 +236,7 @@ create.Component({
);
}
});
scheduleMap.forEach(function (value, key, map) {
scheduleMap.forEach(function(value, key, map) {
scheduleList.push(value);
});
return scheduleList;
......@@ -310,9 +318,9 @@ create.Component({
thisDayEndTime: AllScheduleList[y].endTime.slice(11, 16),
isBeOverdue:
new Date().getTime() >
new Date(
AllScheduleList[y].endTime.replace(/-/g, "/")
).getTime()
new Date(
AllScheduleList[y].endTime.replace(/-/g, "/")
).getTime()
? true
: false
});
......@@ -347,9 +355,9 @@ create.Component({
duration: count + 1,
isBeOverdue:
new Date().getTime() >
new Date(
AllScheduleList[y].endTime.replace(/-/g, "/")
).getTime()
new Date(
AllScheduleList[y].endTime.replace(/-/g, "/")
).getTime()
? true
: false
});
......@@ -366,7 +374,7 @@ create.Component({
value: year
});
let thisDay = new Date().toLocaleDateString();
DateMap.forEach(function (value, key, map) {
DateMap.forEach(function(value, key, map) {
if (
new Date(key).getDay() === 0 &&
that.count(
......@@ -392,7 +400,7 @@ create.Component({
type: "week",
value: `第${listWeek}周,${rangeMonth1 + 1}${rangeDay1}日 - ${
rangeMonth2 == rangeMonth1 ? "" : rangeMonth2 + 1 + "月"
}${rangeDay2}日`,
}${rangeDay2}日`,
dayStr: key
});
}
......@@ -408,7 +416,7 @@ create.Component({
type: "week",
value: `第${listWeek}周,${rangeMonth1 + 1}${rangeDay1}日 - ${
rangeMonth2 == rangeMonth1 ? "" : rangeMonth2 + 1 + "月"
}${rangeDay2}日`,
}${rangeDay2}日`,
dayStr: key
});
}
......@@ -430,7 +438,7 @@ create.Component({
type: "week",
value: `第${listWeek}周,${rangeMonth1 + 1}${rangeDay1}日 - ${
rangeMonth2 == rangeMonth1 ? "" : rangeMonth2 + 1 + "月"
}${rangeDay2}日`,
}${rangeDay2}日`,
dayStr: key
});
}
......
......@@ -6,7 +6,9 @@ Component({
props: {
isCanEdit: true
},
didMount() {},
didMount() {
console.log(this.props);
},
didUpdate() {
if (this.props.taskList.id === 108) {
console.log(this.props);
......
......@@ -10,8 +10,7 @@
<view onTap="changeTabBar" data-tabbar='0'>
<view class="tabBarView {{tabBarIndex === '0' ? 'ischooseTabBar' : ''}}">
<text class="iconfont iconicon_dynamic"></text>
<text>动态{{$data.indexNeedUpdate}}
</text>
<text>动态</text>
</view>
</view>
<view onTap="changeTabBar" data-tabbar='1'>
......
......@@ -3,13 +3,14 @@ import create from "dd-store";
create.Page({
data: {
tabBarIndex: "0",
$data: null
$data: null,
},
onLoad() {
},
onLoad() { },
onShow() {
setTimeout(res => {
this.update();
}, 100)
}, 100);
},
// 修改tabBar
changeTabBar(e) {
......
......@@ -14,13 +14,13 @@ export function throttle(fn, gapTime) {
}
export function debounce(fn, delay) {
let timeout = null;
return function () {
clearTimeout(timeout);
timeout = setTimeout(() => {
fn.apply(this, arguments);
}, delay);
};
let timeout = null;
return function() {
clearTimeout(timeout);
timeout = setTimeout(() => {
fn.apply(this, arguments);
}, delay);
};
}
// 判断时间 刚刚 五分钟以内 十分钟以内 正常时间年月日
......@@ -141,3 +141,60 @@ export function getCurrentMonthLast(date) {
}
return date.getFullYear() + "-" + month + "-" + day;
}
// 对象数组去重
export function uniqueObject(arr) {
//存放的是字符串形式的数组。
var tempArr = [];
//将数组对象转成数组字符串。
var newStr = arrToString(arr);
newStr.sort();
//先放置第一个
var temp = newStr[0];
tempArr.push(temp);
// 数组去重
for (var i = 1; i < newStr.length; i++) {
if (newStr[i] !== temp) {
temp = newStr[i]; //放置到集合里面。
tempArr.push(newStr[i]);
}
}
//上面,集合还是字符串形式的数组,需要转换成json对象的形式。
var newArr = [];
// 新数组字符串转成数组对象
for (var i = 0; i < tempArr.length; i++) {
newArr.push(JSON.parse(tempArr[i]));
}
return newArr;
}
function arrToString(arr) {
var newArr = [];
if (arr.length !== 0) {
for (var i = 0; i < arr.length; i++) {
//对每一个对象数据进行处理。
//将每一个对象里面的属性key 进行重新排序,变成新的对象。
var thisObj = sortObject(arr[i]);
//将json对象,转换成字符串
var thisStr = JSON.stringify(thisObj);
// 去除空格及\t空白字符
thisStr = thisStr.replace(/(\s|[\\t])/g, "");
//里面放置字符串
newArr.push(thisStr);
}
}
return newArr;
}
function sortObject(obj) {
var keyArr = [];
for (var item in obj) {
//把所有的key放置在一个数组里面。
keyArr.push(item);
}
keyArr.sort(); //排序,按照字符进行排序。
var newObj = {}; //还是json对象
for (var i = 0; i < keyArr.length; i++) {
newObj[keyArr[i]] = obj[keyArr[i]];
}
//处理成 键=值的数组形式。
//console.log("值是:"+JSON.stringify(newObj));
return newObj;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment