Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
schedule
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
fengzhaoyu
schedule
Commits
c7d0b174
Commit
c7d0b174
authored
Apr 01, 2020
by
liang ce
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改首页动态
parent
d0041ee4
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
217 additions
and
161 deletions
+217
-161
myDynamic.axml
PageComponents/myDynamic/myDynamic.axml
+3
-3
myDynamic.js
PageComponents/myDynamic/myDynamic.js
+31
-31
scheduleList.axml
PageComponents/scheduleList/scheduleList.axml
+78
-89
scheduleList.js
PageComponents/scheduleList/scheduleList.js
+33
-25
taskList.js
components/taskList/taskList.js
+3
-1
index.axml
pages/index/index.axml
+1
-2
index.js
pages/index/index.js
+4
-3
utils.js
utils/utils.js
+64
-7
No files found.
PageComponents/myDynamic/myDynamic.axml
View file @
c7d0b174
...
...
@@ -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>
...
...
PageComponents/myDynamic/myDynamic.js
View file @
c7d0b174
...
...
@@ -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
)
{
...
...
PageComponents/scheduleList/scheduleList.axml
View file @
c7d0b174
...
...
@@ -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">
...
...
PageComponents/scheduleList/scheduleList.js
View file @
c7d0b174
...
...
@@ -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
});
}
...
...
components/taskList/taskList.js
View file @
c7d0b174
...
...
@@ -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
);
...
...
pages/index/index.axml
View file @
c7d0b174
...
...
@@ -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'>
...
...
pages/index/index.js
View file @
c7d0b174
...
...
@@ -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
)
{
...
...
utils/utils.js
View file @
c7d0b174
...
...
@@ -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
;
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment