Commit c273514c by xiexiaoqin

merge

parent 863068f5
......@@ -18,31 +18,34 @@ export default async function login() {
method: 'POST',
dataType: 'json',
success: function (res) {
const { oapiUser } = res.data.data;
getApp().globalData.token = res.data.data.accessToken.access_token;
getApp().globalData.name = res.data.data.oapiUser.name;
getApp().globalData.userid = res.data.data.oapiUser.userid;
getApp().globalData.avatar = res.data.data.oapiUser.avatar;
getApp().globalData.userInfo = JSON.stringify({
username: oapiUser.name,
userId: oapiUser.userid,
headUrl: oapiUser.avatar,
platform: "dingtalk"
});
lock = false;
resolve(res)
if (res.data.code == 0) {
const { oapiUser } = res.data.data;
getApp().globalData.token = res.data.data.accessToken.access_token;
getApp().globalData.name = res.data.data.oapiUser.name;
getApp().globalData.userid = res.data.data.oapiUser.userid;
getApp().globalData.avatar = res.data.data.oapiUser.avatar;
getApp().globalData.userInfo = JSON.stringify({
username: oapiUser.name,
userId: oapiUser.userid,
headUrl: oapiUser.avatar,
platform: "dingtalk"
});
lock = false;
resolve(res)
} else {
lock = false;
reject(res.data);
}
},
fail: function (err) {
lock = false;
reject(err);
console.log('err:' + err);
}
})
},
fail: function (err) {
lock = false;
reject(err);
console.log('fail:' + err);
}
})
})
......@@ -51,7 +54,6 @@ export default async function login() {
async function waitLockRelease(retry) {
for (let i = 0; i < retry; i++) {
if (lock == false) {
console.log(i);
return;
}
await sleep(100);
......
......@@ -138,7 +138,13 @@ export function isParticipate(data) {
url: `/meet/schedule/confirm`
});
}
//会议室详情的获取重复会议动态列表
export function getMeetingRoomRepeatAffairs(groupId, page) {
return $http({
method: "get",
url: `/meet/meeting-log/scheduleTemplateMeetingLogPage?category=2,3&groupId=${groupId}&size=10&current=${page}`
});
}
//会议室详情的获取动态列表
export function getMeetingRoomAffairs(id) {
return $http({
......@@ -201,19 +207,11 @@ export function getOutlookUrl(data) {
method: "POST",
data: "",
url: `/microsoft/getThirdLoginUrl?state=${data}`,
type: 'binding'
type: "binding"
});
}
// 发送给后端outlook code
export function authorizationCodeReplacementToken(data) {
return $http({
method: "get",
data: data,
url: `/microsoft/authorizationCodeReplacementToken`,
type: 'binding'
});
}
// 发送给后端outlook code
// 获取绑定的app
export function getThirdUserPlatForm(data) {
return $http({
method: "get",
......@@ -235,17 +233,7 @@ export function getZoomUrl(data) {
return $http({
method: "get",
data: "",
url: "/zoom/auth",
type: 'binding'
});
}
//
export function sendZoomCode(data) {
return $http({
method: "get",
data: data,
url: "/zoom/notice",
type: 'binding'
url: `/zoom/auth?orgId=${data.orgId}&userId=${data.userId}`,
type: "binding"
});
}
import login from "./login";
export default function xFetch({ url, method, data, type }) {
if (type == 'binding') {
url = `${getApp().globalData.globalUrl2}${url}`
......@@ -14,23 +16,36 @@ export default function xFetch({ url, method, data, type }) {
method: method,
dataType: "json",
data: data,
// timeout: 280,
timeout: 15000,
success: function (res) {
if (res.data.code == 0) {
resolve(res);
} else {
rejects(res);
dd.alert({
content: res.data.msg || "请求数据异常",
buttonText: "确定"
});
if (res.data.code == 401) {
login();
}
alertOnce('请求异常,请重试', rejects);
}
},
fail: function (err) {
rejects({ refresh: true });
console.log(err)
alertOnce('网络异常,请重试', rejects);
}
});
});
}
let alert = false;
function alertOnce(content, rejects) {
if (alert == false) {
dd.alert({
content: content,
buttonText: "确定",
success: () => {
rejects({ refresh: true });
alert = false;
}
});
}
alert = true;
}
\ No newline at end of file
......@@ -10,4 +10,14 @@ view {
.addPaddingBottom {
padding-bottom: 68rpx;
}
.btn {
font-size: 32rpx;
height: 72rpx;
line-height: 72rpx;
border-radius: 48rpx;
text-align: center;
color: #fff;
background: rgba(234, 12, 40, 1);
}
\ No newline at end of file
import { setGlobalStore } from "dd-store";
import exampleStore from "./stores/exampleStore";
import { checkFullScren } from "./utils/checkFullScren";
setGlobalStore(exampleStore);
import login from './api/login';
import login from "./api/login";
App({
onLaunch(options) {
// 第一次打开
// options.query == {number:1}
login();
this.globalData.isFullScren = checkFullScren;
},
onShow(options) {
// 从后台被 scheme 重新打开
// options.query == {number:1}
},
globalData: {
isFullScren: false,
loading: false,
token: "",
avatar: "",
......
......@@ -2,7 +2,7 @@
"pages": [
"pages/index/index",
"pages/meetingRoomList/meetingRoomList",
"pages/bindingApp/bindingApp",
"pages/appDetails/appDetails",
"pages/meetingDetail/meetingDetail",
"pages/excutorList/excutorList",
"pages/createMeeting/createMeeting",
......@@ -11,10 +11,10 @@
"pages/uploadFile/uploadFile",
"pages/participantsDetail/participantsDetail",
"pages/applicationDetails/applicationDetails",
"pages/attendeeList/attendeeList",
"pages/unbindApp/unbindApp"
"pages/attendeeList/attendeeList"
],
"window": {
"allowsBounceVertical": "YES"
}
},
"pullRefresh": false
}
\ No newline at end of file
......@@ -11,17 +11,17 @@
<view class="applicationList" a:for="{{relatedAppList}}" a:if="{{item.platform !== 'dingTalk'}}">
<view class="applicationLogo {{item.platform}}">
</view>
<view class="applicationMsg" data-item="{{item}}" catchTap="toAppDetails">
<view class="applicationMsg" data-name="{{item.userName}}" data-platform="{{item.platform}}" catchTap="toAppDetails">
<view>
<view>
{{item.thirdUserIdentify}}
{{item.userName}}
</view>
<view>
支持会议日程双向同步,实时同步日程信息等
</view>
</view>
<view class="operateIcon">
<text class="iconfont iconicon_setting1"></text>
<text class="iconfont iconright"></text>
</view>
</view>
</view>
......@@ -33,7 +33,7 @@
<view class="applicationList" a:if="{{relatedAppPlatformList.indexOf('outlook') === -1}}">
<view class="applicationLogo outlook">
</view>
<view class="applicationMsg" data-platform="outlook" catchTap="bindingApp">
<view class="applicationMsg" data-name="" data-platform="outlook" catchTap="toAppDetails">
<view>
<view>
Outlook日历
......@@ -50,7 +50,7 @@
<view class="applicationList" a:if="{{relatedAppPlatformList.indexOf('zoom') === -1}}">
<view class="applicationLogo zoom">
</view>
<view class="applicationMsg" data-platform="zoom" catchTap="bindingApp">
<view class="applicationMsg" data-name="" data-platform="zoom" catchTap="toAppDetails">
<view>
<view>
Zoom
......
......@@ -34,6 +34,11 @@
font-size: 34rpx;
}
.iconicon_attender {
position: relative;
top: 4rpx;
}
.participator-title {
color: rgba(25, 31, 37, 1);
font-size: 34rpx;
......
.platformMsg {
display: flex;
padding: 26rpx 32rpx;
align-items: center;
background: #FFFFFF;
margin-top: 16rpx;
}
.platformImg {
width: 60rpx;
height: 60rpx;
margin-right: 24rpx;
}
.outlook {
background: url(../../assests/outlookLogo.png) center /100% 100%;
}
.zoom {
background: url(../../assests/zoomLogo.png) center /100% 100%;
}
.title {
font-size: 28rpx;
color: rgba(25, 31, 37, 1);
line-height: 34rpx;
}
.tip {
font-size: 20rpx;
line-height: 26rpx;
color: rgba(25, 31, 37, .56)
}
.bindBtn {
height: 112rpx;
line-height: 112rpx;
text-align: center;
margin-top: 16rpx;
background: #FFFFFF;
}
.binding {
color: rgba(10, 10, 10, 1);
}
.unBinding {
color: rgba(242, 86, 67, 1);
}
.loadingBtn {
color: rgba(10, 10, 10, 0.4) !important;
}
.loadingToast {
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
}
.loadingToast>view {
font-size: 28rpx;
color: #FFFFFF;
padding: 18rpx 26rpx;
border-radius: 40rpx;
background: rgba(0, 0, 0, .59);
display: flex;
justify-content: center;
align-items: center;
}
.loadingToast image {
width: 36rpx;
height: 36rpx;
margin-right: 8rpx;
}
\ No newline at end of file
<view class="relatedAppPage">
<view class="platformMsg" a:if="{{platform === 'outlook'}}">
<view class="platformImg {{platform}}">
</view>
<view class="platformName" a:if="{{!name}}">
<view class="title">
Outlook日历
</view>
<view class="tip">
支持会议日程双向同步,实时同步日程信息等
</view>
</view>
<view class="platformName" a:else>
{{name}}
</view>
</view>
<view class="platformMsg" a:if="{{platform === 'zoom'}}">
<view class="platformImg {{platform}}">
</view>
<view class="platformName" a:if="{{!name}}">
<view class="title">
Zoom
</view>
<view class="tip">
支持快速发起音视频会议
</view>
</view>
<view class="platformName" a:else>
{{name ? name : 'outlook'}}
</view>
</view>
<view class="{{isBind ? 'unBinding': 'binding'}} bindBtn {{isLoading ? 'loadingBtn' : ''}}" onTap="{{isBind ? 'showPopup' : 'bindApp'}}">
<text>{{isBind ? '解绑' : '绑定'}}</text>
</view>
</view>
<view class="loadingToast" a:if="{{isLoading}}">
<view a:if="{{bindStatus==='loading'}}">
<image class="fix-img-width-fix" mode="scaleToFill" src="./../../assests/bindLoading.gif"/>
<view>
账号关联中···
</view>
</view>
<view a:elif="{{bindStatus==='success'}}">
<image class="fix-img-width-fix" mode="scaleToFill" src="./../../assests/bindSuccess.png"/>
<view>
关联成功
</view>
</view>
<view a:else>
<image class="fix-img-width-fix" mode="scaleToFill" src="./../../assests/bindFail.png"/>
<view>
关联失败
</view>
</view>
</view>
<selectpopup showSelectPopup="{{showSelectPopup}}" selectPopupList="{{selectPopupList}}" onSelectPopup="onSelectPopup" onSelectPopupCancel="onSelectPopupCancel"></selectpopup>
\ No newline at end of file
import {
getOutlookUrl,
getZoomUrl,
getThirdUserPlatForm,
unbindingApp
} from "../../api/request";
import "dingtalk-jsapi/entry/mobile";
import openLink from "dingtalk-jsapi/api/biz/util/openLink";
import create from "dd-store";
import { fail } from "assert";
let interval = "";
let requestNum = 0;
create.Page({
data: {
$data: null,
url: "",
platform: "",
name: "",
isBind: false,
isLoading: false,
showSelectPopup: false,
selectPopupList: [{ text: "取消关联" }],
bindStatus: "loading"
},
onLoad(e) {
this.setData({
platform: e.platform,
name: e.userName,
isBind: e.userName ? true : false
});
},
onShow() {},
sendRequest() {
let that = this;
interval = setInterval(() => {
if (requestNum >= 180) {
requestNum = 0;
that.setData({
isBind: false,
bindStatus: "fail"
});
setTimeout(() => {
that.setData({
isLoading: false
});
}, 2000);
clearInterval(interval);
}
requestNum++;
getThirdUserPlatForm().then(res => {
let relatedAppPlatformList = [];
res.data.data.forEach(item => {
if (item.platform === this.data.platform) {
this.setData({
name: item.userName,
isBind: true,
bindStatus: "success"
});
setTimeout(() => {
that.setData({
isLoading: false
});
}, 2000);
clearInterval(interval);
this.$store.data.relatedAppNeedUpdate = true;
this.update();
}
});
});
}, 1000);
},
bindApp() {
if (this.data.isLoading) {
return false;
}
this.setData({
isLoading: true,
bindStatus: "loading"
});
this.sendRequest();
if (this.data.platform === "outlook") {
let data = `${getApp().globalData.userid},${dd.corpId}`;
getOutlookUrl(data).then(res => {
openLink({
url: res.data.data
});
});
} else if (this.data.platform === "zoom") {
let data = {
userId: getApp().globalData.userid,
orgId: dd.corpId
};
getZoomUrl(data).then(res => {
openLink({
url: res.data.data
});
});
}
},
unbind() {
unbindingApp(this.data.platform).then(res => {
if (res.data.data) {
this.setData({
name: "",
isBind: false,
showSelectPopup: false
});
this.$store.data.relatedAppNeedUpdate = true;
this.update();
}
});
},
onSelectPopup(e) {
if (e.target.dataset.item.text === "取消关联") {
this.unbind();
}
},
onSelectPopupCancel() {
this.setData({
showSelectPopup: false
});
},
showPopup() {
this.setData({
showSelectPopup: true
});
},
onUnload() {
clearInterval(interval);
}
});
{
"usingComponents": {
"selectpopup": "../../components/selectPopup/selectPopup"
}
}
{
"pullRefresh": false,
"usingComponents": {
"popup": "../../components/popup/index",
"list": "../../components/list/list",
......
@import "../../template/loading/loading.acss";
@import "../../template/affairBlank/index.acss";
@import "../../template/fullScreen/fullScreen.acss";
@import "../../template/refresh/index.acss";
.dynamicBox {
width: 100%;
overflow: hidden;
......@@ -9,6 +10,10 @@
height: 100vh;
}
.dynamicBox_add_padding {
padding-bottom: 188rpx;
}
.dynamicList {
width: 100%;
}
......@@ -100,6 +105,7 @@
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
}
.scroll-lock {
......@@ -191,8 +197,9 @@
margin-bottom: 32rpx;
}
.today {
.date .today {
border-left: 8rpx solid rgba(234, 12, 40, 1);
color: rgba(10, 10, 10, 1) !important;
}
.todayNoData {
......@@ -388,9 +395,9 @@
.iconicon_days {
position: absolute;
left: 10rpx;
left: 9rpx;
top: 12rpx;
font-size: 23rpx;
font-size: 24rpx;
}
.tabBarView .iconicon_days {
......
<import src="../../template/loading/loading.axml"/>
<import src="../../template/fullScreen/fullScreen.axml"/>
<view a:if='{{refresh}}' onTap="onLoad">连接超时,请重试,刷新按钮</view>
<import src="../../template/refresh/index.axml"/>
<template is="refresh" a:if='{{refresh}}' ></template>
<block a:else>
<view hidden="{{$data.tabBarIndex === '1'}}">
<import src="../../template/affairBlank/index.axml"/>
<view class="{{isStopBodyScroll ? 'scroll-lock' : ''}}" onTap="closeSwipe" onTouchStart="closeSwipe" onTouchMove="closeSwipe" onTouchEnd="closeSwipe">
<block a:if="{{!listLoading}}">
<scroll-view a:if="{{dynamicList.length > 0}}" scroll-y="{{true}}" lower-threshold="{{400}}" class="dynamicBox" onScrollToLower="onScrollToLower">
<scroll-view a:if="{{dynamicList.length > 0}}" scroll-y="{{true}}" lower-threshold="{{400}}" class="dynamicBox {{isIPX ? 'dynamicBox_add_padding' : ''}}" onScrollToLower="onScrollToLower">
<view class="dynamicList">
<swipe onSetBodyDisableScroll="setBodyDisableScroll" rightWidth="{{ 78 }}" leftWidth="{{ 0 }}" a:for="{{dynamicList}}" class="dynamicContent" key="{{item.scheduleId}}">
<view class="dynamicDetails">
......@@ -79,7 +80,7 @@
<!-- 天 -->
<block a:elif="{{item.type == 'day' || item.type == 'today'}}">
<view class="date li" id="{{ item.dateStr}}">
<view class="hasDateTitle {{item.type == 'today' && item.hasDateLabel ? 'today' : ''}} {{item.value.isBeOverdue ? 'overdueLabel':''}}">
<view class="hasDateTitle {{item.value.isBeOverdue ? 'overdueLabel':''}} {{item.type == 'today' && item.hasDateLabel ? 'today' : ''}}">
<view>
{{item.week}}
</view>
......@@ -92,7 +93,7 @@
<view class="scheduleTime">
<text a:if="{{item.value.isDaySpan && item.value.isfirstDayOrEndDay === '0'}}">{{item.value.thisDayStartTime}}</text>
<text a:elif="{{item.value.isDaySpan && item.value.isfirstDayOrEndDay === '1'}}">全天</text>
<text a:elif="{{item.value.isDaySpan && item.value.isfirstDayOrEndDay === '2'}}">直到{{item.value.thisDayEndTime}}</text>
<text a:elif="{{item.value.isDaySpan && item.value.isfirstDayOrEndDay === '2'}}">{{ item.value.thisDayEndTime == '00:00' ? '全天' : '直到'+item.value.thisDayEndTime }}</text>
<text a:else>{{item.value.thisDayStartTime}} - {{item.value.thisDayEndTime}}</text>
</view>
</view>
......@@ -148,5 +149,5 @@
<text class="iconfont iconicon_add1"></text>
</view>
</view>
<template is="fullScreen" data="{{isIPX:isFullscreen}}" />
<template is="fullScreen" data="{{isIPX:isIPX}}" />
</view>
\ No newline at end of file
......@@ -36,24 +36,20 @@ export function getExcludeDate(data = []) {
};
}
// 返回跨天数
// 返回跨天数
export function getNextDateList(startTime, endTime) {
let days = 0;
const nextDateList = [];
if (startTime.getDate() !== endTime.getDate()) {
//同一个月
if (startTime.getMonth() == endTime.getMonth()) {
days = endTime.getDate() - startTime.getDate();
}
//跨月
else {
// 一个月份有多少天new Date(year, month, 0).getDate()
const startMonth = new Date(startTime.getFullYear(), startTime.getMonth(), 0).getDate();
days = startMonth - startTime.getDate() + endTime.getDate()
}
} else {
//跨一个月 不考虑
//去掉时分
const firstDate = new Date(startTime.toLocaleDateString());
const secondDate = new Date(endTime.toLocaleDateString());
days = parseInt(Math.abs(firstDate.getTime() - secondDate.getTime()) / (1000 * 60 * 60 * 24));
if (endTime.getHours() == 0 && endTime.getMinutes() == 0) {
days -= 1;
}
//返回跨天的日期数组
for (let i = 0; i <= days; i++) {
const newDate = new Date(startTime);
......
......@@ -2,6 +2,7 @@
.affair-list {
background: #fff;
padding: 48rpx 32rpx 220rpx 32rpx;
/* height: calc(100vh - 200rpx); */
}
.affair-list-margin-top {
......@@ -113,11 +114,13 @@ page {
background: #fff;
z-index: 1;
position: relative;
width: 100%;
padding-bottom: 0;
height: 200rpx;
}
.hideTitle {
font-family: PingFangSC-Medium;
font-family: PingFangSC-Regular;
font-size: 40rpx;
line-height: 56rpx;
color: #1B263D;
......@@ -414,12 +417,14 @@ input {
}
.remindTimeContaint {
height: 100%;
display: inline-block;
max-width: 400rpx;
overflow: scroll;
min-width: 0;
white-space: nowrap;
margin: 0 20rpx;
text-align: center;
overflow: scroll;
}
.remindTimeContaint>text {
......@@ -607,4 +612,18 @@ input {
.addPadding {
padding-bottom: 270rpx;
}
.lineThrough {
text-decoration: line-through;
}
.loading-more {
color: rgba(234, 12, 40, 1);
font-size: 24rpx;
text-align: center;
width: 400rpx;
border-top: 1px solid rgba(239, 242, 245, 1);
padding-top: 32rpx;
margin: 0 auto 50rpx;
}
\ No newline at end of file
......@@ -45,7 +45,7 @@
<view class="noPlace" a:if="{{!$data.locationName}}" onTap="nextPage" data-nextPage="location">
添加地点
</view>
<view class="hasplace" onTap="nextPage" data-nextPage="location" a:else>
<view class="hasplace {{mrReserveStatus === 'Y' ? 'lineThrough' : ''}} " onTap="nextPage" data-nextPage="location" a:else>
{{$data.locationName}}
</view>
<view class=" icon iconfont iconicon_close close" a:if="{{!!$data.locationName&&(currentPeople == organizer)}}" data-close="location" catchTap="close">
......@@ -162,9 +162,9 @@
<view class="remind" catchTap="showPopup" data-type="aheadTime">
<text class="iconfont iconicon_time1"></text>
<text class="remindTimeContaint" a:if="{{aheadTimes.length}}">
<text class="remindTime" a:for="{{comListData.aheadTimesList}}" a:if="{{aheadTimes.includes(item.id)}}">
{{item.text}}
</text>
<block class="remindTime" decode="{{true}}" a:for="{{comListData.aheadTimesList}}" a:if="{{aheadTimes.includes(item.id)}}">
{{item.text}}{{' '}}
</block>
</text>
<text class="noRemind" a:if="{{!aheadTimes.length}}">不提醒</text>
<text class="iconfont iconicon_share"></text>
......@@ -202,10 +202,10 @@
<!-- 动态列表 -->
<import src="../../template/avater/index.axml"/>
<import src="../../template/affairBlank/index.axml"/>
<view class="affair-list {{isExpand? '' : 'affair-list-margin-top'}} {{!isExpand&&$data.participatorList.length>1 ? 'addPadding' : ''}}" onTap="hideFileOperate">
<scroll-view class="affair-list {{isExpand? '' : 'affair-list-margin-top'}} {{!isExpand&&$data.participatorList.length>1 ? 'addPadding' : ''}}" onTap="hideFileOperate" scroll-y="{{true}}" lower-threshold="{{400}}" onScrollToLower="onScrollToLower">
<view a:if="{{!isExpand}}" class="affair-list-title">会议动态</view>
<block a:if="{{!affairLoading}}">
<block a:for="{{affairList}}">
<block a:for="{{affairList}}" key="{{item.id}}">
<view a:if="{{item.category == '3' && item.taskViewList && item.taskViewList.length > 0}}" class='compose-column'>
<view class="avater task-avater">
<text class="iconfont iconicon_task1"></text>
......@@ -224,8 +224,9 @@
</view>
<file-list fileView="{{item.fileView}}" organizer="{{organizer}}" currentPeople="{{currentPeople}}" onDeleteMeetingFile="deleteMeetingFile"/>
</view>
<view a:if="{{item.content}}" class='simple-column'>{{item.content}} {{item.createTime}}</view>
<view a:if="{{item.content && ((item.category == 1 || item.taskViewList && item.taskViewList.length > 0) || ( item.fileView && item.fileView.fileInfos && item.fileView.fileInfos.length > 0 ))}}" class='simple-column'>{{item.content}} {{item.createTime}}</view>
</block>
<view class="loading-more" onTap="loadAffairMore" a:if="{{current < pages}}">加载更多动态...</view>
<view class="affair-placeholder" a:if="{{affairList.length == 1 && affairList[0].logType == 'create_schedule'}}">
<template is="affair-placeholder" data="{{title: '添加文件', tip: '我们不开无准备的会,快来上传会议文件吧。'}}"/>
</view>
......@@ -243,7 +244,7 @@
<!-- 任务修改弹出框 -->
<task-panel a:if="{{pop.type === 'updateTask'}}" action='update' onDeleteTask="deleteTask"/>
</popup>
</view>
</scroll-view>
</view>
</block>
<view class="loading" a:if="{{loading || !getData}}">
......
{
"pullRefresh": false,
"usingComponents": {
"popup": "../../components/popup/index",
"task-list": "../../components/taskList/taskList",
......
......@@ -132,10 +132,12 @@
background: rgba(10, 10, 10, 0.2) !important;
border: 1rpx solid rgba(27, 38, 61, 0.1) !important;
}
.myOccupied {
background: rgba(234, 12, 40, 1) !important;
border: 1rpx solid rgba(27, 38, 61, 0.1) !important;
}
.myReservation {
background: rgba(234, 12, 40, 1);
border: 1rpx solid rgba(27, 38, 61, 0.1);
......@@ -179,11 +181,6 @@
height: 32rpx;
}
.modalHeader>view {
flex: 1;
color: #191F25;
}
.changeDay {
width: 100%;
border-bottom: 2rpx solid rgba(25, 31, 37, 0.12);
......
<view class="searchHeader">
<view class="searchTime">
<view onTap="selectSearchTime">{{search.time.split('-')[0]}}年{{search.time.split('-')[1]}}月{{search.time.split('-')[2]}}日</view>
<view class="iconfont iconicon_open"></view>
<view class="iconfont iconicon_open" onTap="selectSearchTime"></view>
</view>
</view>
<view class="roomScrollView" style="{{canScroll ? '': 'overflow:hidden'}}"">
<view class="roomScrollView" style="{{canScroll ? '': 'overflow:hidden'}}">
<view class="reserveMeeting">
<view class="meetingRoomContent" a:for="{{reserveRoomList}}" data-roomid="{{item.meetingRoomId}}" data-roomname="{{item.name}}" onTap="changeRoomTime">
<view class="roomMessage">
......@@ -55,8 +55,8 @@
<view>
<popup show="{{isShowModal}}" onClose="onCancel" position="bottom">
<view a:if="{{!isShowCalendar}}" class="modalContent">
<view class="modalHeader" onTap="onDetermine">
确定
<view class="modalHeader">
<text onTap="onDetermine">确定</text>
</view>
<view class="modalTimeSlot">
<text a:if="{{!modalFooter.startTime || !modalFooter.endTime}}">请选择会议时间</text>
......
......@@ -3,14 +3,14 @@
<view class="platformImg {{item.platform}}">
</view>
<view class="platformName">
{{item.thirdUserIdentify}}
{{item.userName}}
</view>
</view>
<view class="platformMsg" a:if="{{item.platform === 'zoom'}}">
<view class="platformImg {{item.platform}}">
</view>
<view class="platformName">
{{item.thirdUserIdentify}}
{{item.userName}}
</view>
</view>
<view class="unBinding" onTap="showPopup">
......
.refresh-bg {
position: fixed;
left: 0;
top: 0;
background: #FFFFFF;
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
}
.refresh-btn {
padding: 0 48rpx;
margin-top: 32rpx;
}
\ No newline at end of file
<template name="refresh">
<view class="refresh-bg">
<view>您的网络好像不给力,请重试</view>
<button class="btn refresh-btn" onTap="refresh">刷新</button>
</view>
</template>
\ No newline at end of file
......@@ -7,11 +7,23 @@ dd-store@^1.9.0:
resolved "https://registry.yarnpkg.com/dd-store/-/dd-store-1.9.0.tgz#8f531e28b6991919bc60a17148fa9e1bba142397"
integrity sha512-bhIkQMcHjNTDGG03riSeLp4UfdOBqWqg+qFfqqwAvgBiARrYbrEWU/YVE5tOV6XOqyfozp+MpZP3SaFyOtuUrw==
dingtalk-jsapi@^2.10.3:
version "2.10.3"
resolved "https://registry.yarnpkg.com/dingtalk-jsapi/-/dingtalk-jsapi-2.10.3.tgz#ade5c2f858f4ac41143d294ae172b34efaeb95e2"
integrity sha512-ozfuwWzOKx4qgfs+ijdN2XgylB8xZ4zxetDp4ND272YDD5C9GJLo5GKhsFR6kQ/lnU0WIzBo2rYjEwZKtMrJxw==
dependencies:
promise-polyfill "^7.1.0"
luxon@^1.21.3:
version "1.22.2"
resolved "https://registry.yarnpkg.com/luxon/-/luxon-1.22.2.tgz#799d65cc1ed0ba85b4cb3f7dd38fc08a8d1a6750"
integrity sha512-vq6eSaOOw1fKob+JXwfu0e3/UFUT4G4HTFRJab7dch8J1OdOGW/vXqCiJsY7rm2In+5gKNYx0EtnYT0Tc5V4Qw==
promise-polyfill@^7.1.0:
version "7.1.2"
resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-7.1.2.tgz#ab05301d8c28536301622d69227632269a70ca3b"
integrity sha512-FuEc12/eKqqoRYIGBrUptCBRhobL19PS2U31vMNTfyck1FxPyMfgsXyW4Mav85y/ZN1hop3hOwRlUDok23oYfQ==
rrule@^2.6.4:
version "2.6.4"
resolved "https://registry.yarnpkg.com/rrule/-/rrule-2.6.4.tgz#7f4f31fda12bc7249bb176c891109a9bc448e035"
......
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