Commit 2e608be9 by liang ce

修改outlook流程

parent 53ee4609
......@@ -11,7 +11,7 @@ export default function http(data) {
method: data.method,
dataType: "json",
data: data.data,
success: function (res) {
success: function(res) {
if (res.data.code == 0) {
resolve(res);
} else {
......@@ -21,7 +21,7 @@ export default function http(data) {
});
}
},
fail: function (res) {
fail: function(res) {
dd.alert({
content: "网络异常",
buttonText: "确定"
......@@ -53,10 +53,10 @@ export default function http(data) {
method: data.method,
data: data.data,
dataType: "json",
success: function (res) {
success: function(res) {
resolve(res);
},
fail: function (res) {
fail: function(res) {
rejects(res);
}
});
......
......@@ -310,3 +310,11 @@ export function authorizationCodeReplacementToken(data) {
url: `https://third-authentication-beta.mingwork.com/microsoft/authorizationCodeReplacementToken`
});
}
// 发送给后端outlook code
export function getThirdUserPlatForm(data) {
return $http({
method: "get",
data: data,
url: `/admin/third/user/getThirdUserPlatForm`
});
}
......@@ -11,7 +11,8 @@
"pages/uploadFile/uploadFile",
"pages/participantsDetail/participantsDetail",
"pages/applicationDetails/applicationDetails",
"pages/attendeeList/attendeeList"
"pages/attendeeList/attendeeList",
"pages/outlookDetails/outlookDetails"
],
"window": {
"allowsBounceVertical": "YES"
......
......@@ -91,10 +91,10 @@
color: rgba(27, 38, 61, .5)
}
.Outlook {
.outlook {
background: url(../../assests/outlookLogo.png) center /100% 100%;
}
.Zoom {
.zoom {
background: url(../../assests/zoomLogo.png) center /100% 100%;
}
\ No newline at end of file
......@@ -4,17 +4,17 @@
<template is="avater" data="{{item: userInfo}}"/>
<view>{{ userInfo.username }}</view>
</view>
<view class="hasAssociated">
<view class="hasAssociated" a:if="{{relatedAppList.length === 1}}">
<view class="associated">
已关联应用
</view>
<view class="applicationList">
<view class="applicationLogo Zoom">
<view class="applicationList" a:for="{{relatedAppList}}" a:if="{{item.platform !== 'dingTalk'}}">
<view class="applicationLogo {{item.platform}}">
</view>
<view class="applicationMsg">
<view>
<view>
Outlook日历
{{item.thirdUserIdentify}}
</view>
<view>
支持会议日程双向同步,实时同步日程信息等
......@@ -26,12 +26,12 @@
</view>
</view>
</view>
<view class="unAssociated">
<view class="unAssociated" a:if="{{relatedAppList.length === 3}}">
<view class="associated">
可关联应用
</view>
<view class="applicationList">
<view class="applicationLogo Outlook">
<view class="applicationList" a:if="{{relatedAppPlatformList.indexOf('outlook') === -1}}">
<view class="applicationLogo outlook">
</view>
<view class="applicationMsg" catchTap="bindingOutlook">
<view>
......@@ -47,5 +47,22 @@
</view>
</view>
</view>
<view class="applicationList" a:if="{{relatedAppPlatformList.indexOf('zoom') === -1}}">
<view class="applicationLogo zoom">
</view>
<view class="applicationMsg">
<view>
<view>
Zoom
</view>
<view>
支持快速发起音视频会议
</view>
</view>
<view class="operateIcon">
<text class="iconfont iconright"></text>
</view>
</view>
</view>
</view>
</view>
\ No newline at end of file
Component({
import { getThirdUserPlatForm } from "../../api/request";
import create from "dd-store";
create.Component({
mixins: [],
data: {
userInfo: {}
$data: null,
userInfo: {},
relatedAppList: [],
relatedAppPlatformList: []
},
props: {},
didMount() {
......@@ -9,9 +14,27 @@ Component({
userInfo: JSON.parse(getApp().globalData.userInfo)
});
},
didUpdate() {},
didUpdate() {
if (this.$store.data.relatedAppNeedUpdate) {
this.$store.data.relatedAppNeedUpdate = false;
this.update();
this.getDate();
}
},
didUnmount() {},
methods: {
getDate() {
getThirdUserPlatForm().then(res => {
let relatedAppPlatformList = [];
res.data.data.forEach(item => {
relatedAppPlatformList.push(item.platform);
});
this.setData({
relatedAppList: res.data.data,
relatedAppPlatformList: relatedAppPlatformList
});
});
},
preventSort() {
return false;
},
......
<web-view id="web-view-1" src="{{url}}" onMessage="test"></web-view>
\ No newline at end of file
<web-view id="web-view-1" src="{{url}}" onMessage="test">
</web-view>
\ No newline at end of file
......@@ -2,8 +2,10 @@ import {
getOutlookUrl,
authorizationCodeReplacementToken
} from "../../api/request";
Page({
import create from "dd-store";
create.Page({
data: {
$data: null,
url: ""
},
onLoad() {
......@@ -16,12 +18,20 @@ Page({
});
},
test(e) {
const code = e.detail.code;
console.log(code);
const data = {
code: code,
state: `${getApp().globalData.userid},${dd.corpId}`
};
authorizationCodeReplacementToken(data).then(res => {
console.log(res);
if (res.data.data) {
this.$store.data.relatedAppNeedUpdate = true;
this.update();
dd.navigateBack({
delta: 1
});
}
});
}
});
......@@ -7,7 +7,7 @@
left: 0;
top: 0;
z-index: 99;
border-bottom: 1px solid rgba(25, 31, 37, 0.12);
border-bottom: 2rpx solid rgba(25, 31, 37, 0.12);
font-size: 26rpx;
letter-spacing: -0.31rpx;
height: 96rpx;
......@@ -107,11 +107,7 @@
height: 24rpx;
width: 24rpx;
border-radius: 2rpx;
box-sizing: border-box;
margin-top: 6rpx;
margin-right: 6rpx;
background: #F3F6FA;
border: 1px solid rgba(27, 38, 61, 0.10);
margin: 2rpx;
}
.reserveRoomTimeBarBg>view:nth-of-type(47), .reserveRoomTimeBarBg>view:nth-of-type(48) {
......@@ -124,12 +120,12 @@
.expired {
background: url(../../assests/cancel.png) center /100% 100% !important;
border: 1px solid rgba(27, 38, 61, 0.04) !important;
border: 2rpx solid rgba(27, 38, 61, 0.04) !important;
}
.reservation {
background: #F3F6FA!important;
border: 1px solid rgba(27, 38, 61, 0.1) !important;
border: 2rpx solid rgba(27, 38, 61, 0.1) !important;
}
.occupied {
......@@ -144,7 +140,7 @@
.reserveRoomTimeBarNum {
display: flex;
margin-top: 12rpx;
margin-top: 10rpx;
font-size: 20rpx;
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
......@@ -153,9 +149,7 @@
.reserveRoomTimeBarNum>view {
text-align: center;
margin-right: 6rpx;
flex: 1;
width: 24rpx;
}
/* 弹框的样式 */
......@@ -163,18 +157,23 @@
.modalContent, .calendarMoadl {
width: 100%;
height: 732rpx;
overflow: hidden;
margin-top: 10rpx;
}
.modalContent {
position: relative;
}
.modalHeader {
height: 32rpx;
line-height: 1;
position: relative;
right: 32rpx;
top: -32rpx;
font-size: 32rpx;
padding: 0 32rpx;
text-align: right;
color: #0A0A0A;
box-sizing: border-box;
z-index: 99999;
height: 32rpx;
}
.modalHeader>view {
......@@ -184,7 +183,7 @@
.changeDay {
width: 100%;
border-bottom: 1px solid rgba(25, 31, 37, 0.12);
border-bottom: 2rpx solid rgba(25, 31, 37, 0.12);
font-size: 30rpx;
text-align: center;
display: flex;
......@@ -248,7 +247,7 @@
height: 100rpx;
line-height: 100rpx;
box-sizing: border-box;
border-bottom: 1px solid rgba(25, 31, 37, 0.12);
border-bottom: 2rpx solid rgba(25, 31, 37, 0.12);
}
.OccupyTimeList>view:nth-of-type(2) view {
......
......@@ -4,9 +4,9 @@
<view class="iconfont iconicon_open"></view>
</view>
</view>
<scroll-view scroll-y="{{canScroll}}" class="roomScrollView">
<view class="roomScrollView">
<view class="reserveMeeting">
<view class="meetingRoomContent" a:for="{{reserveRoomList}}" data-roomid="{{item.meetingRoomId}}" data-roomname="{{item.meetingRoomFullName}}" onTap="changeRoomTime">
<view class="meetingRoomContent" a:for="{{reserveRoomList}}" data-roomid="{{item.meetingRoomId}}" data-roomname="{{item.name}}" onTap="changeRoomTime">
<view class="roomMessage">
<view class="reserveRoomMsg">
<view class="reserveRoomTitle">
......@@ -50,67 +50,67 @@
<view class="noRoomTip">当前暂无会议室</view>
</view>
</view>
</scroll-view>
<popup show="{{isShowModal}}" onClose="onCancel" position="bottom">
<view a:if="{{!isShowCalendar}}" class="modalContent">
<view class="modalHeader">
<text onTap="onDetermine">确定</text>
</view>
<view class="modalTimeSlot">
<text a:if="{{!modalFooter.startTime || !modalFooter.endTime}}">请选择会议时间</text>
<text a:if="{{modalFooter.startTime && modalFooter.endTime}}">{{modalFooter.startTime}}至{{modalFooter.isOneDay ? modalFooter.endTime.substr(11,16):modalFooter.endTime}} 共{{modalFooter.allMinutes}}分钟</text>
</view>
<view class="changeDay">
<view class="{{dataNum == '0' ? 'dataNumSelected' : ''}}" onTap="chooseDate" data-num="0">
<view>{{TimeSlot.todayTime.split('/')[1]}}月{{TimeSlot.todayTime.split('/')[2]}}日</view>
<view>今天</view>
</view>
<view class="{{dataNum == '1' ? 'dataNumSelected' : ''}}" onTap="chooseDate" data-num="1">
<view>{{TimeSlot.tomorrowTime.split('/')[1]}}月{{TimeSlot.tomorrowTime.split('/')[2]}}日</view>
<view>明天</view>
</view>
<view class="{{dataNum == '2' ? 'dataNumSelected' : ''}}" onTap="chooseDate" data-num="2">
<view>{{TimeSlot.afterTomorrowTime.split('/')[1]}}月{{TimeSlot.afterTomorrowTime.split('/')[2]}}日</view>
<view>后天</view>
</view>
<view class="{{dataNum == '3' ? 'dataNumSelected' : ''}}" onTap="chooseDate" data-num="3">
<view>
自定义日期
<view>
<popup show="{{isShowModal}}" onClose="onCancel" position="bottom">
<view a:if="{{!isShowCalendar}}" class="modalContent">
<view class="modalHeader" onTap="onDetermine">
确定
</view>
<view>
<text a:if="{{dataNum == '3'}}">{{meetingTime.date.split('/')[1]}}月{{meetingTime.date.split('/')[2]}}日</text>
<view class="modalTimeSlot">
<text a:if="{{!modalFooter.startTime || !modalFooter.endTime}}">请选择会议时间</text>
<text a:if="{{modalFooter.startTime && modalFooter.endTime}}">{{modalFooter.startTime}}至{{modalFooter.isOneDay ? modalFooter.endTime.substr(11,16):modalFooter.endTime}} 共{{modalFooter.allMinutes}}分钟</text>
</view>
</view>
</view>
<scroll-view scroll-y='{{true}}' class="modalOccupyTimeSlot" scroll-into-view="{{toThisTime}}">
<view class="OccupyTimeList" a:for="{{modalList}}" data-index="{{index}}" onTap="onChangeModalTime" id="{{item.reserveStartTime.substr(11,15)}}">
<view>
<view a:if="{{item.status==='BeOverdue'}}" class="beOverdue">
<text class="iconfont iconicon_Agreed1"></text>
<view class="changeDay">
<view class="{{dataNum == '0' ? 'dataNumSelected' : ''}}" onTap="chooseDate" data-num="0">
<view>{{TimeSlot.todayTime.split('/')[1]}}月{{TimeSlot.todayTime.split('/')[2]}}日</view>
<view>今天</view>
</view>
<view a:elif="{{item.status==='Uncheck'}}" class="Unchecked">
<text class="iconfont iconicon_uncheck"></text>
<view class="{{dataNum == '1' ? 'dataNumSelected' : ''}}" onTap="chooseDate" data-num="1">
<view>{{TimeSlot.tomorrowTime.split('/')[1]}}月{{TimeSlot.tomorrowTime.split('/')[2]}}日</view>
<view>明天</view>
</view>
<view a:elif="{{item.status==='checked'}}" class="checked">
<text class="iconfont iconicon_Agreed1"></text>
<view class="{{dataNum == '2' ? 'dataNumSelected' : ''}}" onTap="chooseDate" data-num="2">
<view>{{TimeSlot.afterTomorrowTime.split('/')[1]}}月{{TimeSlot.afterTomorrowTime.split('/')[2]}}日</view>
<view>后天</view>
</view>
<view class="{{dataNum == '3' ? 'dataNumSelected' : ''}}" onTap="chooseDate" data-num="3">
<view>
自定义日期
</view>
<view>
<text a:if="{{dataNum == '3'}}">{{meetingTime.date.split('/')[1]}}月{{meetingTime.date.split('/')[2]}}日</text>
</view>
</view>
</view>
<view>
<view>{{item.reserveStartTime.substr(10,15)}} ~ {{item.reserveEndTime.substr(10,15)}}</view>
<view class="expiredStatus" a:if="{{item.reserveStatus === 'expired'}}">
<scroll-view scroll-y='{{true}}' class="modalOccupyTimeSlot" scroll-into-view="{{toThisTime}}">
<view class="OccupyTimeList" a:for="{{modalList}}" data-index="{{index}}" onTap="onChangeModalTime" id="{{item.reserveStartTime.substr(11,15)}}">
<view>
<view a:if="{{item.status==='BeOverdue'}}" class="beOverdue">
<text class="iconfont iconicon_Agreed1"></text>
</view>
<view a:elif="{{item.status==='Uncheck'}}" class="Unchecked">
<text class="iconfont iconicon_uncheck"></text>
</view>
<view a:elif="{{item.status==='checked'}}" class="checked">
<text class="iconfont iconicon_Agreed1"></text>
</view>
</view>
<view>
<view>{{item.reserveStartTime.substr(10,15)}} ~ {{item.reserveEndTime.substr(10,15)}}</view>
<view class="expiredStatus" a:if="{{item.reserveStatus === 'expired'}}">
已过期
</view>
<view class="occupiedStatus" a:if="{{item.reserveStatus === 'occupied'}}">
</view>
<view class="occupiedStatus" a:if="{{item.reserveStatus === 'occupied'}}">
已被{{item.scheduleList[0].organizerName}}预定
</view>
</view>
</view>
</view>
</scroll-view>
</view>
</scroll-view>
</view>
<view class="calendarMoadl" a:else>
<view class="calendarTip">
<view class="calendarMoadl" a:else>
<view class="calendarTip">
自定义时间
</view>
<calendar type="single" haveYear="{{false}}" selectedDate="{{meetingTime.date}}" onSelect="handleSelect" onMonthChange="onMonthChange" onYearChange="onYearChange" onSelectHasDisableDate="onSelectHasDisableDate" />
</view>
</popup>
\ No newline at end of file
</view>
<calendar type="single" haveYear="{{false}}" selectedDate="{{meetingTime.date}}" onSelect="handleSelect" onMonthChange="onMonthChange" onYearChange="onYearChange" onSelectHasDisableDate="onSelectHasDisableDate" />
</view>
</popup>
\ No newline at end of file
......@@ -38,8 +38,7 @@ create.Page({
20,
21,
22,
23,
24
23
],
search: {
category: "",
......@@ -74,8 +73,8 @@ create.Page({
}
},
onLoad(query) {
let date = new Date(this.$store.data.startTime.replace(/-/g, "/"));
// let date = new Date();
// let date = new Date(this.$store.data.startTime.replace(/-/g, "/"));
let date = new Date();
let year = date.getFullYear();
let month = padZero(date.getMonth() + 1);
let day = padZero(date.getDate());
......@@ -1216,18 +1215,19 @@ create.Page({
this.$store.data.locationName = this.data.meetingTime.meetingRoomName;
this.$store.data.roomId = this.data.meetingTime.meetingRoomId;
}
if (
this.$store.data.locationName !=
this.$store.data.originalData.location.locationName ||
this.$store.data.roomId != this.$store.data.originalData.meetingRoomId
) {
(this.$store.data.updateInfo = {
updateType: "modify_location",
isUpate: true
}),
this.update();
if (this.$store.data.originalData && this.$store.data.locationName) {
if (
this.$store.data.locationName !=
this.$store.data.originalData.location.locationName ||
this.$store.data.roomId != this.$store.data.originalData.meetingRoomId
) {
(this.$store.data.updateInfo = {
updateType: "modify_location",
isUpate: true
}),
this.update();
}
}
dd.navigateBack({
delta: 2
});
......
......@@ -24,7 +24,7 @@
<text>{{item.capacityNum}}</text>
</view>
<view class="equipment" a:if="{{item.equipFacilityLabelList}}">
<text class="iconfont iconshebei icon_facility1" style="margin-right: 9rpx;"></text>
<text class="iconfont iconshebei iconicon_facility1" style="margin-right: 9rpx;"></text>
<text a:for="{{item.equipFacilityLabelList}}" a:for-item="equipmentList">{{equipmentList.name}}</text>
</view>
</view>
......
class Store {
data = {
locationName: '',
participatorList: [],
participatorUserId: [], // 参会人的userId
roomId: '',
startTime: '',
endTime: '',
originUsers: [],
originUsersId: [],
originalData: null,
indexNeedUpdate: false,
tabBarIndex: '0',
updateInfo: {
updateType: '',
isUpate: false
},
data = {
locationName: "",
participatorList: [],
participatorUserId: [], // 参会人的userId
roomId: "",
startTime: "",
endTime: "",
originUsers: [],
originUsersId: [],
originalData: null,
indexNeedUpdate: false,
relatedAppNeedUpdate: false,
tabBarIndex: "0",
updateInfo: {
updateType: "",
isUpate: false
}
};
}
export default new Store()
\ No newline at end of file
export default new Store();
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