提交 ca5def32 authored 作者: zhenglide's avatar zhenglide

初始化

上级 e6dbbd34
流水线 #149 已取消 于阶段
*{
font-size: 26rpx;
}
::-webkit-scrollbar{ display: none;}
page {
flex: 1;
display: flex;
background: #f7f7f7;
}
.page{
width: 734rpx;
height: auto;
overflow: auto;
margin: 0 auto;
}
.item-avatar-xs{
display: flex;
padding: 30rpx 30rpx;
border-bottom: 1rpx solid #eee;
cursor: pointer;
background: #fff;
position:relative;
}
.button{
margin-top: 50rpx;
}
.graySpace{
padding-left: 40rpx;
background: #eee;
font-size: 12px;
min-height: 18rpx;
}
App({
//E应用初始化
onLaunch(options) {
console.log('App Launch', options);
console.log('getSystemInfoSync', dd.getSystemInfoSync());
console.log('SDKVersion', dd.SDKVersion);
this.globalData.corpId = options.query.corpId;
},
//E应用切换到前台
onShow(options) {
// 从后台被 scheme 重新打开
// options.query == {number:1}
},
//全局数据
globalData: {
domain:"https://dd2.ubainsyun.com",
corpId: '',
userId:'',
person:'',
function:'',
keyword:''
}
});
{
"pages": [
"pages/conference/index/index",
"pages/conference/search/search",
"pages/login/login",
"pages/mine/my/my",
"pages/mine/edit/edit",
"pages/meeting/record/record",
"pages/conference/details/details",
"pages/conference/addmeeting/addmeeting",
"pages/conference/visitor/visitor",
"pages/conference/ex_visitor/ex_visitor",
"pages/conference/modifymeeting/modifymeeting",
"pages/meeting/recording/recording",
"pages/meeting/summary/summary",
"pages/meeting/details/details",
"pages/conference/seat/seat",
"pages/mine/service/service",
"pages/mine/help/help",
"pages/mine/opinion/opinion"
],
"window": {
"defaultTitle": "UBAINS会议",
"allowsBounceVertical":"NO"
},
"tabBar": {
"textColor":"#555555",
"selectedColor":"#1696db",
"items": [
{
"name": "预定",
"pagePath":"pages/conference/index/index",
"icon":"/resource/images/room.png",
"activeIcon":"resource/images/room2.png"
},
{
"name": "会议",
"pagePath": "pages/meeting/record/record",
"icon":"/resource/images/ordain.png",
"activeIcon":"resource/images/ordain2.png"
},
{
"name": "我的",
"pagePath": "pages/mine/my/my",
"icon":"/resource/images/my.png",
"activeIcon":"resource/images/my2.png"
}
]
}
}
/* @import "./search.acss"; */
.item-avatar-xs text,input,radio{
font-size: 32rpx;
line-height: 80rpx;
}
.item-avatar-xs{
display: flex;
padding: 20rpx;
border-bottom: 1rpx solid #eee;
cursor: pointer;
position:relative;
}
.item-avatar-xs input{
width: 60%;
margin-top: 15rpx;
}
.left{
position: absolute;
margin-left: 660rpx;
}
.item-avatar-xs image{
width: 48rpx;
height: 48rpx;
margin-top: 15rpx;
}
.add{
width: 100%;
}
.add input{
width: 80%;
float: left;
}
.add image{
float: right;
margin-right: 50rpx;
}
.item-avatar-xs textarea{
width: 70%;
height: 80rpx;
margin-top: 18rpx;
font-size: 32rpx;
}
.add_bg{
background: #fff;
/* margin-top: 10rpx; */
padding: 50rpx;
}
.add_bg text{
display: block;
height: 40rpx;
line-height: 40rpx;
font-size: 26rpx;
margin-top: -20rpx;
float: left;
}
.add_time{
position: relative;
font-size: 26rpx;
top: -30rpx;
margin-top: -40rpx;
margin-left: 480rpx;
}
.add_time text{
font-size: 32rpx;
color: #156EF3;
padding: 0 10rpx;
}
.times{
width: 99.5%;
height: 500rpx;
margin-top: 10rpx;
border: 1px solid #ccc;
white-space: nowrap;
display:flex;
}
.min_box{
float: left;
margin-top: 32rpx;
width: 100rpx;
height: 470rpx;
}
.min{
width: 100rpx;
height:120rpx;
line-height: 120rpx;
}
.hour{
display: block;
width: 120rpx;
text-align: center;
}
.scroll-view-item_H{
flex-shrink:0;
flex-grow:0;
}
.time-block{
width:120rpx;
height: 120rpx;
border: 1px solid #ccc;
}
.left2{
position: absolute;
margin-left: 580rpx;
margin-top: 8rpx;
}
.add_btn{
margin-left: 80rpx;
margin-top: 10rpx;
}
.se_btning{
background: #156EF3;
color: #fff;
border-radius: 0;
}
.item-avatar-xs button{
width: 180rpx;
height: 60rpx;
line-height: 60rpx;
font-size: 26rpx;
border-radius: 0;
float: right;
}
.item-avatar-xs button::after{
border-radius: 0;
}
.item-avatar-show{
display: block;
}
.item-avatar-hide{
display: none;
}
.mask2{
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
background: #000;
z-index: 9000;
opacity: 0.5;
}
.modaltime2{
width: 80%;
height: 520rpx;
position: fixed;
top: 50%;
left: 0;
z-index: 9999;
margin: -340rpx 75rpx;
background-color: #fff;
border-radius: 5rpx;
display: flex;
flex-direction: column;
align-items: center;
padding-top: 10rpx;
padding-bottom: 20rpx;
}
.radio-group{
width: 100%;
height: 100rpx;
margin-top: 20rpx;
border-bottom: 1px solid #eee;
}
.radio{
line-height: 80rpx;
margin-left: 100rpx;
}
.checkbox-group{
width: 100%;
height: 90rpx;
}
.no-checkbox{
display: block;
width: 100%;
height: 90rpx;
line-height: 90rpx;
margin-left: 100rpx;
margin-top: 10rpx;
margin-bottom: 20rpx;
}
.checkbox{
display: block;
width: 100%;
height: 90rpx;
line-height: 90rpx;
margin-left: 100rpx;
margin-top: 30rpx;
}
.selectpocker{
width: 70%;
height: 35px;
line-height: 35px;
text-align: right;
margin-left: 60rpx;
/* overflow-x: scroll; */
}
.checkbox checkbox{
margin-top: 20rpx;
}
.checkbox text{
margin-left: 20rpx;
}
.add{
margin: 20rpx auto;
}
.add_img{
width: 32rpx;
height: 32rpx;
margin-left: 540rpx;
/* margin-top: -6rpx; */
}
.se_btn_hide{
display: none;
height: 80rpx;
position: relative;
margin-top: 0.1rpx;
}
.se_btn_show{
display: block;
}
.check {
display:flex;
flex-wrap:wrap;
justify-content:flex-start;
}
.check label {
width: 140rpx;
height: 60rpx;
font-size: 22rpx;
border-radius: 8rpx;
display: flex;
align-items: center;
margin: 0 8rpx;
justify-content: center;
margin-top: 20rpx;
}
.is_checked {
background-color: #156EF3;
color: #fff;
border: 1rpx solid #fff;
}
.section{
background: #fff;
padding:20rpx;
border-bottom: 1px solid #eee;
}
.section text{
font-size: 32rpx;
line-height: 80rpx;
}
.section image{
width: 40rpx;
height: 40rpx;
float: right;
margin-top: 20rpx;
}
.required{
font-size: 10rpx;
color: red;
margin-right: 10rpx;
}
\ No newline at end of file
<view class="page">
<form onSubmit="formSubmit" onReset="formReset">
<!-- <picker onChange="bindPickerChange" value="{{index}}" range="{{conferenceList}}" range-key="conferenceName" name="conferenceName">
<view class='item-avatar-xs'>
<text>会议室</text>
<text class='selectpocker'>{{conferenceList[index].conferenceName}}</text>
<text class='left'>〉</text>
</view>
</picker> -->
<view class='item-avatar-xs'>
<text><text class="required">*</text>会议名称:</text>
<input type='text' placeholder='请输入会议名称' name="messageName" />
</view>
<view class='item-avatar-xs'>
<text><text class="required">*</text>主持人:</text>
<input type='text' value="{{username}}" placeholder='请输入主持人' name="messageCompere" />
</view>
<view class='item-avatar-xs'>
<text>添加议题:</text>
<input type='text' placeholder='输入议题' name="messageTheme" />
<image src='../../../resource/images/add.png' onTap='addList'></image>
</view>
<view class="item-avatar-xs" a:for="{{lists}}" a:key="{{index}}">
<view class='add'>
<input type='text' placeholder='输入议题' name="messageTheme" />
<image src='../../../resource/images/off.png' onTap='delList'></image>
</view>
</view>
<view class='item-avatar-xs'>
<text>会议信息:</text>
<textarea placeholder='输入内容' name="messageContent"></textarea>
</view>
<view class="graySpace"></view>
<view class='add_bg'>
<!-- <picker mode="date" onChange="bindDateChange" name="startTime">
<text class="picker">日期: {{dates}}</text>
</picker> -->
<text onTap="datePicker">日期: {{dates}}</text>
</view>
<view class='add_time'>
<view>会议时间:
<text>{{time.min}}</text>分钟
</view>
</view>
<view class="graySpace"></view>
<scroll-view class='times scroll-view_H' scroll-x="{{true}}" scroll-with-animation="{{true}}" scroll-left="100rpx">
<view class="min_box">
<view a:for="{{allTime.minutes}}" a:for-item="minute">
<view class="min">{{minute}}分钟</view>
</view>
</view>
<view a:for="{{timeList}}" a:for-item="time" a:for-index="hindex">
<text class="hour">{{hindex}}:00</text>
<view class="scroll-view-item_H" a:for="{{time}}" a:for-item="t" a:for-index="mindex">
<view data-hour="{{t.hour}}"data-unclick="{{t.unclick}}" data-minute="{{t.minute}}" data-hour-index="{{hindex}}" data-min-index="{{mindex}}" style="background-color:{{t.color}}" class="time-block" onTap="selTime"></view>
</view>
</view>
</scroll-view >
<view class="graySpace"></view>
<navigator url="../visitor/visitor?mid={{mid}}&cnum={{cnum}}" open-type="navigate" class='item-avatar-xs'>
<text>公司参与人员</text>
<text class='left'>〉</text>
</navigator>
<navigator url="../ex_visitor/ex_visitor?mid={{mid}}" open-type="navigate" class='item-avatar-xs'>
<text>邀请外部人员</text>
<text class='left'>〉</text>
</navigator>
<!-- <view class='item-avatar-xs'>
<text>是否安排座位</text>
<switch class='left2' name="isSite" onChange="switch"></switch>
</view> -->
<view class="graySpace"></view>
<!-- <view class='item-avatar-xs'>
<text>通知</text>
<view class='add_btn'>
<button class="{{num == 1?'se_btning':'se_btn'}}" data-num = "1" onTap="clickNum">微信</button>
<button class="{{num == 2?'se_btning':'se_btn'}}" data-num = "2" onTap="clickNum">短信</button>
<button class="{{num == 3?'se_btning':'se_btn'}}" data-num = "3" onTap="clickNum">邮箱</button>
</view>
</view> -->
<view class='section'>
<view onTap="onChangeShowState">
<text><text class="required">*</text>方式</text>
<image src="{{showView?'../../../resource/images/bottom2.png':'../../../resource/images/left1.png'}}"></image>
</view>
<view class="se_btn_hide{{ showView==true?'se_btn_hide':''}}">
<checkbox-group name="remindMethod" class="check">
<label onTap='clicks' a:for="{{noticeList}}" a:for-item="notice" class='{{notice.checked?"is_checked":""}}'>
<checkbox value="{{notice.name}}" data-val="{{notice.name}}" name="{{notice.name}}" hidden='false' checked='{{notice.checked}}' /> {{notice.value}}
</label>
</checkbox-group>
</view>
</view>
<checkbox-group value="{{index}}" range="{{msgArray}}" bindchange="checkboxChange">
<view class='item-avatar-xs' onTap='modaltime'>
<text><text class="required">*</text>提醒</text>
<text class='selectpocker' style="font-size:24rpx">{{text}}</text>
<text class='left'>〉</text>
</view>
</checkbox-group>
<view class="add"><button formType="submit" type="primary">预定</button></view>
<view class="mask2" onTap='mask2' catchtouchmove="preventTouchMove" hidden="{{!showModal2}}"></view>
<view class="modaltime2" hidden="{{!showModal2}}" >
<checkbox-group name="remindTime" class="checkbox-group" onChange="checkboxChange">
<label class='checkbox'>
<checkbox name="minTen" value='minTen' ></checkbox>
<text>提前十分钟</text>
</label>
<label class='checkbox'>
<checkbox name="halfHour" value='halfHour'></checkbox>
<text>提前半小时</text>
</label>
<label class='checkbox'>
<checkbox name="oneHour" value='oneHour'></checkbox>
<text>提前一小时</text>
</label>
</checkbox-group>
</view>
</form>
</view>
\ No newline at end of file
此差异已折叠。
{"defaultTitle": "预定会议"}
\ No newline at end of file
page{
background: #F1F1F1;
}
.list_banner{
width: 100%;
height: 270rpx;
}
.de_bg{
background: #fff;
margin-top: 10rpx;
padding: 16rpx;
}
.de_title{
color: #156EF3;
font-size: 40rpx;
text-align: center;
}
.de_bg label{
width: 100%;
height: auto;
font-size: 25rpx;
}
.de_title2{
font-size: 40rpx;
color: #156EF3;
text-align: center;
}
.de_border{
width: 100rpx;
height: 1rpx;
margin-left: 43%;
background: #156EF3;
margin-top: 20rpx;
}
.de_time{
margin-top: 10rpx;
padding: 16rpx;
font-size: 30rpx;
color: #156EF3;
}
.tr{
width: 100%;
font-size: 26rpx;
padding: 10rpx;
display: flex;
justify-content: space-between;
}
.td{
width: 100%;
text-align: left;
}
.de_btn{
width: 100%;
position: fixed;
background: #fff;
bottom: 0rpx;
}
.de_btn2{
width: 96%;
background: #156EF3;
color: #fff;
margin: 20rpx auto;
}
.de_box{
height:auto;
overflow:hidden;
overflow-y:scroll;
padding-bottom: 140rpx;
}
\ No newline at end of file
<view class="page">
<image class='list_banner' src="{{imageUrl}}{{conference.photoUrl}}" onError="setImageUrl"></image>
<view class='de_bg'>
<view class='de_title'>{{conference.conferenceName}}</view>
<label>功能:<text a:for="{{conference.functions}}" a:for-item="fun">
{{fun.functionName}},
</text></label> <label>人数:{{conference.maxPerson}}人 </label> <label>地点:{{conference.area.areaName}} |{{conference.nextArea.areaName}}</label>
</view>
<view class='de_bg'>
<view class='de_title2'>当天会议</view>
<view class='de_border'></view>
</view>
<view class='de_time'>{{date}}</view>
<view class="de_box">
<view class='de_bg' a:for="{{conference.message}}" a:for-item="msg">
<view class="table">
<view class="tr">
<view class="td td1">会议名称:{{msg.messageName}}</view>
<view class="td td2">发起人:{{msg.manageUser.nickname}}</view>
</view>
<view class="tr">
<view class="td td1">会议时间:{{msg.startTimeFormat}}-{{msg.endTimeFormat}}</view>
<!-- <view class="td td2">会议范围:全体人员</view> -->
</view>
</view>
</view>
</view>
</view>
<view class='de_btn' data-cnum="{{conference.conferenceNumber}}" onTap="goto">
<button class='de_btn2' >添加预定</button>
</view>
\ No newline at end of file
let app = getApp();
let domain = app.globalData.domain;
//获取用户信息的url
let conferenceUrl = domain + "/dingding/conference";
Page({
data: {
conference: null,
imageUrl: "http://139.159.202.24:8888" ,
date: dateFtt("yyyy-MM-dd", new Date())
},
goto:function(e){
var cnum= e.currentTarget.dataset.cnum;
dd.navigateTo({
url: '../addmeeting/addmeeting?cnum=' + cnum
})
},
setImageUrl: function(e) {
console.log("图片加载错误detail");
var index = e.currentTarget.dataset.index;
// document.getElementById(id).src = "../../../resource/images/list-room.png";
var conference = this.data.conference;
if (conference.photoUrl)
conference.photoUrl = "/images/conference/dd-defalut.png"
this.setData({
conference
});
},
onLoad: function(query) {
// 生命周期函数--监听页面加载
console.log("load会议室编号",query);
var _this=this;
_this.setData({
conference: null
})
dd.httpRequest({
url: conferenceUrl,
method: 'POST',
data: {
cnum: query.cnum
},
dataType: 'json',
success: function(res) {
console.log('success----', res)
_this.setData({
conference: res.data.result
})
},
fail: function(res) {
console.log("httpRequestFail---", res)
dd.alert({ content: JSON.stringify(res) });
},
complete: function(res) {
dd.hideLoading();
}
});
},
onReady(query) {
// 页面加载完成
console.log("ready会议室编号",query)
},
onShow(query) {
// 页面显示
console.log("show会议室编号",query)
},
onHide() {
// 页面隐藏
},
onUnload() {
// 页面被关闭
},
onTitleClick() {
// 标题被点击
},
onPullDownRefresh() {
// 页面被下拉
},
onReachBottom() {
// 页面被拉到底部
},
onShareAppMessage() {
// 返回自定义分享信息
return {
title: 'My App',
desc: 'My App description',
path: 'pages/index/index',
};
},
});
function dateFtt(fmt, date) { //author: meizz
var o = {
"M+": date.getMonth() + 1, //月份
"d+": date.getDate(), //日
"h+": date.getHours(), //小时
"m+": date.getMinutes(), //分
"s+": date.getSeconds(), //秒
"q+": Math.floor((date.getMonth() + 3) / 3), //季度
"S": date.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt))
fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
}
\ No newline at end of file
{"defaultTitle": "会议室详情"}
\ No newline at end of file
page{
background: #fff;
color: #555;
}
.vi_bg{
background: #fff;
padding: 30rpx 0;
}
.vi_search{
width: 600rpx;
height: 60rpx;
line-height: 60rpx;
background: #eee;
border-radius: 30rpx;
margin-left: 8%;
}
.vi_search image{
width: 40rpx;
height: 40rpx;
margin: 10rpx 30rpx;
}
.item-avatar-xs text{
font-size: 30rpx;
}
.item-avatar-xs input{
position: relative;
margin-top: -10rpx;
}
.vi_search input{
position: absolute;
width: 420rpx;
height: 60rpx;
line-height: 60rpx;
color: #555;
font-size:35rpx;
background: none;
}
.item-avatar-xs-a{
padding: 30rpx 30rpx;
border-bottom: 1rpx solid #eee;
cursor: pointer;
background: #fff;
position:relative;
}
.left{
position: absolute;
margin-left: 600rpx;
margin-top: -40rpx;
}
.item-avatar-xs2{
display: flex;
padding: 20rpx 100rpx;
border-bottom: 1rpx solid #eee;
cursor: pointer;
position:relative;
}
.item-avatar-xs-a image{
width: 32rpx;
height: 32rpx;
margin-left: 380rpx;
margin-top: 10rpx;
}
.flex_start{
width: 400rpx;
}
.flex_start icon{
position: absolute;
margin-top: -5rpx;
}
.flex_start text{
font-size: 34rpx;
margin-left: 70rpx;
}
checkbox{
-webkit-appearance: none;
border-radius: 50%;
width: 40rpx;
height: 40rpx;
border:1px solid #ccc;
background: #fff;
}
.depaertment{
width: 90%;
height: auto;
margin-top: -10rpx;
float: right;
}
.item-avatar-xs3{
width: 100%;
margin-top: 0.4rem;
}
.item-avatar-xs4{
width: 100%;
height: 60rpx;
line-height: 60rpx;
}
.li {
padding-left: 100rpx;
display: flex;
font-size: 34rpx;
width: 87%;
height: 100rpx;
margin-top: 20rpx;
}
.checkbox-text{
width: 160rpx;
line-height: 50rpx;
margin-left: 20rpx;
}
.vi_btm{
width: 89.5%;
position: fixed;
background: #fff;
padding: 40rpx 40rpx;
bottom: 0rpx;
border: 1rpx solid #eee;
}
.vi_btm text{
line-height: 40rpx;
font-size: 30rpx;
}
.vi_btm button{
background: #156EF3;
color: #fff;
margin-left: 360rpx;
position: absolute;
margin-top: -10rpx;
}
.ex_btn{
margin-top: 40rpx;
margin-bottom: 40rpx;
}
.del{
width: 40rpx;
float: left;
margin-top: 5rpx;
}
\ No newline at end of file
<view class="page">
<!-- <view class='vi_bg'>
<view class='vi_search'>
<image src='../../../resource/images/search2.png' />
<input type='text' placeholder='请输入参会人员名称' />
</view>
</view>
<view class="graySpace"></view> -->
<form onSubmit="formSubmit" onReset="">
<view class='item-avatar-xs'>
<text>用户名:</text>
<input type="text" name="signName" placeholder="请输入用户名" />
</view>
<view class='item-avatar-xs'>
<text>手机号:</text>
<input type="text" name="signMobile" placeholder="请填写手机号码" />
</view>
<view class='item-avatar-xs'>
<text>邮 箱 :</text>
<input type="text" name="signEmail" placeholder="请输入邮箱号" />
</view>
<button class="ex_btn" type="primary" form-type="submit" >添加</button>
<view class="graySpace"></view>
</form>
<scroll-view scroll-y="{{true}}">
<view a:for="{{employeeList}}" a:for-item="employee" a:for-index="index" class='item-avatar-xs-a'>
<!-- <checkbox value="{{employee.name}}" checked="{{employee.checked}}" /> -->
<view data-index="{{index}}" data-id="{{employee.id}}" onTap="deleteSign" class="del">
<icon type="cancel" size="18" color="red"/>
</view>
<text class="checkbox-text">{{employee.name}}</text>
</view>
</scroll-view>
<!-- <view class='vi_btm'>
<text>已添加:{{personNum}}人 </text>
<button size='mini'>确定</button>
</view> -->
let app = getApp();
let domain = app.globalData.domain;
//获取用户信息的url
let addExSignUrl = domain + "/dingding/addExSign";
let delExSignUrl = domain + "/dingding/delExSign"
Page({
data: {
employeeList:[
],
mid:null,
personNum:0
},
formSubmit: function(e){
console.log('form发生了submit事件,携带数据为:', e.detail.value);
var _this = this;
if (e.detail.value.signMobile.length != 0) {
var phoneReg = /(^1[3|4|5|7|8]\d{9}$)|(^09\d{8}$)/;
var phone = e.detail.value.signMobile;
if (!phoneReg.test(phone)) {
dd.alert({
title: "添加失败",
content: "手机格式错误",
buttonText: '确定'
})
return false;
}
} else {
dd.alert({
title: "添加失败",
content: "手机不为空",
buttonText: '确定'
});
return false;
}
if (e.detail.value.signEmail.length!=0 ) {
var reg = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
var email = e.detail.value.signEmail;
if (!reg.test(email)) {
dd.alert({
title: "添加失败",
content: "邮箱格式错误",
buttonText: '确定'
});
return false;
}
} else {
dd.alert({
title: "添加失败",
content: "邮箱不为空",
buttonText: '确定'
});
return false;
}
dd.httpRequest({
url: addExSignUrl,
method: 'POST',
data: {
mid: _this.data.mid,
signMobile: e.detail.value.signMobile,
signEmail: e.detail.value.signEmail,
signName: e.detail.value.signName,
},
dataType: 'json',
success: function(res) {
// console.log('success----', res)
if (res.data.success) {
//console.log("预定成功");
dd.alert({
title: '添加成功',
content: '添加成功',
buttonText: '确定',
success: () => {
var employeeList= _this.data.employeeList;
var emp={};
emp['name'] = res.data.result.signName;
emp['id'] = res.data.result.signId;
emp['checked'] = true;
employeeList.push(emp);
_this.setData({
personNum: _this.data.personNum + 1,
employeeList
});
},
});
} else {
dd.showToast({
type: 'fail',
content: res.data.message,
duration: 3000,
success: () => {
// dd.navigateTo({
// url: '../index/index'
// });
},
});
}
},
fail: function(res) {
console.log("httpRequestFail---", res)
dd.alert({ content: JSON.stringify(res) });
},
complete: function(res) {
dd.hideLoading();
}
});
},
deleteSign:function (e){
//console.log(e);
var _this=this;
dd.httpRequest({
url: delExSignUrl,
method: 'POST',
data: {
signId: e.currentTarget.dataset.id,
},
dataType: 'json',
success: function(res) {
// console.log('success----', res)
if (res.data.success) {
//console.log("预定成功");
const index = e.currentTarget.dataset.index;
var employeeList = _this.data.employeeList;
employeeList = remove(employeeList, index);
_this.setData({
employeeList
})
} else {
dd.showToast({
type: 'fail',
content: res.data.message,
duration: 3000,
success: () => {
// dd.navigateTo({
// url: '../index/index'
// });
},
});
}
},
fail: function(res) {
console.log("httpRequestFail---", res)
dd.alert({ content: JSON.stringify(res) });
},
complete: function(res) {
dd.hideLoading();
}
});
},
onLoad: function(query) {
// 生命周期函数--监听页面加载
this.setData({
mid: query.mid
})
},
onReady() {
// 页面加载完成
},
onShow() {
// 页面显示
},
onHide() {
// 页面隐藏
},
onUnload() {
// 页面被关闭
},
onTitleClick() {
// 标题被点击
},
onPullDownRefresh() {
// 页面被下拉
},
onReachBottom() {
// 页面被拉到底部
},
onShareAppMessage() {
// 返回自定义分享信息
return {
title: 'My App',
desc: 'My App description',
path: 'pages/index/index',
};
},
});
function remove(array, index) {
if (index <= (array.length - 1)) {
for (var i = index; i < array.length; i++) {
array[i] = array[i + 1];
}
}
else {
throw new Error('超出最大索引!');
}
array.length = array.length - 1;
return array;
}
{"defaultTitle": "添加外部参与人员"}
\ No newline at end of file
.container {
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-between;
box-sizing: border-box;
}
.banner-bg{
width: 750rpx;
height: 300rpx;
}
.search{
width: 600rpx;
height: 60rpx;
line-height: 60rpx;
background: rgba(0, 0, 0, .4);
border-radius: 30rpx;
position: relative;
margin: -30% 0%;
}
.banner image{
width: 40rpx;
height: 40rpx;
margin: 10rpx 30rpx;
}
.function_text{
display: block;
/* width: 380rpx; */
width: 100%;
text-align: left;
overflow: hidden;
text-overflow:ellipsis;
white-space: nowrap;
}
.search input{
background: none;
font-size: 0.3rem;
position: absolute;
margin-top: 5rpx;
}
.list_box{
margin-top: 30rpx;
}
.list_title {
font-size: 40rpx;
color: #156EF3;
}
.border_a{
width: 120rpx;
height: 1rpx;
background: #156EF3;
margin-top: 20rpx;
margin-left: 20%;
}
.border_b{
width: 200rpx;
height: 1rpx;
background: #156EF3;
margin-top: 30rpx;
}
.list_content{
width:728rpx;
height: auto;
text-align: center;
margin-top: 20rpx;
}
.list_b{
width:350rpx;
height: 320rpx;
float: left;
margin-top: 10rpx;
padding-left: 10rpx;
}
.list_b image{
width: 350rpx;
height: 220rpx;
}
.list_b .list_title2{
width: 350rpx;
height:auto;
line-height: 45rpx;
background: rgba(0, 0, 0, .4);
border-radius: 10rpx;
position: absolute;
margin-top: -91rpx;
}
.list_title2 text{
width: 97%;
color: #fff;
font-size: 25rpx;
text-align: left;
padding-left: 10rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.list_b text{
float: left;
}
.list_btn1{
clear: both;
width: 140rpx;
height: 40rpx;
background: #156EF3;
line-height: 40rpx;
font-size: 25rpx;
color: #fff;
border-radius: 5rpx;
float: left;
margin-left: orpx;
margin-top: 10rpx;
}
.list_btn2{
width: 140rpx;
height: 40rpx;
line-height: 40rpx;
font-size: 25rpx;
color: #ccc;
border-radius: 5rpx;
float: left;
margin-top: 10rpx;
margin-left: 10rpx;
}
<!--index.wxml-->
<view class="container">
<image class='banner-bg' src='../../../resource/images/banner.png'></image>
<view class="banner">
<navigator class='search' url="../search/search?title=search" open-type="navigate" hover-class="navigator-hover">
<image src='../../../resource/images/search.png'></image>
<input type='text' placeholder='请输入会议室名称' disabled="disabled"></input>
</navigator>
</view>
<view class='list_box'>
<text class='list_title'>会议室列表 </text>
<view class='border_a'></view>
<view class='border_b'></view>
</view>
<view class='list_content'>
<view a:for="{{conferenceList}}" a:for-index="index" a:for-item="conference">
<navigator class='list_b' url="../details/details?cnum={{conference.conferenceNumber}}" open-type="navigate">
<image src="{{imageUrl}}{{conference.photoUrl}}" onError="setImageUrl" data-index="{{index}}" id="images-{{index}}"></image>
<view class='list_title2'>
<text>{{conference.area.areaName}} </text>
<text>{{conference.conferenceName}}</text>
</view>
<text class="function_text"> 功能: <block a:for="{{conference.functions}}" a:for-item="fun">{{fun.functionName}},</block>
</text>
<button class='list_btn1'><view a:if="{{conference.enable == 1}}">可用</view><view a:elif="{{conference.enable == 0}}">不可用</view></button>
<button class='list_btn2'>{{conference.maxPerson}}人</button>
</view>
</navigator>
</view>
</view>
</view>
let app = getApp();
//替换成开发者后台设置的安全域名
let domain = app.globalData.domain;
//获取用户信息的url
let url = domain + "/dingding/login";
let conferenceUrl = domain + "/dingding/conferenceList"
let myinfoUrl = domain +"/dingding/myinfo"
Page({
data: {
corpId: '',
authCode: '',
userId: '',
conferenceList: [],
imageUrl: "http://139.159.202.24:8888"
},
//请求授权登录
setImageUrl: function(e) {
console.log("图片加载错误");
var index = e.currentTarget.dataset.index;
// document.getElementById(id).src = "../../../resource/images/list-room.png";
var conferenceList = this.data.conferenceList;
conferenceList[index].photoUrl = "/images/conference/dd-defalut.png"
this.setData({
conferenceList
});
},
goDetail:function(e){
var cnum=e.currentTarget.dataset.cnum;
dd.navigateTo({
url:'../details/details?cnum='+cnum
});
},
onLoad(query) {
// 页面加载
console.info(`Page onLoad with query: ${JSON.stringify(query)}`);
console.log("页面参数",query);
//请求授权登录
let _this = this;
this.setData({
corpId: app.globalData.corpId
})
dd.getAuthCode({
success: (res) => {
_this.setData({
authCode: res.authCode
})
dd.httpRequest({
url: url,
method: 'POST',
data: {
authCode: res.authCode,
corpId: app.globalData.corpId,
},
dataType: 'json',
success: function(res) {
// console.log('success----', res);
let userId = res.data.result.userId;
_this.setData({
userId: userId
});
app.globalData.userId = userId;
console.log('userId----', app.globalData.userId);
//查询用户是否绑定
dd.httpRequest({
url: myinfoUrl,
method: 'POST',
data: {
userId: userId
},
dataType: 'json',
success: function(res) {
console.log('success----', res)
if (res.data.result==null){
dd.reLaunch({
url: '../../login/login'
});
}else {
dd.httpRequest({
url: conferenceUrl,
method: 'POST',
data: {
userId: app.globalData.userId,
corpId: app.globalData.corpId,
person: query.person
},
dataType: 'json',
success: function(res) {
console.log('success----', res)
_this.setData({
conferenceList: res.data.result
})
},
fail: function(res) {
console.log("httpRequestFail---", res)
dd.alert({ content: JSON.stringify(res) });
},
complete: function(res) {
dd.hideLoading();
}
});
}
// _this.setData({
// conferenceList: res.data.result
// })
},
fail: function(res) {
console.log("httpRequestFail---", res)
dd.alert({ content: JSON.stringify(res) });
},
complete: function(res) {
dd.hideLoading();
}
});
},
fail: function(res) {
console.log("httpRequestFail---", res)
// dd.alert({ content: JSON.stringify(res) });
},
complete: function(res) {
dd.hideLoading();
}
});
},
fail: (err) => {
dd.alert({
content: JSON.stringify(err)
})
}
});
},
onReady() {
// 页面加载完成
},
onShow() {
// 页面显示
},
onHide() {
// 页面隐藏
},
onUnload() {
// 页面被关闭
},
onTitleClick() {
// 标题被点击
},
onPullDownRefresh() {
// 页面被下拉
},
onReachBottom() {
// 页面被拉到底部
},
onShareAppMessage() {
// 返回自定义分享信息
return {
title: 'My App',
desc: 'My App description',
path: 'pages/index/index',
};
},
});
{}
\ No newline at end of file
/* @import "./search.acss"; */
.item-avatar-xs text,input,radio{
font-size: 32rpx;
line-height: 80rpx;
}
.item-avatar-xs{
display: flex;
padding: 20rpx;
border-bottom: 1rpx solid #eee;
cursor: pointer;
position:relative;
}
.item-avatar-xs input{
width: 60%;
margin-top: 15rpx;
}
.left{
position: absolute;
margin-left: 660rpx;
}
.item-avatar-xs image{
width: 48rpx;
height: 48rpx;
margin-top: 15rpx;
}
.add{
width: 100%;
}
.add input{
width: 80%;
float: left;
}
.add image{
float: right;
margin-right: 50rpx;
}
.item-avatar-xs textarea{
width: 70%;
height: 80rpx;
margin-top: 18rpx;
font-size: 32rpx;
}
.add_bg{
background: #fff;
/* margin-top: 10rpx; */
padding: 50rpx;
}
.add_bg text{
display: block;
height: 40rpx;
line-height: 40rpx;
font-size: 26rpx;
margin-top: -20rpx;
float: left;
}
.add_time{
position: relative;
font-size: 26rpx;
top: -30rpx;
margin-top: -40rpx;
margin-left: 480rpx;
}
.add_time text{
font-size: 32rpx;
color: #156EF3;
padding: 0 10rpx;
}
.times{
width: 99.5%;
height: 500rpx;
margin-top: 10rpx;
border: 1px solid #ccc;
white-space: nowrap;
display:flex;
}
.min_box{
float: left;
margin-top: 32rpx;
width: 100rpx;
height: 470rpx;
}
.min{
width: 100rpx;
height:120rpx;
line-height: 120rpx;
}
.hour{
display: block;
width: 120rpx;
text-align: center;
}
.scroll-view-item_H{
flex-shrink:0;
flex-grow:0;
}
.time-block{
width:120rpx;
height: 120rpx;
border: 1px solid #ccc;
}
.left2{
position: absolute;
margin-left: 580rpx;
margin-top: 8rpx;
}
.add_btn{
margin-left: 80rpx;
margin-top: 10rpx;
}
.se_btning{
background: #156EF3;
color: #fff;
border-radius: 0;
}
.item-avatar-xs button{
width: 180rpx;
height: 60rpx;
line-height: 60rpx;
font-size: 26rpx;
border-radius: 0;
float: right;
}
.item-avatar-xs button::after{
border-radius: 0;
}
.item-avatar-show{
display: block;
}
.item-avatar-hide{
display: none;
}
.mask2{
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
background: #000;
z-index: 9000;
opacity: 0.5;
}
.modaltime2{
width: 80%;
height: 520rpx;
position: fixed;
top: 50%;
left: 0;
z-index: 9999;
margin: -340rpx 75rpx;
background-color: #fff;
border-radius: 5rpx;
display: flex;
flex-direction: column;
align-items: center;
padding-top: 10rpx;
padding-bottom: 20rpx;
}
.radio-group{
width: 100%;
height: 100rpx;
margin-top: 20rpx;
border-bottom: 1px solid #eee;
}
.radio{
line-height: 80rpx;
margin-left: 100rpx;
}
.checkbox-group{
width: 100%;
height: 90rpx;
}
.no-checkbox{
display: block;
width: 100%;
height: 90rpx;
line-height: 90rpx;
margin-left: 100rpx;
margin-top: 10rpx;
margin-bottom: 20rpx;
}
.checkbox{
display: block;
width: 100%;
height: 90rpx;
line-height: 90rpx;
margin-left: 100rpx;
margin-top: 30rpx;
}
.selectpocker{
width: 70%;
height: 35px;
line-height: 35px;
text-align: right;
margin-left: 60rpx;
/* overflow-x: scroll; */
}
.checkbox checkbox{
margin-top: 20rpx;
}
.checkbox text{
margin-left: 20rpx;
}
.add{
margin: 20rpx auto;
}
.add_img{
width: 32rpx;
height: 32rpx;
margin-left: 540rpx;
/* margin-top: -6rpx; */
}
.se_btn_hide{
display: none;
height: 80rpx;
position: relative;
margin-top: 0.1rpx;
}
.se_btn_show{
display: block;
}
.check {
display:flex;
flex-wrap:wrap;
justify-content:flex-start;
}
.check label {
width: 140rpx;
height: 60rpx;
font-size: 22rpx;
border-radius: 8rpx;
display: flex;
align-items: center;
margin: 0 8rpx;
justify-content: center;
margin-top: 20rpx;
}
.is_checked {
background-color: #156EF3;
color: #fff;
border: 1rpx solid #fff;
}
.section{
background: #fff;
padding:20rpx;
border-bottom: 1px solid #eee;
}
.section text{
font-size: 32rpx;
line-height: 80rpx;
}
.section image{
width: 40rpx;
height: 40rpx;
float: right;
margin-top: 20rpx;
}
\ No newline at end of file
<view class="page">
<form onSubmit="formSubmit" onReset="formReset">
<!-- <picker onChange="bindPickerChange" value="{{index}}" range="{{conferenceList}}" range-key="conferenceName" name="conferenceName"><view class='item-avatar-xs'><text>会议室</text><text class='selectpocker'>{{conferenceList[index].conferenceName}}</text><text class='left'>〉</text></view></picker> -->
<view class='item-avatar-xs'>
<text>会议名称:</text>
<input type='text' value="{{message.messageName}}" placeholder='请输入会议名称' name="messageName" />
</view>
<view class='item-avatar-xs'>
<text>主持人:</text>
<input type='text' value="{{message.messageCompere}}" placeholder='请输入主持人' name="messageCompere" />
</view>
<view class='item-avatar-xs'>
<text>添加议题:</text>
<input type='text' placeholder='输入议题' name="messageTheme" />
<image src='../../../resource/images/add.png' onTap='addList'></image>
</view>
<view class="item-avatar-xs" a:for="{{lists}}" a:key="{{index}}">
<view class='add'>
<input type='text' placeholder='输入议题' name="messageTheme" />
<image src='../../../resource/images/off.png' onTap='delList'></image>
</view>
</view>
<view class='item-avatar-xs'>
<text>会议信息:</text>
<textarea placeholder='输入内容' value="{{messageContent}}" name="messageContent"></textarea>
</view>
<view class="graySpace"></view>
<view class='add_bg'>
<!-- <picker mode="date" onChange="bindDateChange" name="startTime"><text class="picker">日期: {{dates}}</text></picker> -->
<text onTap="datePicker">日期: {{dates}}</text>
</view>
<view class='add_time'>
<view>会议时间:
<text>{{time.min}}</text>分钟
</view>
</view>
<view class="graySpace"></view>
<scroll-view class='times scroll-view_H' scroll-x="{{true}}" scroll-with-animation="{{true}}" scroll-left="100rpx">
<view class="min_box">
<view a:for="{{allTime.minutes}}" a:for-item="minute">
<view class="min">{{minute}}分钟</view>
</view>
</view>
<view a:for="{{timeList}}" a:for-item="time" a:for-index="hindex">
<text class="hour">{{hindex}}:00</text>
<view class="scroll-view-item_H" a:for="{{time}}" a:for-item="t" a:for-index="mindex">
<view data-hour="{{t.hour}}"data-unclick="{{t.unclick}}" data-minute="{{t.minute}}" data-hour-index="{{hindex}}" data-min-index="{{mindex}}" style="background-color:{{t.color}}" class="time-block" onTap="selTime"></view>
</view>
</view>
</scroll-view >
<view class="graySpace"></view>
<navigator url="../visitor/visitor?mid={{mid}}" open-type="navigate" class='item-avatar-xs'>
<text>公司参与人员</text>
<text class='left'>〉</text>
</navigator>
<navigator url="../ex_visitor/ex_visitor?mid={{mid}}" open-type="navigate" class='item-avatar-xs'>
<text>邀请外部人员</text>
<text class='left'>〉</text>
</navigator>
<!-- <view class='item-avatar-xs'>
<text>是否安排座位</text>
<switch class='left2' name="isSite" onChange="switch"></switch>
</view> -->
<view class="graySpace"></view>
<!-- <view class='item-avatar-xs'><text>通知</text><view class='add_btn'><button class="{{num == 1?'se_btning':'se_btn'}}" data-num = "1" onTap="clickNum">微信</button><button class="{{num == 2?'se_btning':'se_btn'}}" data-num = "2" onTap="clickNum">短信</button><button class="{{num == 3?'se_btning':'se_btn'}}" data-num = "3" onTap="clickNum">邮箱</button></view></view> -->
<view class='section'>
<view onTap="onChangeShowState">
<text>方式</text>
<image src="{{showView?'../../../resource/images/bottom2.png':'../../../resource/images/left1.png'}}"></image>
</view>
<view class="se_btn_hide{{ showView==true?'se_btn_hide':''}}">
<checkbox-group name="remindMethod" class="check">
<label onTap='clicks' >
<checkbox value="dingding" data-val="dingding" name="dingding" hidden='false' checked="{{message.dingding ==1?'true':'false'}}"/> 钉钉
</label>
<label onTap='clicks' >
<checkbox value="wechat" data-val="wechat" name="wechat" hidden='false' checked="{{message.wechat ==1?'true':'false'}}"/> 微信
</label>
<label onTap='clicks' class='{{notice.checked?"is_checked":""}}'>
<checkbox value="mailbox" data-val="mailbox" name="mailbox" hidden='false' checked="{{message.mailbox ==1?'true':'false'}}"/> 邮箱
</label>
<label onTap='clicks' >
<checkbox value="note" data-val="note" name="note" hidden='false' checked="{{message.note ==1?'true':'false'}}"/> 短信
</label>
</checkbox-group>
</view>
</view>
<checkbox-group value="{{index}}" range="{{msgArray}}" bindchange="checkboxChange">
<view class='item-avatar-xs' onTap='modaltime'>
<text>提醒</text>
<text class='selectpocker' style="font-size:24rpx">{{text}}</text>
<text class='left'>〉</text>
</view>
</checkbox-group>
<view class="add">
<button formType="submit" type="primary">预定</button>
</view>
<view class="mask2" onTap='mask2' catchtouchmove="preventTouchMove" hidden="{{!showModal2}}"></view>
<view class="modaltime2" hidden="{{!showModal2}}">
<checkbox-group name="remindTime" class="checkbox-group" onChange="checkboxChange">
<label class='checkbox'>
<checkbox checked="{{message.minTen ==1?'true':'false'}}" name="minTen" value='minTen' ></checkbox>
<text>提前十分钟</text>
</label>
<label class='checkbox'>
<checkbox checked="{{message.halfHour ==1?'true':'false'}}" name="halfHour" value='halfHour'></checkbox>
<text>提前半小时</text>
</label>
<label class='checkbox'>
<checkbox checked="{{message.oneHour ==1?'true':'false'}}" name="oneHour" value='oneHour'></checkbox>
<text>提前一小时</text>
</label>
</checkbox-group>
</view>
</form>
</view>
\ No newline at end of file
此差异已折叠。
{"defaultTitle": "修改会议"}
\ No newline at end of file
.page{
background: #fff;
}
.section{
/* height: 80rpx;
line-height: 80rpx; */
padding:30rpx;
font-size: 0.6rem;
margin:20rpx;
border-bottom: 1px solid #eee;
}
.section input{
width: 85%;
margin-top: -44rpx;
float: right;
}
.section image{
width: 32rpx;
height: 32rpx;
float: right;
margin-top: -6rpx;
}
.li .icon-xiala ,.icon-shangjiantou {
color: #999;
font-size: 28rpx;
}
.se_btn_hide{
display: none;
height: 80rpx;
position: relative;
margin-top: 0.1rpx;
}
.se_btn_show{
display: block;
}
.radio-group{
width: 83%;
float: right;
}
.radio{
margin-left: 30rpx;
}
label{
width: 2.4rem;
margin-top: -10rpx;
}
.check {
display:flex;
flex-wrap:wrap;
justify-content:flex-start;
}
.check label {
width: 140rpx;
height: 60rpx;
font-size: 22rpx;
border-radius: 8rpx;
display: flex;
align-items: center;
margin: 0 8rpx;
justify-content: center;
margin-top: 20rpx;
}
.is_checked {
background-color: #156EF3;
color: #fff;
border: 1rpx solid #fff;
}
\ No newline at end of file
<view class="page">
<!-- <view class="section">
<picker mode="date" value="{{dates}}" onChange="onChange">
<view class="picker" >日期: {{dates}} </view>
</picker>
</view> -->
<form onSubmit="findConference" onReset="">
<view class="section">
<view>人数:
<input type='number' placeholder='请输入参会人数' name="person"></input>
</view>
</view>
<view class='section'>
<view onTap="onChangeShowState">功能:
<image src="{{showView?'../../../resource/images/bottom.png':'../../../resource/images/left.png'}}"></image>
</view>
<view class="se_btn_hide{{ showView==true?'se_btn_hide':''}}">
<checkbox-group name="function" class="check">
<label bindtap='clicks' a:for="{{checks}}" a:for-item="check" class='{{item.checked?"is_checked":""}}'>
<checkbox value="{{check.name}}" data-val="{{check.name}}" hidden='false' checked='{{check.checked}}' /> {{check.name}}
</label>
</checkbox-group>
</view>
</view>
<view class='section'>
<view>关键字:
<!-- <radio-group class="radio-group">
<label a:for="{{meets}}" a:for-item="meet">{{meet.value}}
<radio class="radio" value="{{meet.name}}" checked="{{meet.checked}}">
</label>
</radio-group> -->
<input type='text' placeholder='请输入关键字' name="keyword"></input>
</view>
</view>
<button class='button' type="primary" formType="submit">查询</button>
</form>
</view>
\ No newline at end of file
let app = getApp();
//替换成开发者后台设置的安全域名
let domain = app.globalData.domain;
Page({
data: {
meets: [
{ name: 'video', value: '视频会议', checked: true },
{ name: 'ordinary', value: '普通会议' }
],
checks: [
{ name: "投影仪", value: '0', checked: false },
{ name: "电视机", value: '1', checked: false },
{ name: "空调", value: '2', checked: false },
{ name: "Wifi", value: '3', checked: false },
],
dates: dateFtt("yyyy-MM-dd", new Date()),
// times: dateFtt("hh:mm", new Date()),
index: 0,
showView: false,
},
clicks: function(e) {
let index = e.currentTarget.dataset.index;
let arrs = this.data.checks;
if (arrs[index].checked == false) {
arrs[index].checked = true;
} else {
arrs[index].checked = false;
}
this.setData({
checks: arrs
})
},
// 点击时间组件确定事件
onChange(e) {
console.log(e.detail.value);
this.setData({
dates: e.detail.value
//times: e.detail.value,
})
},
onLoad: function(options) {
// 生命周期函数--监听页面加载
showView: (options.showView == "true" ? true : false)
},
//显示隐藏
onChangeShowState: function() {
var that = this;
that.setData({
showView: (!that.data.showView),
se_btn_hide: false
})
},
findConference: function(e){
console.log('form发生了submit事件,携带数据为:', e.detail.value)
var num= encodeURIComponent('number=1');
console.log(num);
dd.reLaunch({//& query=number % 3D1 & page=x % 2Fy % 2Fz
url: '../index/index?person=' + e.detail.value.person
// url: '../index/index?query=number%3D1'
})
},
onReady() {
// 页面加载完成
},
onShow() {
// 页面显示
},
onHide() {
// 页面隐藏
},
onUnload() {
// 页面被关闭
},
onTitleClick() {
// 标题被点击
},
onPullDownRefresh() {
// 页面被下拉
},
onReachBottom() {
// 页面被拉到底部
},
onShareAppMessage() {
// 返回自定义分享信息
return {
title: 'My App',
desc: 'My App description',
path: 'pages/index/index',
};
},
});
function dateFtt(fmt, date) { //author: meizz
var o = {
"M+": date.getMonth() + 1, //月份
"d+": date.getDate(), //日
"h+": date.getHours(), //小时
"m+": date.getMinutes(), //分
"s+": date.getSeconds(), //秒
"q+": Math.floor((date.getMonth() + 3) / 3), //季度
"S": date.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt))
fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
}
{"defaultTitle": "搜索会议室"}
\ No newline at end of file
.page{
background: #fff;
font-size: 20rpx;
}
.drag{
width: 0.6rem;
height:1rem;
background:url(../../../resource/images/drag.png) center no-repeat;
position: absolute;
z-index: 9999;
}
.left{
width: 20%;
height: 1220rpx;
margin-top: 10rpx;
border: 1px solid #ccc;
float: left;
text-align: center;
}
.title{
display: inline-block;
font-size: 30rpx;
font-weight: 700;
margin-top: 20rpx;
}
.visitor{
width: 100%;
height: 93%;
overflow-x: hidden;
overflow-y: scroll;
}
.visitor text{
display: block;
width: 130rpx;
height: auto;
line-height: 40rpx;
border-radius: 10rpx;
background: #548AF0;
color: #fff;
border-color: #fff;
margin: 20rpx auto;
}
.right{
width: 76%;
height: 1220rpx;
margin-top: 10rpx;
border: 1px solid #ccc;
position: absolute;
margin-left: 160rpx;
overflow-x: hidden;
overflow-y: scroll;
}
.seattitle image{
width: 100%;
height: 100rpx;
}
.noseattop{
width: 100%;
height: 140rpx;
background: url(../../../resource/images/m12.png) center no-repeat;
background-size: 80%;
margin-top: -30rpx;
position: relative;
top: 20rpx;
}
.seattop{
width: 100%;
height: 140rpx;
background: url(../../../resource/images/m11.png) center no-repeat;
background-size: 80%;
margin-top: -30rpx;
position: relative;
top: 20rpx;
margin-left: -3rpx;
}
.seattop view{
text-align: center;
}
.seattop text{
display: block;
margin-top: -30rpx;
}
.seattop label{
display: block;
margin-top: 60rpx;
}
.seatcenter{
width: 99%;
height: 75rpx;
background: url(../../../resource/images/m2.png) center no-repeat;
background-size: 80%;
/* border: 1px solid red; */
}
.seatleft{
width: 51%;
height: 75rpx;
line-height: 75rpx;
float: left;
position: relative;
/* background: url(../../../resource/images/seatleft.png) right / 85% no-repeat ; */
/*border: 1px solid #ccc;*/
}
.seatleft view{
width: 100%;
}
.seatleft text{
width: 44%;
height: 75rpx;
line-height: 75rpx;
text-align: center;
display: block;
float: left;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
.seatleft label{
display: block;
width: 10%;
height: 75rpx;
line-height: 75rpx;
float: right;
margin-right: 40rpx;
}
.seatright_box{
width: 50%;
height: auto;
float: right;
position: absolute;
right: 0;
}
.seatright{
width: 99%;
height: 75rpx;
line-height: 75rpx;
/* background: url(../../../resource/images/seatright.png) left / 85% no-repeat ; */
/* border: 1px solid #ccc; */
}
.seatright label{
display: block;
width: 10%;
height: 75rpx;
line-height: 75rpx;
float: left;
margin-left: 40rpx;
}
.seatright text{
display: block;
width: 44%;
height: 75rpx;
line-height: 75rpx;
text-align: center;
float: right;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
.seatbottom{
width: 100%;
height: 140rpx;
background: url(../../../resource/images/m4.png) center no-repeat;
background-size: 80%;
margin-top: -75rpx;
margin-left: -3rpx;
}
.seatbottom view{
text-align: center;
}
.seatbottom text{
display: block;
margin-top: 70rpx;
}
.seatbottom label{
display: block;
margin-top: 60rpx;
margin-right: 250rpx;
}
\ No newline at end of file
<view class="page" onTouchMove="move" onTouchEnd="stop">
<view for="" class="drag" style="display:{{drag.display}};left:{{drag.x}};top:{{drag.y}}"></view>
<view class="left">
<text class="title">与会人员</text>
<view class="visitor">
<text a:for="{{visitorList}}" a:for-item="visitor" a:for-index="index" >
<view id="visitor{{index}}" data-id="{{visitor.signId}}" data-name="{{visitor.signName}}" onLongTap="longTap">
{{visitor.signName}}
</view>
</text>
</view>
</view>
<view class="right">
<view class="seattitle" >
<image src="../../../resource/images/3.png" mode="aspectFit" />
</view>
<!-- <view class="seattop" a:for="{{seatList}}" a:for-item="seat">
<view class="name">{{seat.name}}</view>
<image src="{{src}}" mode="seat.mode" onError="imageError" onLoad="imageLoad" />
<view class="num">{{seat.num}}</view>
</view> -->
<view id="top" class="seattop" a:if="{{topSeat!=null}}">
<view >
<text style="color:{{topSeat.color}}">{{topSeat.name}}</text>
<label >{{topSeat.num}}</label>
</view>
</view>
<view class="noseattop" a:if="{{topSeat==null}}">
</view>
<view class="seatleft" id="right{{i}}" a:for="{{leftSeatList}}" a:for-item="leftSeat" a:for-index="i">
<view >
<text style="color:{{leftSeat.color}}">{{leftSeat.name}}</text>
<label>{{leftSeat.num}}</label>
</view>
</view>
<view class="seatright_box">
<view class="seatright" id="right{{i}}" a:for="{{rightSeatList}}" a:for-item="rightSeat" a:for-index="i" >
<view >
<label >{{rightSeat.num}}</label>
<text style="color:{{rightSeat.color}}">{{rightSeat.name}}</text>
</view>
</view>
</view>
<view class="seatcenter" a:for="{{seatNum%2==0?(seatNum-2)/2:(seatNum-1)/2}}" a:for-item="centerSeat" a:for-index="i"></view>
<view class="seatbottom" id="bottom" a:if="{{bottomSeat!=null}}">
<view >
<label >{{bottomSeat.num}}</label>
<text style="color:{{bottomSeat.color}}">{{bottomSeat.name}}</text>
</view>
</view>
</view>
\ No newline at end of file
此差异已折叠。
{
"defaultTitle": "座位安排"
}
\ No newline at end of file
page{
background: #fff;
color: #555;
}
.vi_bg{
background: #fff;
padding: 30rpx 0;
}
.vi_search{
width: 600rpx;
height: 60rpx;
line-height: 60rpx;
background: #eee;
border-radius: 30rpx;
margin-left: 8%;
}
.vi_search image{
width: 40rpx;
height: 40rpx;
margin: 10rpx 30rpx;
}
.department-scroll{
padding-bottom: 140rpx;
}
.vi_search input{
position: absolute;
width: 420rpx;
height: 60rpx;
line-height: 60rpx;
color: #555;
font-size:35rpx;
background: none;
}
.item-avatar-xs-a{
padding: 30rpx 30rpx;
border-bottom: 1rpx solid #eee;
cursor: pointer;
background: #fff;
position:relative;
}
.left{
position: absolute;
margin-left: 600rpx;
margin-top: -40rpx;
}
.item-avatar-xs2{
display: flex;
padding: 20rpx 100rpx;
border-bottom: 1rpx solid #eee;
cursor: pointer;
position:relative;
}
.item-avatar-xs-a image{
width: 32rpx;
height: 32rpx;
margin-left: 520rpx;
position: relative;
top: -40rpx;
}
.flex_start{
width: 400rpx;
}
.flex_start icon{
position: absolute;
margin-top: -5rpx;
}
.flex_start text{
font-size: 34rpx;
margin-left: 70rpx;
}
checkbox{
-webkit-appearance: none;
border-radius: 50%;
width: 40rpx;
height: 40rpx;
border:1px solid #ccc;
background: #fff;
}
.depaertment{
width: 90%;
height: 40rpx;
line-height: 40rpx;
float: right;
}
.item-avatar-xs3{
width: 100%;
margin-top: 0.4rem;
}
.item-avatar-xs4{
width: 100%;
height: 100rpx;
line-height: 100rpx;
border-bottom: 1px dotted #eee;
}
.li {
padding-left: 100rpx;
display: flex;
font-size: 34rpx;
width: 87%;
height: 100rpx;
line-height: 100rpx;
}
.item-avatar-xs4:last-child{
border-bottom: none;
}
.li checkbox{
-webkit-appearance: none;
border-radius: 50%;
width: 40rpx;
height: 40rpx;
border: 1px solid rgb(204, 204, 204);
background: rgb(255, 255, 255);
margin-top: 30rpx;
}
.checkbox-text{
width: 160rpx;
margin-left: 20rpx;
}
.vi_btm{
width: 89.5%;
position: fixed;
background: #fff;
padding: 40rpx 30rpx;
bottom: 0rpx;
border: 1rpx solid #eee;
}
.vi_btm text{
line-height: 40rpx;
font-size: 30rpx;
}
.vi_btm button{
background: #156EF3;
color: #fff;
margin-left: 360rpx;
position: absolute;
margin-top: -10rpx;
}
.check_box{
margin-bottom: 120rpx;
}
.de_btn{
width: 98%;
position: fixed;
background: #fff;
bottom: 0rpx;
}
.de_btn2{
width: 96%;
background: #156EF3;
color: #fff;
margin: 20rpx auto;
}
\ No newline at end of file
<view class="page">
<view class='vi_bg'>
<view class='vi_search'>
<image src='../../../resource/images/search2.png' />
<input type='text' onConfirm="search" placeholder='请输入参会人员名称' />
</view>
</view>
<view class="graySpace"></view>
<scroll-view class="department-scroll" scroll-y="{{true}}">
<view class='item-avatar-xs-a'>
<view onTap='select_all' class='flex_start'>
<icon type="success" color="{{selectall.color}}" size="22" />
<text>{{selectall.text}}</text>
</view>
</view>
<checkbox-group>
<view class='item-avatar-xs-a' a:for="{{departmentList}}" a:for-item="department" a:for-index="dIndex" >
<checkbox onChange="selected" data-index="{{dIndex}}" value="{{department.departmentName}},{{department.departmentId}}" checked="{{department.checked}}" />
<view class="depaertment" data-index="{{dIndex}}" onTap='changeToggle'>
<text class="checkbox-text">{{department.departmentName}}</text>
<image src="{{department.isColpand?'../../../resource/images/bottom.png':'../../../resource/images/left.png'}}"></image>
</view>
<view class="item-avatar-xs3" id="item-{{department.departmentId}}" hidden="{{!department.isColpand}}">
<view class="item-avatar-xs4" a:for="{{department.uList}}" a:for-item="u" a:for-index="index" value="{{index}}" >
<view class="li">
<checkbox data-d-index="{{dIndex}}" onChange="single_selected" data-u-index="{{index}}" value="{{objectArray[array]}}" checked="{{u.checked}}" />
{{u.nickname}}
</view>
</view>
</view>
</view>
</checkbox-group>
</scroll-view>
<view class='de_btn'>
<button class='de_btn2' >确定</button>
</view>
<view class='de_btn'>
<!-- <text>已选择:人 </text> -->
<button class='de_btn2' onTap="addInSign" >确定</button>
</view>
\ No newline at end of file
此差异已折叠。
{
"defaultTitle": "选择参与人员",
"pullRefresh": false
}
\ No newline at end of file
.logo-a{
width: 100%;
display: flex;
justify-content: space-around;
}
.logo{
width: 200rpx;
height: 200rpx;
margin-top: 100rpx;
}
.yz{
width: 98%;
height: auto;
margin: 40rpx auto;
position: relative;
}
.iphone{
width: 100%;
height: 90rpx;
line-height: 90rpx;
background: #fff;
border-radius: 10rpx;
margin-top: 20rpx;
}
.image{
width:80rpx;
height: 80rpx;
margin-top: 15rpx;
}
.number{
width: 80%;
height: 60rpx;
line-height: 60rpx;
position: absolute;
margin-top: 20rpx;
}
.iphone-a{
width: 100%;
height: 100rpx;
line-height: 100rpx;
border-radius: 10rpx;
margin-top: 20rpx;
position: relative;
}
.iphone-c{
width: 60%;
height: 90rpx;
line-height: 90rpx;
background: #fff;
border: 1px solid #eee;
}
.ver{
width: 45%;
height: 60rpx;
line-height: 60rpx;
position: absolute;
margin-top: 20rpx;
}
.btn{
width: 35%;
float: right;
margin-top: -95rpx;
}
.btn::after{
border: 0;
background: #999;
}
.login{
margin-top: 40rpx;
}
\ No newline at end of file
<view class="page">
<view class="logo-a">
<image class="logo" src="../../resource/images/logo.png" />
</view>
<form onSubmit="submitForm" onReset="">
<view class="yz">
<view class="iphone">
<image class="image" src="../../resource/images/iPhone.png" mode="" />
<input class="number" type="text" onInput="setPhone" name="phonetel" placeholder="请输入手机号码" />
</view>
<view class="iphone-a">
<view class="iphone-c">
<image class="image" src="../../resource/images/yz.png" mode="" />
<input class="ver" type="text" placeholder="请输入验证码" name="code" />
</view>
<button class="btn" type="default" disabled='{{disabled}}' onTap="btnTap">{{time}}</button>
</view>
<button class="login" form-type="submit" type="primary">登录</button>
</view>
</form>
</view>
\ No newline at end of file
此差异已折叠。
{"defaultTitle": "登录"}
\ No newline at end of file
此差异已折叠。
此差异已折叠。
此差异已折叠。
{
"defaultTitle": "详细信息"
}
\ No newline at end of file
此差异已折叠。
此差异已折叠。
此差异已折叠。
{"defaultTitle": "我的会议"}
\ No newline at end of file
此差异已折叠。
此差异已折叠。
此差异已折叠。
{"defaultTitle": "历史记录"}
\ No newline at end of file
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论