修改会议

会议功能调试,加入首页,修改列表页
This commit is contained in:
unknown 2024-09-13 17:09:25 +08:00
parent 9ed8798786
commit 96629fa202
9 changed files with 475 additions and 102 deletions

View File

@ -47,6 +47,7 @@
"pages/my/serviceApply/serviceApply",
"pages/complaint/complaintDetail/complaintDetail",
"pages/outer/outer",
"pages/meeting/index/index",
"pages/meeting/accessControl/accessControl",
"pages/meeting/accessControl/accessControlRecord/accessControlRecord",
"pages/meeting/meetingReservation/meetingReservation",

View File

@ -113,11 +113,11 @@ Page({
img: "/profile/static/index/menu-bxfw.png",
path: "/pages/reportRepair/index/index"
},
// {
// name: "会议预约",
// img: "/profile/static/index/menu-hyyy.png",
// // path: "/pages/meeting/meetingReservation/meetingReservation"
// },
{
name: "会议预约",
img: "/profile/static/index/menu-hyyy.png",
path: "/pages/meeting/index/index"
},
// {
// name: "展厅预约",
// img: "/profile/static/index/menu-ztyy.png",

View File

@ -0,0 +1,148 @@
const app = getApp()
import Notify from '@vant/weapp/notify/notify';
Page({
/**
* 页面的初始数据
*/
data: {
IMG_NAME: app.IMG_NAME,
userDetail: {},
menuList: [{
type: "report",
name: "会议预约",
img: "/profile/static/repair/index/my.png",
path: "/pages/meeting/meetingReservation/meetingReservation",
visible: true
}, {
type: "query",
name: "预约记录",
img: "/profile/static/repair/index/query.png",
path: "/pages/meeting/reservationRecord/meetingRecord/meetingRecord",
visible: true
}, {
type: "assign",
name: "会议审核",
img: "/profile/static/repair/index/case.png",
path: "/pages/meeting/visitorIinvitation/list/list",
visible: false
}, {
type: "repair",
name: "会务服务",
img: "/profile/static/repair/index/repair.png",
path: "/pages/reportRepair/repair/index/index",
visible: false
}]
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
let _this = this
let userDetail = wx.getStorageSync('user')
_this.setData({
userDetail
})
// 展示模块
_this.visibleBlock()
},
// 跳转菜单
jumpMenu(e) {
console.log('jumpMenu', e);
let obj = e.currentTarget.dataset.obj
console.log(obj.path)
if (obj.visible) {
wx.navigateTo({
url: obj.path,
})
} else {
app.vantNotifyErrTop(Notify, `"${obj.name}"无权限访问!`)
return
}
},
// 展示模块
visibleBlock() {
let _this = this
let userDetail = _this.data.userDetail
let dataType = userDetail.dataType
let menuList = _this.data.menuList
// 角色类型 1.普通用户3派单员5维修工7管理员 , 9楼层
// if (dataType == 3 || dataType == 7) { // 展示-派单入口,仅有派单员、管理员能进
// menuList = menuList.map(item => {
// if (item.type == 'assign') {
// item.visible = true
// }
// return item
// })
// }
// if (dataType == 5) { // 展示-维修入口
// menuList = menuList.map(item => {
// if (item.type == 'repair') {
// item.visible = true
// }
// return item
// })
// }
// _this.setData({
// menuList
// })
},
back() {
wx.navigateBack()
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})

View File

@ -0,0 +1,7 @@
{
"navigationStyle": "custom",
"usingComponents": {
"van-icon": "@vant/weapp/icon/index",
"van-notify": "@vant/weapp/notify/index"
}
}

View File

@ -0,0 +1,32 @@
<view class="containerView public">
<view class="topHead">
<view class="maskView1"></view>
<view class="maskView2" style="background: no-repeat center/cover url({{IMG_NAME + '/profile/static/repair/index/person.png'}});"></view>
<view class="maskView3"></view>
<view class="homeView" bind:tap="back">
<van-icon name="wap-home-o" size="30rpx" color="#ffffff"/>
</view>
<view class="title">会议系统</view>
<view class="contentView">
<view class="label1">欢迎进入</view>
<view class="label2">淮安市行政中心会议管理系统</view>
</view>
<view class="logo" style="background: no-repeat center/cover url({{IMG_NAME + '/profile/static/repair/index/logo.png'}});"></view>
</view>
<view class="menuContainerView">
<view class="menuView" wx:for="{{menuList}}" wx:key="*this" bind:tap="jumpMenu" data-obj="{{item}}">
<view class="menuImg" style="background: no-repeat center/cover url({{IMG_NAME + item.img}});"></view>
<view class="menuTitle">{{item.name}}</view>
</view>
</view>
<!-- <view class="ownership">{{ownership}}</view> -->
</view>
<!-- 消息通知 -->
<van-notify id="van-notify" />

View File

@ -0,0 +1,146 @@
.topHead {
position: relative;
height: 639rpx;
}
.topHead .maskView1 {
position: absolute;
z-index: 1;
left: 0;
top: 0;
width: 100%;
height: 100%;
background: #4c81e5;
opacity: 87%;
border-bottom-left-radius: 96rpx;
border-bottom-right-radius: 96rpx;
}
.topHead .maskView2 {
position: absolute;
z-index: 2;
right: 0;
top: 187rpx;
width: 446rpx;
height: 452rpx;
}
.topHead .maskView3 {
position: absolute;
z-index: 3;
left: 0;
top: 0;
width: 100%;
height: 100%;
background: #4c81e5;
opacity: 85%;
border-bottom-left-radius: 96rpx;
border-bottom-right-radius: 96rpx;
}
.topHead .homeView{
position: absolute;
z-index: 4;
left: 40rpx;
top: 100rpx;
border-radius: 50rpx;
width: 50rpx;
height: 50rpx;
display: flex;
justify-content: center;
align-items: center;
background: #4b71be;
}
.topHead .title {
position: absolute;
z-index: 4;
left: 50%;
top: 120rpx;
transform: translateX(-50%);
font-size: 32rpx;
color: #FFFFFF;
line-height: 1rpx;
text-align: left;
}
.topHead .contentView {
position: absolute;
z-index: 4;
left: 0;
top: 280rpx;
padding-left: 58rpx;
}
.topHead .contentView .label1 {
font-size: 57rpx;
color: #FFFFFF;
line-height: 1;
font-weight: 700;
}
.topHead .contentView .label2 {
font-size: 33rpx;
color: #FFFFFF;
line-height: 1;
margin-top: 40rpx;
font-weight: 700;
}
.topHead .logo {
position: absolute;
z-index: 4;
left: 50%;
bottom: -140rpx;
transform: translateX(-50%);
width: 250rpx;
height: 250rpx;
}
.menuContainerView {
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
padding: 150rpx 80rpx 0;
}
.menuContainerView .menuView {
width: 260rpx;
height: 260rpx;
border-radius: 10rpx;
box-shadow: -2px 2px 10px 0 rgba(102, 116, 166, 0.2);
flex-shrink: 0;
margin-bottom: 80rpx;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.menuContainerView .menuView .menuImg {
width: 140rpx;
height: 140rpx;
}
.menuContainerView .menuView .menuTitle {
font-size: 32rpx;
color: #4B6291;
font-weight: 600;
line-height: 1;
margin-top: 20rpx;
}
.ownership {
position: absolute;
left: 0;
bottom: 34rpx;
width: 100%;
word-break: break-all;
text-align: center;
font-size: 22rpx;
color: #878787;
}

View File

@ -15,6 +15,7 @@ Page({
data: {
IMG_NAME: app.IMG_NAME,
roomDataList: [],
roomDataNew: {},
queryParam: {
meetingTypeDict: {
list: [],
@ -65,7 +66,7 @@ Page({
}
})
list = [{
text: "类型",
text: "楼层",
value: null
}, ...list]
// 赋值参数
@ -203,6 +204,19 @@ Page({
// 会议室列表数据
meetingRoomListRq(param).then(res => {
console.log('meetingRoomListRq', res);
let roomArr = {}
let valueObj = res.rows
for(let key in valueObj) {
let eachObj = valueObj[key]
if (eachObj['type'] in roomArr) {
} else {
roomArr[eachObj['type']] = {
name: eachObj['typeName'],
list: []
}
}
roomArr[eachObj['type']]['list'].push(eachObj)
}
let roomDataList = res.rows.map(item => {
if (item.indoorPicUrl) {
try {
@ -214,7 +228,8 @@ Page({
return item
})
_this.setData({
roomDataList
roomDataList,
roomDataNew: roomArr
})
})
},

View File

@ -20,27 +20,24 @@
<van-dropdown-item value="{{ queryParam.shapeDict.value }}" options="{{ queryParam.shapeDict.list }}" bind:change="dictChange" data-type="shapeDict" />
</van-dropdown-menu>
</view>
<!-- 会议室列表 -->
<view class="meetingRoomView">
<view class="meetingRoomItem" bind:tap="jumpMeetingRoom" wx:for="{{roomDataList}}" wx:for-item="room" wx:key="*this" data-id="{{room.id}}">
<view wx:for="{{roomDataNew}}">
<view class="roomType">{{item.name}}</view>
<view class="meetingRoomItem" bind:tap="jumpMeetingRoom" wx:for="{{item.list}}" wx:for-item="room" wx:key="*this" data-id="{{room.id}}">
<view class="content">
<view class="title">{{room.capacityNum}}人间 | {{room.roomName}} | {{room.buildingName}}</view>
<view class="articleView">
<view class="article" wx:for="{{room.roomItemList}}" wx:for-item="roomItem" wx:key="*this">#{{roomItem.name}}</view>
</view>
<view class="propOpen"></view>
<view class="title">{{room.roomName}}</view>
<view class="priceView">
<view class="unit">{{room.shape}}</view>
<view class="unit">{{room.capacityNum}}人 {{room.shape}}</view>
</view>
</view>
<view class="imgView">
<!-- <view class="imgView">
<view class="title">{{room.meetingName}}</view>
<image class="img" src="{{IMG_NAME + room.indoorPicUrlFirst}}" mode="aspectFill" />
</view> -->
</view>
<view style="clear: both;"></view>
</view>
</view>
</view>
<van-notify id="van-notify" />
</view>

View File

@ -1,5 +1,4 @@
.queryView{
.queryView {
position: fixed;
left: 0;
top: 0;
@ -14,25 +13,36 @@
}
.meetingRoomView .meetingRoomItem {
display: flex;
/* display: inline-block; */
width: 33%;
float: left;
justify-content: space-between;
align-items: center;
margin-top: 30rpx;
padding-bottom: 30rpx;
border-bottom: 1px solid rgb(126, 126, 126, 0.3);
/* border-bottom: 1px solid rgb(126, 126, 126, 0.3); */
}
.meetingRoomView .meetingRoomItem .content {
display: flex;
flex-direction: column;
justify-content: start;
align-items: flex-start;
position: relative;
width: 85%;
margin: 0px auto;
height: 180rpx;
border: 1px solid #A3CDFF;
background-color: #A3CDFF;
}
.meetingRoomView .meetingRoomItem .disabled {
border: 1px solid #F2F2F2;
background-color: #F2F2F2;
}
.meetingRoomView .meetingRoomItem .content .title {
font-size: 32rpx;
font-size: 40rpx;
font-weight: 700;
color: black;
text-align: center;
margin-top: 40rpx;
}
.meetingRoomView .meetingRoomItem .content .articleView {
@ -59,9 +69,19 @@
}
.meetingRoomView .meetingRoomItem .content .priceView {
display: flex;
justify-content: start;
align-items: center;
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 50rpx;
line-height: 50rpx;
text-align: center;
background-color: #D8E9FC;
color: #000;
}
.meetingRoomView .meetingRoomItem .disabled .priceView {
background-color: #F2F2F2 !important;
}
.meetingRoomView .meetingRoomItem .content .priceView .price {
@ -72,7 +92,7 @@
.meetingRoomView .meetingRoomItem .content .priceView .unit {
font-size: 24rpx;
color: gray;
color: #333;
}
@ -100,3 +120,10 @@
height: 100%;
border-radius: 10rpx;
}
.roomType {
width: 100%;
padding: 15rpx 30rpx;
font-weight: 700;
font-size: 32rpx;
}