297 lines
6.7 KiB
JavaScript
Raw Normal View History

const app = getApp()
import Notify from '@vant/weapp/notify/notify';
import {
depLogin
} from "../../../api/login/login.js"
Page({
/**
* 页面的初始数据
*/
data: {
IMG_NAME: app.IMG_NAME,
userDetail: {},
menuList: [{
type: "reservation",
name: "会议预约",
img: "/profile/static/meeting/index/reservation.png",
path: "/pages/meeting/meetingReservation/meetingReservation",
visible: false
}, {
type: "record",
name: "预约记录",
img: "/profile/static/meeting/index/record.png",
path: "/pages/meeting/reservationRecord/meetingRecord/meetingRecord",
visible: true
}, {
type: "approve",
name: "会议审核",
img: "/profile/static/meeting/index/examine.png",
path: "/pages/meeting/reservationRecord/approve/approve",
visible: false
}, {
type: "service",
name: "会务服务",
img: "/profile/static/meeting/index/serve.png",
path: "/pages/meeting/reservationRecord/service/service",
visible: false
}],
timeShow: false,
currentDate: new Date().getTime(),
minDate: new Date().getTime(),
maxDate: '',
formatter(type, value) {
if (type === 'year') {
return `${value}`;
}
if (type === 'month') {
return `${value}`;
}
if (type === 'day') {
return `${value}`;
}
return value;
},
// 用户登录相关参数
showLogin: false, // 是否展示弹出层
username: '', // 用户名
pwd: '', // 登录密码
depName: '', // 登录单位
2024-09-24 23:04:06 +08:00
depId: '', // 登录单位id
beforeClose(action) {
return new Promise(resolve => {
if (action === 'confirm') {
resolve(false)
} else {
resolve(true)
}
})
}, // 弹出层点击确认不关闭,手动关
},
showTimePicker() {
this.setData({
timeShow: true
});
},
hideTimePicker() {
this.setData({
timeShow: false
});
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
let _this = this
let userDetail = wx.getStorageSync('user')
// 获取一月后时间,默认只能选一个月之后,管理员可以选一年后的
const today = new Date()
const newDate = new Date(today)
if (userDetail.roomRole == 5) {
newDate.setFullYear(newDate.getFullYear() + 1)
} else {
newDate.setMonth(newDate.getMonth() + 1)
}
_this.setData({
userDetail,
maxDate: newDate.getTime()
})
// 展示模块
_this.visibleBlock()
},
// 跳转会议预约页面
goRes(e) {
let date = new Date(e.detail);
let year = date.getFullYear()
let month = date.getMonth() + 1
let day = date.getDate()
let chooseTime = year + '-' + month + '-' + day + ' 00:00:00'
let chooseTimeStr = new Date(chooseTime).getTime()
wx.navigateTo({
url: '/pages/meeting/meetingReservation/meetingReservation?time=' + chooseTimeStr + '&dep=' + this.data.depName + '&depId=' + this.data.depId,
})
},
// 跳转菜单
jumpMenu(e) {
console.log('jumpMenu', e);
let obj = e.currentTarget.dataset.obj
if (obj.visible) {
// 未授权
if (obj.name == '会议预约') {
// 会议预约需要先选择时间
this.showTimePicker()
} else {
wx.navigateTo({
url: obj.path,
})
}
} else {
if (obj.name === '会议预约') {
if (this.data.userDetail.roomRole == 5) {
// 管理员,不需要认证
this.showTimePicker()
} else {
// 未授权
this.setData({
showLogin: true
})
}
return
// app.selfShowMsg('您暂无权限使用该功能请联系机关事务局XXX电话15888888888进行赋权后使用')
} else {
app.vantNotifyErrTop(Notify, `"${obj.name}"无权限访问!`)
return
}
}
},
// 展示模块
visibleBlock() {
let _this = this
let userDetail = _this.data.userDetail
let userRole = userDetail.roomRole
let menuList = _this.data.menuList
// 角色类型 1.普通用户3.会务人员5.管理员
if (userRole == 3) {
// 会务人员,会务服务允许访问
menuList = menuList.map(item => {
if (item.type == 'service') {
item.visible = true
}
return item
})
}
if (userRole == 5) {
// 管理员,会务审核允许访问,且预约记录自动跳转到会议审核
menuList = menuList.map(item => {
if (item.type == 'approve') {
item.visible = true
}
if (item.type == 'record') {
item.path = '/pages/meeting/reservationRecord/approve/approve'
item.visible = true
}
return item
})
}
_this.setData({
menuList
})
},
back() {
wx.navigateBack()
},
onCloseLogin(e) {
let _this = this;
_this.setData({
cancelId: '',
showCancelReason: false,
cancelReason: ''
})
},
onChangeUsername(e) {
let _this = this;
_this.setData({
username: e.detail
})
},
onChangePwd(e) {
let _this = this;
_this.setData({
pwd: e.detail
})
},
// 认证方法
orderLogin() {
let _this = this;
let uName = _this.data.username
let pwd = _this.data.pwd
if (uName === '' || pwd === '') {
Notify({
message: '请填写用户名、密码!',
top: 50
})
return
}
depLogin({
loginName: uName,
password: pwd
}).then(res => {
if (res.code !== 0) {
Notify({
message: '认证失败!',
top: 50
})
} else {
// 认证通过
Notify({
type: 'success',
message: '认证通过!',
top: 50
})
_this.setData({
['menuList[0].visible']: true,
username: '',
pwd: '',
showLogin: false,
2024-09-24 23:04:06 +08:00
depName: res.data.orgName,
depId: res.data.orgId,
})
this.showTimePicker()
}
console.log('depLogin', res)
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})