From b000e640c08486c687728dadc1f9d8ecdf3d3bd7 Mon Sep 17 00:00:00 2001
From: jiangping <898885815@qq.com>
Date: 星期二, 07 五月 2024 11:03:20 +0800
Subject: [PATCH] meeting
---
h5/packagesMine/notice/notice.vue | 172 +++
h5/pages.json | 263 +++-
h5/pages/meeting/mine/mine.vue | 12
h5/main.js | 2
h5/packagesMine/confirmAppointment/confirmAppointment.vue | 584 +++++++++++
h5/packagesMine/reservation/reservation.vue | 439 ++++++++
h5/pages/meeting/manage/manage.vue | 42
h5/pages/meeting/myAppointment/myAppointment.vue | 46
h5/packagesMine/meetingDetails/meetingDetails.vue | 676 +++++++++++++
h5/pages/meeting/index/index.vue | 10
h5/store/index.js | 81 +
h5/components/Li-Calendar/Li-Calendar.vue | 10
h5/utils/meetingHttp.js | 67
h5/packagesMine/selectPersonnel/selectPersonnel.vue | 434 ++++++++
h5/packagesMine/notificationDetails/notificationDetails.vue | 62 +
h5/pages/meeting/personal/personal.vue | 16
16 files changed, 2,720 insertions(+), 196 deletions(-)
diff --git a/h5/components/Li-Calendar/Li-Calendar.vue b/h5/components/Li-Calendar/Li-Calendar.vue
index 48bfd1d..8f006b9 100644
--- a/h5/components/Li-Calendar/Li-Calendar.vue
+++ b/h5/components/Li-Calendar/Li-Calendar.vue
@@ -5,7 +5,7 @@
<!-- <image :src="lastDisabled ? disable : nodisable" mode="widthFix" @tap="subMonth"></image> -->
<image :src="nodisable" mode="widthFix" @tap="subMonth"></image>
<text>{{title_time}}</text>
- <image src="@/static/icon/ar_right@2x.png" mode="widthFix" @tap="addMonth"></image>
+ <image src="@/static/meeting/icon/ar_right@2x.png" mode="widthFix" @tap="addMonth"></image>
</view>
<view class="header-right" @tap="backToToday">鍥炲埌浠婂ぉ</view>
<!-- <text class='calendar-lastMonth' @tap="subMonth" v-bind:class="{'calendar-btn-disabled' : lastDisabled }">{{lastText}}</text>
@@ -158,8 +158,8 @@
},
data() {
return {
- nodisable: require('@/static/icon/ar_left@2x.png'),
- disable: require('@/static/icon/ar_left_disable.png'),
+ nodisable: require('@/static/meeting/icon/ar_left@2x.png'),
+ disable: require('@/static/meeting/icon/ar_left_disable.png'),
nextDisabled: false,
lastDisabled: true,
@@ -688,7 +688,7 @@
},
computed: {
transformObj:function () {
- return 'translate3d(' + this.transform_x + 'px, 0px, 0px) translateZ(0px)';
+ return 'translate3d(' + this.transform_x + 'px, 0px, 0px) translateZ(0px)';
},
transformTimeObj:function () {
return this.transform_time + 'ms';
@@ -699,4 +699,4 @@
<style>
@import url("./Li-Calendar.css");
-</style>
+</style>
diff --git a/h5/main.js b/h5/main.js
index 9fdec70..bdae919 100644
--- a/h5/main.js
+++ b/h5/main.js
@@ -31,7 +31,9 @@
// http鎺ュ彛API鎶界
import httpApi from '@/utils/http.api.js'
+import httpMeetingApi from '@/utils/meetingHttp.js'
Vue.use(httpApi, app)
+Vue.use(httpMeetingApi, app)
// 璇锋眰鎷︽埅鍣�
import interceptor from '@/utils/http.interceptor.js'
diff --git a/h5/packagesMine/confirmAppointment/confirmAppointment.vue b/h5/packagesMine/confirmAppointment/confirmAppointment.vue
new file mode 100644
index 0000000..448fbe3
--- /dev/null
+++ b/h5/packagesMine/confirmAppointment/confirmAppointment.vue
@@ -0,0 +1,584 @@
+<template>
+ <view class="confirm">
+ <view class="confirm_a">
+ <view class="confirm_a_item">
+ <view class="label">浼氳鏃堕棿</view>
+ <view class="content">
+ {{time}}
+ </view>
+ </view>
+ <view class="confirm_a_item">
+ <view class="label">浼氳瀹�</view>
+ <view class="content">
+ {{info.name}} <template v-if="info.limitNum">(鍙绾硔{info.limitNum}}浜�)</template>
+ </view>
+ </view>
+ <view class="confirm_a_item">
+ <view class="label">棰勭害浜�</view>
+ <view class="content">
+ {{user.departmentName ? user.departmentName : userInfo.departmentName}} {{user.realname ? user.realname : userInfo.realname}} {{user.mobile ? user.mobile : userInfo.mobile}}
+ </view>
+ </view>
+ </view>
+ <view class="confirm_b">
+ <view class="confirm_b_item">
+ <view class="label">
+ <text>浼氳涓婚</text>
+ <text>*</text>
+ </view>
+ <view class="input">
+ <input type="text" v-model="from.theme" placeholder="璇疯緭鍏ヤ細璁富棰�" placeholder-class="placeholder" />
+ </view>
+ </view>
+ <view class="confirm_b_item">
+ <view class="label">
+ <text>浼氳鍐呭</text>
+ </view>
+ <view class="input">
+ <textarea class="textarea" placeholder="璇锋寜瑕佹眰杈撳叆鍐呭" maxlength="300" v-model="from.content" />
+ <!-- <view class="num">{{ from.content.length }}/300</view> -->
+ <!-- <textarea
+ v-model="from.content"
+ placeholder="璇锋寜瑕佹眰杈撳叆鍐呭"
+ placeholder-style="color: #999999;font-size: 30rpx;font-weight: 400;"
+ :maxlength="300"/> -->
+
+ <!-- <u--textarea
+ border="none"
+ v-model="from.content"
+ maxlength="300"
+ height="150"
+ placeholder="璇锋寜瑕佹眰杈撳叆鍐呭"
+ count></u--textarea> -->
+ </view>
+ </view>
+ </view>
+ <view class="confirm_b">
+ <view class="confirm_b_item" @click="jump">
+ <view class="label">
+ <text>鍙備細浜哄憳</text>
+ <text>*</text>
+ </view>
+ <view class="select">
+ <text :style="{color: usersName ? '#000' : ''}">{{usersName ? usersName : '璇烽�夋嫨'}}</text>
+ <view class="select_right">></view>
+ </view>
+ </view>
+ <view class="confirm_b_item" v-if="info.projectList && info.projectList.length > 0">
+ <view class="label">
+ <text>閫夋嫨鏈嶅姟椤�</text>
+ </view>
+ <view class="multiple">
+ <view
+ :class="item.active ? 'multiple_item active' : 'multiple_item'" v-for="(item, index) in info.projectList"
+ :key="index"
+ @click="serviceItems(index)">
+ {{item.projectName}}
+ </view>
+ </view>
+ </view>
+ <view class="confirm_b_item">
+ <view class="label">
+ <text>闄勪欢</text>
+ </view>
+ <view class="uplaod">
+ <view class="uplaod_item" v-for="(item, index) in from.files" :key="index">
+ <view class="uplaod_item_url">
+ <text @click="linkAddress(item.url)">{{item.name}}</text>
+ <!-- <u--text :lines="1" mode="link" :text="item.name" :href="item.url" ></u--text> -->
+ </view>
+ <text class="dele" @click="dele(index)">鍒犻櫎</text>
+ </view>
+ <view class="uplaod_box" @click="uploadFile">
+ <image src="@/static/meeting/icon/ic_upload@2x.png" mode="widthFix"></image>
+ <text>鐐瑰嚮涓婁紶</text>
+ </view>
+ </view>
+ </view>
+ <view class="confirm_b_item">
+ <view class="label">
+ <text>澶囨敞</text>
+ </view>
+ <view class="input">
+ <textarea
+ v-model="from.notes"
+ placeholder="璇疯緭鍏�"
+ placeholder-style="color: #999999;font-size: 30rpx;font-weight: 400;"
+ :maxlength="300"/>
+ <!-- <u--textarea
+ border="none"
+ v-model="from.notes"
+ height="150"
+ placeholder="璇疯緭鍏�"></u--textarea> -->
+ </view>
+ </view>
+ </view>
+ <view class="confirm_footer">
+ <view class="confirm_footer_btn" @click="submit">{{id ? '纭缂栬緫' : '纭棰勭害'}}</view>
+ </view>
+ </view>
+</template>
+
+<script>
+ import { mapState } from 'vuex'
+ export default {
+ data() {
+ return {
+ id: '',
+ roomId: '',
+ value2: '',
+ time: '',
+ info: {},
+ usersName: '',
+ timelist: [],
+ userList: [],
+ startTime: '',
+ endTime: '',
+ from: {
+ theme: '',
+ content: '',
+ files: [],
+ notes: ''
+ },
+ user: {}
+ };
+ },
+ computed: {
+ ...mapState(['userInfo'])
+ },
+ async onLoad(option) {
+ if (option.descid) {
+ uni.setNavigationBarTitle({
+ title: "缂栬緫浼氳"
+ });
+ this.roomId = option.roomId
+ this.id = option.descid
+ this.timelist = JSON.parse(option.timeList)
+ await this.getDesc()
+ this.getdesc()
+ } else {
+ this.time = option.time
+ this.roomId = option.id
+ this.startTime = option.startTime
+ this.endTime = option.endTime
+ this.timelist = JSON.parse(option.list)
+ this.getDesc()
+ }
+ },
+ onShow() {
+ uni.$once('user', (data) => {
+ this.userList = data.userList
+ this.usersName = data.usersName
+ })
+ },
+ methods: {
+ linkAddress(link) {
+ uni.setClipboardData({
+ data: link,
+ success: function () {
+ uni.showToast({
+ title: '閾炬帴宸插鍒讹紝璇峰湪娴忚鍣ㄦ墦寮�',
+ icon: 'none',
+ duration: 2000
+ });
+ }
+ });
+ },
+ dele(index) {
+ this.from.files.splice(index, 1)
+ },
+ getdesc() {
+ this.$u.api.meetingDetail({ id: this.id })
+ .then(res => {
+ this.time = res.data.meetingDate + ' ' + res.data.meetingTime
+ this.from.notes = res.data.remark
+ this.from.theme = res.data.meetingName
+ this.from.content = res.data.meetingContent
+ this.user = res.data.bookingUser
+ this.startTime = res.data.meetingDate + ' ' + res.data.meetingTime.substring(0, 5)
+ this.endTime = res.data.meetingDate + ' ' + res.data.meetingTime.substring(8, 13)
+
+ if (res.data.projectsResponseList.length > 0) {
+ res.data.projectsResponseList.forEach(item => {
+ this.info.projectList.forEach(child => {
+ if (item.id === child.projectId) {
+ child.active = true
+ }
+ })
+ })
+ }
+
+ if (res.data.multiFileList.length > 0) {
+ this.from.files = res.data.multiFileList.map(item => {
+ return {
+ fileurl: item.fileurl,
+ name: item.name,
+ url: item.fileurl + item.name
+ }
+ })
+ }
+ if (res.data.userResponseList.length > 0) {
+ this.userList = res.data.userResponseList.map(item => {
+ return {
+ userId: item.id
+ }
+ })
+ let name = res.data.userResponseList.map(item => item.realname)
+ this.usersName = name.join('锛�')
+ }
+ })
+ },
+ submit() {
+ if (!this.from.theme) return uni.showToast({
+ title: '浼氳涓婚涓嶈兘涓虹┖',
+ icon: 'none',
+ duration: 2000
+ });
+ if (this.userList.length === 0) return uni.showToast({
+ title: '璇峰厛閫夋嫨鍙備細浜哄憳',
+ icon: 'none',
+ duration: 2000
+ });
+ var that = this
+ uni.requestSubscribeMessage({
+ tmplIds: [
+ '_-HjcxNFJQU3O6P_I_bFzEQsiuUsT_0vbCLUxRL4zRA',
+ '6dc1gVYwRVm7kTnjdZRtzMGa48iBPZ5kX2N_S7TnDac',
+ 'lEWpQak_nN9iC3re0Ub2RH7vgBxvB-EX8yp_Q5SdQTA'
+ ],
+ success (res) {
+ let projectList = []
+ that.info.projectList.forEach(item => {
+ if (item.active) {
+ projectList.push({ projectId: item.projectId })
+ }
+ })
+ that.$u.api.reservationMeeting({
+ id: that.id,
+ bookingTimeList: that.timelist,
+ content: that.from.content.substring(0, 300),
+ fileList: that.from.files,
+ name: that.from.theme,
+ projectList,
+ remark: that.from.notes,
+ roomId: that.roomId,
+ sysList: that.userList,
+ startTime: (that.startTime + ':00').replace(/骞�/g, '-').replace(/鏈�/g, '-').replace(/鏃�/g, ''),
+ endTime: (that.endTime + ':00').replace(/骞�/g, '-').replace(/鏈�/g, '-').replace(/鏃�/g, '')
+ }).then(res => {
+ if (res.code === 200) {
+ let url = `/packagesMine/meetingDetails/meetingDetails?id=${res.data}`
+ if (that.id) {
+ uni.showToast({
+ title: '缂栬緫鎴愬姛',
+ icon: 'none',
+ duration: 2000,
+ complete() {
+ setTimeout(() => {
+ uni.reLaunch({
+ url: url
+ });
+ }, 2000)
+ }
+ });
+ } else {
+ uni.showToast({
+ title: '棰勭害鎴愬姛',
+ icon: 'none',
+ duration: 2000,
+ complete() {
+ setTimeout(() => {
+ uni.reLaunch({
+ url: url
+ });
+ }, 2000)
+ }
+ });
+ }
+ }
+ })
+ },
+ fail(err) {
+ console.log(err)
+ // uni.showToast({
+ // title: '璁㈤槄澶辫触',
+ // icon: 'error',
+ // duration: 2000
+ // });
+ }
+ })
+ },
+ serviceItems(i) {
+ this.info.projectList[i].active = !this.info.projectList[i].active
+ },
+ getDesc() {
+ this.$u.api.getRoomDetail({ roomId: this.roomId })
+ .then(res => {
+ res.data.projectList.forEach(item => {
+ item.active = false
+ })
+ this.info = res.data
+ })
+ },
+ uploadFile() {
+ var that = this
+ uni.chooseImage({
+ success: (chooseImageRes) => {
+ for (let i = 0; i < chooseImageRes.tempFilePaths.length; i++) {
+ uni.uploadFile({
+ url: `${that.$baseUrl}public/uploadLocal`,
+ filePath: chooseImageRes.tempFilePaths[i],
+ name: 'file',
+ formData: {
+ 'folder': 'projects'
+ },
+ success: (uploadFileRes) => {
+ console.log(JSON.parse(uploadFileRes.data));
+ let res = JSON.parse(uploadFileRes.data).data
+ that.from.files.push({
+ fileurl: res.imgaddr,
+ name: res.imgname,
+ url: res.url
+ })
+ }
+ });
+ }
+ }
+ });
+ },
+ jump() {
+ uni.navigateTo({
+ url: `/packagesMine/selectPersonnel/selectPersonnel?startTime=${this.startTime}&endTime=${this.endTime}`
+ });
+ }
+ }
+ }
+</script>
+
+<style lang="scss">
+ .confirm {
+ width: 100%;
+ padding-bottom: calc(108rpx + env(safe-area-inset-bottom));
+ .confirm_a {
+ width: 100%;
+ padding: 30rpx;
+ box-sizing: border-box;
+ background-color: #fff;
+ .confirm_a_item {
+ width: 100%;
+ display: flex;
+ flex-direction: column;
+ padding-bottom: 30rpx;
+ margin-bottom: 30rpx;
+ border-bottom: 1rpx solid #E5E5E5;
+ &:last-child {
+ margin-bottom: 0 !important;
+ border: none !important;
+ padding-bottom: 0 !important;
+ }
+ .label {
+ font-size: 28rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #666666;
+ margin-bottom: 30rpx;
+ }
+ .content {
+ font-size: 30rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #222222;
+ }
+ }
+ }
+ .confirm_b {
+ width: 100%;
+ margin-top: 20rpx;
+ padding: 30rpx;
+ background: #fff;
+ box-sizing: border-box;
+ .confirm_b_item {
+ display: flex;
+ flex-direction: column;
+ padding-bottom: 30rpx;
+ margin-bottom: 30rpx;
+ border-bottom: 1rpx solid #E5E5E5;
+ &:last-child {
+ margin-bottom: 0 !important;
+ border: none !important;
+ padding-bottom: 0 !important;
+ }
+ .select {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ .select_right {
+ flex-shrink: 0;
+ margin-left: 20rpx;
+ color: #999999;
+ font-size: 24rpx;
+ }
+ text {
+ flex: 1;
+ font-size: 30rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #999999;
+ overflow:hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ -o-text-overflow:ellipsis;
+ }
+ }
+ .uplaod {
+ width: 100%;
+ .uplaod_item {
+ width: 100%;
+ // word-break: break-all;
+ margin-bottom: 20rpx;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ &:last-child {
+ margin-bottom: 0 !important;
+ }
+ .uplaod_item_url {
+ flex: 1;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ text {
+ font-size: 28rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #0055FF;
+ text-decoration: underline;
+ }
+ // .u-link {
+ // width: 200rpx !important;
+ // overflow: hidden !important;
+ // white-space: nowrap !important;
+ // text-overflow: ellipsis !important;
+ // }
+ }
+ .dele {
+ font-size: 26rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #666666;
+ flex-shrink: 0;
+ margin-left: 20rpx;
+ }
+ }
+ .uplaod_box {
+ width: 212rpx;
+ height: 64rpx;
+ line-height: 64rpx;
+ text-align: center;
+ border-radius: 4rpx;
+ border: 1rpx solid #0055FF;
+ image {
+ width: 28rpx;
+ height: 28rpx;
+ margin-right: 8rpx;
+ }
+ text {
+ font-size: 28rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #0055FF;
+ }
+ }
+ }
+ .multiple {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ flex-wrap: wrap;
+ .active {
+ background: #0055FF !important;
+ color: #FFFFFF !important;
+ }
+ .multiple_item {
+ padding: 18rpx 32rpx;
+ background: #F7F7F7;
+ border-radius: 4rpx;
+ box-sizing: border-box;
+ font-size: 28rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #333333;
+ margin-right: 20rpx;
+ margin-bottom: 20rpx;
+ }
+ }
+ .label {
+ display: flex;
+ align-items: center;
+ margin-bottom: 30rpx;
+ text {
+ &:nth-child(1) {
+ font-size: 28rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #666666;
+ margin-right: 8rpx;
+ }
+ &:nth-child(2) {
+ font-size: 28rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #F62710;
+ }
+ }
+ }
+ .input /deep/ {
+ width: 100%;
+ display: flex;
+ flex-direction: column;
+ align-items: flex-end;
+ textarea {
+ width: 100%;
+ }
+ .u-textarea {
+ padding: 0 !important;
+ }
+ .placeholder {
+ font-size: 30rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #999999;
+ }
+ input {
+ width: 100%;
+ font-size: 30rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #000000;
+ }
+ }
+ }
+ }
+ .confirm_footer {
+ width: 100%;
+ position: fixed;
+ bottom: 0;
+ box-sizing: border-box;
+ padding: 10rpx 30rpx calc(10rpx + env(safe-area-inset-bottom)) 30rpx;
+ z-index: 9;
+ .confirm_footer_btn {
+ width: 690rpx;
+ height: 88rpx;
+ line-height: 88rpx;
+ text-align: center;
+ background: #0055FF;
+ border-radius: 4rpx;
+ font-size: 30rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #FFFFFF;
+ }
+ }
+ }
+</style>
diff --git a/h5/packagesMine/meetingDetails/meetingDetails.vue b/h5/packagesMine/meetingDetails/meetingDetails.vue
new file mode 100644
index 0000000..8476d9d
--- /dev/null
+++ b/h5/packagesMine/meetingDetails/meetingDetails.vue
@@ -0,0 +1,676 @@
+<template>
+ <page-meta :page-style="'overflow:'+(pageShow?'hidden':'visible')"></page-meta>
+ <view class="details">
+ <view class="details_head">
+ <text>{{info.meetingName || ''}}</text>
+ <text>{{info.roomName || ''}}锝渰{info.meetingDate || ''}} {{info.meetingTime || ''}}</text>
+ </view>
+ <view class="details_content">
+ <view class="details_content_item">
+ <view class="label">鍙備細浜哄憳</view>
+ <view class="content" v-if="info.userResponseList && info.userResponseList.length > 0">
+ <text v-for="(item, index) in info.userResponseList" :key="index">
+ {{ item.realname }}({{item.departmentName}})<template v-if="index !== info.userResponseList.length - 1">锛�</template>
+ </text>
+ </view>
+ </view>
+ <view class="details_content_item" v-if="info.meetingContent">
+ <view class="label">浼氳鍐呭</view>
+ <view class="content">
+ <text>{{info.meetingContent || ''}}</text>
+ </view>
+ </view>
+ <view class="details_content_item" v-if="info.projectsResponseList && info.projectsResponseList.length > 0">
+ <view class="label">鏈嶅姟椤�</view>
+ <view class="content" v-if="info.projectsResponseList && info.projectsResponseList.length > 0">
+ <text v-for="(item, index) in info.projectsResponseList" :key="index">
+ {{item.name}}<template v-if="index !== info.projectsResponseList.length - 1"> | </template>
+ </text>
+ </view>
+ <view class="content" v-else>
+ <text>鏃犳湇鍔¢」</text>
+ </view>
+ </view>
+ <view class="details_content_item">
+ <view class="label">闄勪欢</view>
+ <view class="list" v-if="info.multiFileList && info.multiFileList.length > 0">
+ <view class="list_item" v-for="(item, index) in info.multiFileList" :key="index">
+ <u--text mode="link" :text="item.name" :href="item.fileFullUrl + item.fileurl"></u--text>
+ </view>
+ </view>
+ <view class="content" v-else>
+ <text>鏃�</text>
+ </view>
+ </view>
+ <view class="details_content_item" v-if="info.remark">
+ <view class="label">澶囨敞</view>
+ <view class="content">
+ <text>{{info.remark || ''}}</text>
+ </view>
+ </view>
+ </view>
+ <view class="details_content">
+ <view class="details_content_item">
+ <view class="label">棰勭害浜�</view>
+ <view class="content">
+ <text>{{info.bookingUser.departmentName || ''}} {{info.bookingUser.realname || ''}} {{info.bookingUser.mobile || ''}}</text>
+ </view>
+ </view>
+ </view>
+ <!-- 鍐呴儴鐢ㄦ埛鑷繁鍙戝竷 -->
+ <view class="details_footer" v-if="userInfo.id === info.bookingUser.id && userInfo.type === 0 && info.meetingStatus !== 3">
+ <view class="details_footer_left">
+ <view class="item" @click="copy" v-if="info.meetingStatus === 1 || info.meetingStatus === 2">
+ <image src="@/static/meeting/icon/ic_copy@2x.png" mode="widthFix"></image>
+ <text>澶嶅埗</text>
+ </view>
+ <view class="item" @click="edit" v-if="info.meetingStatus === 1">
+ <image src="@/static/meeting/icon/ic_edit@2x.png" mode="widthFix"></image>
+ <text>淇敼</text>
+ </view>
+ <view class="item" @click="closeRoom" v-if="info.meetingStatus === 1">
+ <image src="@/static/meeting/icon/ic_cancel@2x.png" mode="widthFix"></image>
+ <text>鍙栨秷</text>
+ </view>
+ </view>
+ <view class="details_footer_right">
+ <view class="btn1">
+ <button open-type="share"></button>
+ 鍒嗕韩
+ </view>
+ <view class="btn2" @click="open" v-if="isShow">寮�闂ㄧ爜</view>
+ </view>
+ </view>
+ <!-- 鍐呴儴鐢ㄦ埛涓嶆槸鑷繁鍙戝竷 -->
+ <view class="details_footer" v-else-if="userInfo.id !== info.bookingUser.id && userInfo.type === 0 && info.meetingStatus !== 3">
+ <view class="details_footer_left">
+ <view class="item" @click="copy" v-if="info.meetingStatus === 1 || info.meetingStatus === 2">
+ <image src="@/static/meeting/icon/ic_copy@2x.png" mode="widthFix"></image>
+ <text>澶嶅埗</text>
+ </view>
+ </view>
+ <view class="details_footer_right">
+ <view class="btn1">
+ <button open-type="share"></button>
+ 鍒嗕韩
+ </view>
+ <view class="btn2" @click="open" v-if="isShow">寮�闂ㄧ爜</view>
+ </view>
+ </view>
+ <!-- 璁垮 -->
+ <view class="details_footer" v-else-if="(!userInfo || userInfo.type === 1) && info.meetingStatus !== 3">
+ <button class="details_footer_submit" v-if="!userInfo" open-type="getPhoneNumber" @getphonenumber="getphonenumber">鏌ョ湅浼氳瀹ゅ紑闂ㄧ爜</button>
+ <view class="details_footer_submit" v-else @click="open">鏌ョ湅浼氳瀹ゅ紑闂ㄧ爜</view>
+ </view>
+ <view v-else></view>
+ <!-- 寮�闂ㄧ爜 -->
+ <view class="details_ma">
+ <u-popup :show="show" :overlayStyle="{'touch-action':'none'}" :closeable="true" :safeAreaInsetBottom="false" :round="0" mode="center" @close="close">
+ <view class="box" @touchmove.stop.prevent="preventHandle">
+ <text class="box_a">{{info.roomName || ''}}</text>
+ <text class="box_b" v-if="time > 0">浜岀淮鐮亄{time}}绉掑唴鏈夋晥</text>
+ <text class="box_b" v-else>浜岀淮鐮佸凡杩囨湡锛岃鐐瑰嚮浜岀淮鐮佸埛鏂�</text>
+ <view class="qrcode" @click="Refresh(1)">
+ <image :src="qrurl" mode="widthFix"></image>
+ </view>
+ <text class="box_c">鍑虹ず璇ヤ簩缁寸爜锛屾壂鐮佽繘鍏ヤ細璁</text>
+ <text class="box_d" v-if="info.roomUser">濡傛灉鎵撲笉寮�璇疯仈绯荤鐞嗗憳锛�</text>
+ <text class="box_e" v-if="info.roomUser">{{info.roomUser.realname}} <template v-if="info.roomUser.mobile">{{info.roomUser.mobile}}</template></text>
+ </view>
+ </u-popup>
+ </view>
+
+ <u-modal
+ :show="show1"
+ title="鎻愮ず"
+ content='鏄惁纭鍙栨秷褰撳墠浼氳'
+ @confirm="confirm"
+ @cancel="close1"
+ ref="uModal"
+ :showCancelButton="true"
+ asyncClose="true"></u-modal>
+ </view>
+</template>
+
+<script>
+ import { mapState, mapMutations } from 'vuex'
+ import tkiQrcode from "@/components/tki-qrcode/tki-qrcode.vue"
+ export default {
+ data() {
+ return {
+ roomId: '',
+ pageShow: false,
+ show: false,
+ show1: false,
+ info: {},
+ val: '',
+ time: 0,
+ link: '',
+ qrurl: '',
+ timer: null,
+ timeValue: '',
+ isShow: false,
+ imageUrl: 'https://dmtest.ahapp.net/file/projects/20230511/13f256b832db4a4fadc5e6770f5727bf.png'
+ };
+ },
+ components: { tkiQrcode },
+ onLoad(options) {
+ // 鎵爜杩涘叆
+ if (options.scene) {
+ console.log('鎵爜杩涘叆')
+ let scene = decodeURIComponent(options.scene);
+ console.log(scene)
+ let roomId = scene.substring(0, scene.indexOf('|'))
+ this.roomId = roomId
+ }
+ // 鍒嗕韩杩涘叆
+ if (options.shareId) {
+ console.log('鍒嗕韩杩涘叆')
+ this.roomId = options.shareId
+ }
+ // 姝e父杩涘叆
+ if (options.id) {
+ this.roomId = options.id
+ }
+ this.getdesc()
+ this.getSYSTEM()
+ },
+ computed: {
+ ...mapState(['userInfo', 'token'])
+ },
+ onShareAppMessage({from,target}) {
+ if (from == 'button') {
+ return {
+ title: this.info.meetingName,
+ path: `/packagesMine/meetingDetails/meetingDetails?shareId=${this.info.id}`,
+ imageUrl: this.imageUrl
+ }
+ }
+ },
+ methods: {
+ ...mapMutations(["setToken", "setUserInfo"]),
+ // 鍒锋柊浜岀淮鐮�
+ Refresh(type) {
+ if (this.time !== 0) return
+ uni.showLoading({
+ title: '鍔犺浇涓�',
+ mask: true
+ });
+ uni.request({
+ url: `${this.$baseUrl}web/meeting/getQrCodeImg?id=${this.info.id}&token=${this.token}`,//url鍦板潃
+ method: 'GET',
+ responseType: 'arraybuffer',
+ header: {
+ 'Content-Type': 'application/json'
+ },
+ success: res => {
+ const arrayBuffer = new Uint8Array(res.data)
+ const base64 = "data:image/png;base64," + uni.arrayBufferToBase64(arrayBuffer) //杩欓噷闇�瑕佹坊鍔犲墠缂�
+ this.qrurl = base64
+ if (type === 1) {
+ this.time = Number(this.timeValue) * 60
+ this.getTime()
+ }
+ },
+ complete() {
+ uni.hideLoading();
+ }
+ });
+ },
+ onChange(e) {
+ this.timeData = e
+ },
+ preventHandle() {
+ return
+ },
+ getTime() {
+ this.timer = setInterval(() => {
+ if (this.time === 0) {
+ clearInterval(this.timer)
+ this.timer = null
+ this.time = 0
+ return
+ }
+ this.time = this.time - 1
+ }, 1000)
+ },
+ // 璁垮鐧诲綍鑾峰彇淇℃伅
+ getphonenumber(e) {
+ var that = this
+ if (e.detail.errMsg === 'getPhoneNumber:ok') {
+ uni.login({
+ provider: 'MP-WEIXIN',
+ success: function (loginRes) {
+ that.$u.api.visitorLogin({
+ code: loginRes.code
+ }).then(res => {
+ if (res.data.code === 500) {
+ that.$u.api.visitorWxPhone({
+ encryptedData: e.detail.encryptedData,
+ iv: e.detail.iv,
+ openId: res.data.openId,
+ sessionKey: res.data.sessionKey
+ }).then(resa => {
+ that.setToken(resa.data.token)
+ that.setUserInfo(resa.data.systemUser)
+ })
+ } else {
+ that.setToken(res.data.token)
+ that.setUserInfo(res.data.systemUser)
+ }
+ })
+ }
+ });
+ }
+ },
+ // 璁垮鐧诲綍
+ wxlogin() {
+ var that = this
+ uni.login({
+ provider: 'MP-WEIXIN',
+ success: function (loginRes) {
+ that.$u.api.visitorLogin({
+ code: loginRes.code
+ }).then(res => {
+ that.setToken(res.data.token)
+ that.setUserInfo(res.data.systemUser)
+ })
+ }
+ });
+ },
+ getSYSTEM() {
+ this.$u.api.getSystemDictData({
+ dictCode: 'SYSTEM',
+ label: 'QR_OPENBOOK_VALIDTIME'
+ }).then(res => {
+ // this.time = res.data.code
+ this.time = Number(res.data.code) * 60
+ this.timeValue = Number(res.data.code)
+ })
+ this.$u.api.getSystemDictData({
+ dictCode: 'SYSTEM',
+ label: 'H5_LINK_ADDR'
+ }).then(res => {
+ this.link = res.data.code
+ })
+ },
+ edit() {
+ if (this.info.meetingStatus !== 1) {
+ uni.showToast({
+ title: '浼氳涓嶅彲缂栬緫',
+ icon: "none",
+ duration: 2000
+ });
+ return
+ }
+ uni.navigateTo({
+ url: `/packagesMine/confirmAppointment/confirmAppointment?roomId=${this.info.roomId}&descid=${this.info.id}&timeList=${JSON.stringify(this.info.bookingTimeList)}`
+ });
+ },
+ close1() {
+ this.show1 = false
+ },
+ confirm() {
+ var that = this
+ that.$u.api.reservationCancel({
+ id: that.roomId
+ }).then(res => {
+ that.show1 = false;
+ if (res.code === 200) {
+ that.getdesc()
+ uni.navigateBack({
+ delta: 1
+ });
+ }
+ })
+ },
+ closeRoom() {
+ this.show1 = true;
+ },
+ copy() {
+ let val = `${this.info.bookingUser.realname} 閭�璇锋偍鍔犲叆浼氳
+浼氳涓婚锛�${this.info.meetingName}
+浼氳瀹わ細${this.info.roomName}
+浼氳鏃堕棿锛�${this.info.meetingDate} ${this.info.meetingTime}
+鐐瑰嚮閾炬帴鐩存帴鍔犲叆浼氳锛�
+${this.link}?id=${this.info.id}`
+ uni.setClipboardData({
+ data: val,
+ success: function () {
+ uni.showToast({
+ title: '浼氳淇℃伅澶嶅埗鎴愬姛锛屽幓鍒嗕韩缁欏悓浜嬪惂~',
+ icon:'none',
+ duration: 2000
+ });
+ }
+ });
+ },
+ close() {
+ this.pageShow = false
+ this.show = false
+ this.time = 0
+ clearInterval(this.timer)
+ this.timer = null
+ uni.setScreenBrightness({
+ value: 0.5,
+ success: function () {
+ console.log('success');
+ }
+ });
+ },
+ open() {
+ var that = this
+ this.time = 0
+
+ this.Refresh(2)
+
+ this.time = this.timeValue * 60
+ this.getTime()
+
+ that.pageShow = true
+
+ that.show = true
+ uni.setScreenBrightness({
+ value: 1,
+ success: function () {
+ console.log('success');
+ }
+ });
+ },
+ getQrCodes() {
+
+ },
+ getdesc() {
+ this.$u.api.meetingDetail({ id: this.roomId })
+ .then(res => {
+ this.info = res.data
+ if (res.data.meetingStatus === 3) return
+ res.data.userResponseList.forEach(item => {
+ if (item.id === this.userInfo.id) {
+ this.isShow = true
+ }
+ })
+ if (!this.isShow && this.userInfo && this.userInfo.id) {
+ uni.showToast({
+ title: '鎮ㄥ凡缁忎笉鍦ㄥ綋鍓嶄細璁�',
+ icon: 'none',
+ duration: 2000
+ });
+ }
+ })
+ },
+ qrR(e) {
+ console.log(e)
+ }
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+.time {
+ @include flex;
+ align-items: center;
+
+ &__custom {
+ margin-top: 4px;
+ width: 22px;
+ height: 22px;
+ background-color: $u-primary;
+ border-radius: 4px;
+ /* #ifndef APP-NVUE */
+ display: flex;
+ /* #endif */
+ justify-content: center;
+ align-items: center;
+
+ &__item {
+ color: #fff;
+ font-size: 12px;
+ text-align: center;
+ }
+ }
+
+ &__doc {
+ color: $u-primary;
+ padding: 0px 4px;
+ }
+
+ &__item {
+ color: #606266;
+ font-size: 15px;
+ margin-right: 4px;
+ }
+}
+</style>
+
+<style lang="scss" scoped>
+ .details {
+ width: 100%;
+ padding-bottom: calc(140rpx + env(safe-area-inset-bottom));
+ .details_head {
+ width: 100%;
+ padding: 30rpx;
+ box-sizing: border-box;
+ display: flex;
+ flex-direction: column;
+ background-color: #ffffff;
+ text {
+ &:first-child {
+ font-size: 36rpx;
+ font-family: PingFangSC-Semibold, PingFang SC;
+ font-weight: 600;
+ color: #222222;
+ }
+ &:last-child {
+ font-size: 28rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #666666;
+ margin-top: 30rpx;
+ }
+ }
+ }
+ .details_content {
+ width: 100%;
+ padding: 30rpx;
+ box-sizing: border-box;
+ background-color: #ffffff;
+ margin-top: 20rpx;
+ display: flex;
+ flex-direction: column;
+ .details_content_item {
+ display: flex;
+ flex-direction: column;
+ padding-bottom: 30rpx;
+ margin-top: 30rpx;
+ border-bottom: 1rpx solid #E5E5E5;
+ &:first-child {
+ margin-top: 0 !important;
+ }
+ &:last-child {
+ border: none !important;
+ padding-bottom: 0 !important;
+ }
+ .label {
+ font-size: 28rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #666666;
+ margin-bottom: 22rpx;
+ }
+ .list {
+ display: flex;
+ flex-direction: column;
+ .list_item {
+ width: 100%;
+ word-break: break-all;
+ margin-bottom: 24rpx;
+ &:last-child {
+ margin-bottom: 0 !important;
+ }
+ }
+ }
+ .content {
+ display: flex;
+ align-items: center;
+ flex-wrap: wrap;
+ text {
+ font-size: 30rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #222222;
+ }
+ }
+ }
+ }
+ .details_footer {
+ width: 100%;
+ padding: 20rpx 30rpx calc(20rpx + env(safe-area-inset-bottom)) 30rpx;
+ box-sizing: border-box;
+ background-color: #ffffff;
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ .details_footer_submit {
+ width: 100%;
+ height: 88rpx;
+ line-height: 88rpx;
+ text-align: center;
+ background: #0055FF;
+ border-radius: 4rpx;
+ font-size: 30rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #FFFFFF;
+ }
+ .details_footer_left {
+ display: flex;
+ align-items: center;
+ .item {
+ display: flex;
+ flex-direction: column;
+ margin-right: 40rpx;
+ image {
+ width: 44rpx;
+ height: 44rpx;
+ }
+ text {
+ font-size: 20rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #666666;
+ margin-top: 8rpx;
+ }
+ }
+ }
+ .details_footer_right {
+ flex: 1;
+ display: flex;
+ align-items: center;
+ .btn1 {
+ flex: 1;
+ height: 72rpx;
+ line-height: 72rpx;
+ text-align: center;
+ border-radius: 4rpx;
+ border: 2rpx solid #0055FF;
+ font-size: 30rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #0055FF;
+ margin-right: 20rpx;
+ overflow: hidden;
+ position: relative;
+ button {
+ width: 100vw;
+ height: 300rpx;
+ position: absolute;
+ top: -20rpx;
+ left: -20rpx;
+ background: rgba(0, 0, 0, 0);
+ border: none;
+ z-index: 2;
+ }
+ }
+ .btn2 {
+ flex: 1;
+ height: 72rpx;
+ line-height: 72rpx;
+ text-align: center;
+ background: #0055FF;
+ box-shadow: 0rpx -1rpx 0rpx 0rpx #EEEEEE;
+ border-radius: 4rpx;
+ font-size: 30rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #FFFFFF;
+ }
+ }
+ }
+ .details_ma /deep/ {
+ .u-popup__content {
+ width: 100%;
+ .box {
+ width: 100%;
+ padding: 80rpx 0;
+ box-sizing: border-box;
+ background-color: #ffffff;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-direction: column;
+ .box_a {
+ padding: 0 30rpx;
+ box-sizing: border-box;
+ font-size: 36rpx;
+ font-family: PingFangSC-Semibold, PingFang SC;
+ font-weight: 600;
+ color: #222222;
+ }
+ .box_b {
+ font-size: 28rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #0055FF;
+ margin-top: 40rpx;
+ }
+ .qrcode {
+ width: 440rpx;
+ height: 440rpx;
+ margin-top: 40rpx;
+ overflow: hidden;
+ image {
+ width: 100%;
+ height: 100%;
+ }
+ }
+ .box_c {
+ font-size: 28rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #333333;
+ margin-top: 40rpx;
+ }
+ .box_d {
+ font-size: 26rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #666666;
+ margin-top: 32rpx;
+ }
+ .box_e {
+ font-size: 26rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #666666;
+ }
+ }
+ }
+ }
+
+
+ }
+</style>
diff --git a/h5/packagesMine/notice/notice.vue b/h5/packagesMine/notice/notice.vue
new file mode 100644
index 0000000..e7afae5
--- /dev/null
+++ b/h5/packagesMine/notice/notice.vue
@@ -0,0 +1,172 @@
+<template>
+ <view class="notice">
+ <view class="notice_item" v-for="(item, index) in list" :key="index" @click="jump(item)">
+ <view class="left">
+ <view class="left_dian" v-if="item.status === 0"></view>
+ <image src="@/static/meeting/icon/xiaoxi_ic_gonggao@2x.png" v-if="item.type === 1" mode="widthFix"></image>
+ <image src="@/static/meeting/icon/xiaoxi_ic_gonggao@2x(1).png" v-else mode="widthFix"></image>
+ </view>
+ <view class="right">
+ <view class="right_a">{{item.title}}</view>
+ <view class="right_b" v-if="item.type === 1">
+ <view class="right_b_label">浼氳涓婚锛�</view>
+ <view class="right_b_val">{{item.meetingDetailResponse.meetingName}}</view>
+ </view>
+ <view class="right_b" v-if="item.type === 1">
+ <view class="right_b_label">浼氳鏃堕棿锛�</view>
+ <view class="right_b_val">{{item.meetingDetailResponse.meetingDate}} {{item.meetingDetailResponse.meetingTime}}</view>
+ </view>
+ <view class="right_b" v-if="item.type === 1">
+ <view class="right_b_label">浼氳瀹わ細</view>
+ <view class="right_b_val">{{item.meetingDetailResponse.roomName}}</view>
+ </view>
+ <view class="right_b" v-if="item.type === 1">
+ <view class="right_b_label">棰勭害浜猴細</view>
+ <view class="right_b_val">{{item.meetingDetailResponse.bookingUserName}}</view>
+ </view>
+ <view class="right_c" v-if="item.type !== 1">{{item.createDate}}</view>
+ </view>
+ </view>
+ </view>
+</template>
+
+<script>
+ export default {
+ data() {
+ return {
+ page: 0,
+ next: false,
+ list: []
+ };
+ },
+ onLoad() {
+ this.getList()
+ },
+ onReachBottom(){
+ this.getList()
+ },
+ methods: {
+ getList() {
+ if (!this.next) {
+ this.page = this.page + 1
+ this.$u.api.findNoticePage({
+ capacity: 20,
+ model: {
+
+ },
+ page: this.page
+ }).then(res => {
+ if (res.data.records.length > 0) {
+ this.list = [...this.list, ...res.data.records]
+ }
+ if (res.data.records.length < 20) {
+ this.next = false
+ }
+ })
+ }
+ },
+ jump(item) {
+ var that = this
+ if (item.type === 0) {
+ uni.navigateTo({
+ url: `/packagesMine/notificationDetails/notificationDetails?content=${item.id}`
+ });
+ } else {
+ that.$u.api.getMemberDTO({ id: item.id })
+ .then(res => {
+ that.list.forEach(element => {
+ if (element.id === item.id) {
+ element.status = 1
+ }
+ })
+ uni.navigateTo({
+ url: `/packagesMine/meetingDetails/meetingDetails?id=${item.meetingDetailResponse.id}`
+ });
+ })
+ }
+ }
+ }
+ }
+</script>
+
+<style lang="scss">
+ .notice {
+ width: 100%;
+ padding: 26rpx 30rpx;
+ box-sizing: border-box;
+ .notice_item {
+ width: 100%;
+ display: flex;
+ align-items: flex-start;
+ justify-content: space-between;
+ background-color: #fff;
+ padding: 30rpx;
+ box-sizing: border-box;
+ margin-bottom: 20rpx;
+ &:last-child {
+ margin-bottom: 0 !important;
+ }
+ .left {
+ flex-shrink: 0;
+ width: 72rpx;
+ height: 72rpx;
+ position: relative;
+ margin-right: 24rpx;
+ .left_dian {
+ position: absolute;
+ right: 0;
+ top: 0;
+ width: 18rpx;
+ height: 18rpx;
+ background: #F62710;
+ border: 2rpx solid #FFFFFF;
+ border-radius: 50%;
+ }
+ image {
+ width: 100%;
+ height: 100%;
+ }
+ }
+ .right {
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ .right_a {
+ font-size: 32rpx;
+ font-family: PingFangSC-Medium, PingFang SC;
+ font-weight: 500;
+ color: #222222;
+ margin-bottom: 24rpx;
+ }
+ .right_c {
+ font-size: 26rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #999999;
+ }
+ .right_b {
+ display: flex;
+ align-items: flex-start;
+ margin-bottom: 24rpx;
+ &:last-child {
+ margin-bottom: 0 !important;
+ }
+ .right_b_label {
+ flex-shrink: 0;
+ font-size: 26rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #666666;
+ }
+ .right_b_val {
+ flex: 1;
+ font-size: 26rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #333333;
+ }
+ }
+ }
+ }
+ }
+</style>
diff --git a/h5/packagesMine/notificationDetails/notificationDetails.vue b/h5/packagesMine/notificationDetails/notificationDetails.vue
new file mode 100644
index 0000000..f6d06a4
--- /dev/null
+++ b/h5/packagesMine/notificationDetails/notificationDetails.vue
@@ -0,0 +1,62 @@
+<template>
+ <view class="details">
+ <view class="details_head">
+ <text>{{info.title}}</text>
+ <text>{{info.createDate}}</text>
+ </view>
+ <u-parse :content="content"></u-parse>
+ </view>
+</template>
+
+<script>
+ export default {
+ data() {
+ return {
+ info: {},
+ content: ''
+ };
+ },
+ onLoad(option) {
+ this.$u.api.getNoticeDetail({ id: option.content })
+ .then(res => {
+ this.content = res.data.content
+ this.info = res.data
+ })
+ }
+ }
+</script>
+
+<style>
+ page {
+ background-color: #ffffff;
+ }
+</style>
+
+<style lang="scss">
+ .details {
+ width: 100%;
+ padding: 30rpx;
+ box-sizing: border-box;
+ .details_head {
+ width: 100%;
+ display: flex;
+ flex-direction: column;
+ margin-bottom: 38rpx;
+ text {
+ &:first-child {
+ font-size: 40rpx;
+ font-family: PingFangSC-Medium, PingFang SC;
+ font-weight: 500;
+ color: #222222;
+ }
+ &:last-child {
+ font-size: 26rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #999999;
+ margin-top: 30rpx;
+ }
+ }
+ }
+ }
+</style>
diff --git a/h5/packagesMine/reservation/reservation.vue b/h5/packagesMine/reservation/reservation.vue
new file mode 100644
index 0000000..b66c573
--- /dev/null
+++ b/h5/packagesMine/reservation/reservation.vue
@@ -0,0 +1,439 @@
+<template>
+ <view class="reservation">
+ <view class="date">
+ <view class="date_head">
+ <image src="@/static/meeting/icon/ar_left@2x.png" mode="widthFix" @click="getPreviousDays" v-if="!disable"></image>
+ <image src="@/static/meeting/icon/ar_left_disable.png" mode="widthFix" v-else></image>
+ <text @click="openDate">{{date}}</text>
+ <image src="@/static/meeting/icon/ar_right@2x.png" mode="widthFix" @click="getNextDays"></image>
+ </view>
+ <scroll-view scroll-x="true" class="date_cate">
+ <view class="date_cate_item" v-for="(item, index) in roomList" :key="index" @click="clickRoom(index)">
+ <text :class="i === index ? 'active' : ''">{{item.name}}</text>
+ <view class="date_cate_item_h" v-show="i === index"></view>
+ </view>
+ </scroll-view>
+ <view class="date_list">
+ <view
+ :style="{ background: item.active ? '#0055FF !important;' : '' }"
+ :class="item.isUse ? 'date_list_item disable' : 'date_list_item'"
+ v-for="(item, index) in timeList"
+ :key="index"
+ @click="clickTime(item, index)">
+ <text :style="{ color: item.active ? '#fff !important;' : '' }">{{item.startTime}}-{{item.endTime}}</text>
+ </view>
+ <view class="date_list_item1"></view>
+ </view>
+ </view>
+ <view class="footer">
+ <view class="footer_text">
+ <view class="label">宸查�夋嫨锛�</view>
+ <view class="content" v-if="selected.length > 0">{{roomList[i].name}}锝渰{selectedDate}}</view>
+ </view>
+ <view class="footer_submit">
+ <view class="footer_submit_left">
+ <view class="footer_submit_left_item">
+ <view class="item_hz"></view>
+ <text>宸查�夋嫨</text>
+ </view>
+ <view class="footer_submit_left_item">
+ <view class="item_hz ke"></view>
+ <text>鍙绾�</text>
+ </view>
+ <view class="footer_submit_left_item">
+ <view class="item_hz bu"></view>
+ <text>涓嶅彲棰勭害</text>
+ </view>
+ </view>
+ <view class="footer_submit_right" @click="submit">
+ 纭棰勭害
+ </view>
+ </view>
+ </view>
+ <u-calendar :defaultDate="defaultDateMultiple" :show="dateShow" @confirm="selectDate" @close="closeDate"></u-calendar>
+ </view>
+</template>
+
+<script>
+ import { getDay, getPreviousDay, getNowDate } from '@/utils/utils.js'
+ export default {
+ data() {
+ return {
+ i: 0,
+ date: '',
+ stringDate: '',
+ number: 0,
+ selected: [],
+ roomList: [],
+ timeList: [],
+
+ status: 0,
+ startnum: '',
+ endnum: '',
+
+ dateShow: false,
+ time: '',
+
+ disable: true,
+ defaultDateMultiple: []
+ };
+ },
+ onLoad() {
+ this.date = getDay().today
+ this.stringDate = getDay().date
+ this.defaultDateMultiple = [getDay().date]
+ this.getList()
+ },
+ computed: {
+ selectedDate() {
+ if (this.selected.length > 0) {
+ let start = this.selected[0].date.substring(0, 5)
+ let end = this.selected[this.selected.length - 1].date.substring(6, 11)
+ return `${start}-${end}`
+ }
+ return ''
+ }
+ },
+ methods: {
+ closeDate() {
+ this.dateShow = false
+ },
+ selectDate(e) {
+ this.number = 0
+ this.disable = false
+ this.time = getPreviousDay(this.number, e[0]).date
+ this.date = getPreviousDay(this.number, e[0]).today
+ this.stringDate = getPreviousDay(this.number, e[0]).date
+ this.defaultDateMultiple = [getPreviousDay(this.number, e[0]).date]
+ this.getOpeningHours()
+ this.dateShow = false
+ },
+ openDate() {
+ this.dateShow = true
+ },
+ submit() {
+ if (this.selected.length === 0) {
+ uni.showToast({
+ title: '璇峰厛閫夋嫨棰勭害鏃堕棿',
+ icon: 'none',
+ duration: 2000
+ });
+ return
+ }
+ let time = `${this.date.substring(0, 11)} ${this.selectedDate}`
+ let timeList = JSON.stringify(this.selected)
+ let startTime = `${this.stringDate} ${this.selectedDate.substring(0, 5)}`
+ let endTime = `${this.stringDate} ${this.selectedDate.substring(6, 11)}`
+ uni.navigateTo({
+ url: `/packagesMine/confirmAppointment/confirmAppointment?endTime=${endTime}&startTime=${startTime}&id=${this.roomList[this.i].id}&time=${time}&list=${timeList}`
+ });
+ },
+ // 閫夋嫨寮�鏀炬椂闂�
+ clickTime(obj, index) {
+ if (obj.status === 1) return
+
+ if (this.status === 0) {
+ this.timeList.forEach(item => {
+ item.active = false
+ })
+ this.selected = []
+ this.timeList[index].active = !this.timeList[index].active
+ this.startnum = index
+ this.status = 1
+ } else if (this.status === 1) {
+ this.endnum = index
+
+ let startnum = ''
+ let endnum = ''
+
+ if (this.startnum > this.endnum) {
+ startnum = this.startnum
+ endnum = this.endnum
+ } else {
+ startnum = this.endnum
+ endnum = this.startnum
+ }
+ for (let i = 0; i < this.timeList.length; i++) {
+ if (i <= startnum && i >= endnum) {
+ if (this.timeList[i].isUse) {
+ uni.showToast({
+ title: '鎵�閫夋棩鏈熷寘鍚笉鍙�夋棩鏈�',
+ icon: 'none',
+ duration: 2000
+ });
+ this.status = 0
+ return
+ }
+ }
+ }
+ this.timeList.forEach((element, i) => {
+ if (i <= startnum && i >= endnum) {
+ element.active = true
+ this.selected.push({date: `${element.startTime}-${element.endTime}`, timeId: element.id, id: element.bookingTimeId})
+ } else {
+ element.active = false
+ }
+ })
+ this.status = 0
+ }
+ },
+ // 浼氳瀹ゅ紑鏀炬椂闂�
+ getOpeningHours() {
+ this.$u.api.getRoomUseTime({
+ roomId: this.roomList[this.i].id,
+ yudingDate: this.stringDate
+ }).then(res => {
+ res.data.forEach(item => {
+ item.active = false
+ })
+ this.timeList = res.data
+ })
+ },
+ // 鍒囨崲浼氳瀹�
+ clickRoom(i) {
+ this.i = i
+ this.status = 0
+ this.selected = []
+ this.timeList = []
+ this.getOpeningHours()
+ },
+ getList() {
+ this.$u.api.roomsList()
+ .then(res => {
+ if (res.data.length > 0) {
+ this.roomList = res.data
+ this.getOpeningHours()
+ }
+ })
+ },
+ // 涓婁竴澶╂棩鏈�
+ getPreviousDays() {
+ if (this.disable) true
+ if (getPreviousDay(1, this.stringDate).date === getDay().date) {
+ this.disable = true
+ } else {
+ this.disable = false
+ }
+ this.number = this.number + 1
+ this.date = getPreviousDay(this.number, this.time ? this.time : '').today
+ this.stringDate = getPreviousDay(this.number, this.time ? this.time : '').date
+ this.defaultDateMultiple = [getPreviousDay(this.number, this.time ? this.time : '').date]
+ this.getOpeningHours()
+ },
+ // 涓嬩竴璺虫棩鏈�
+ getNextDays() {
+ this.disable = false
+ this.number = this.number - 1
+ this.date = getPreviousDay(this.number, this.time ? this.time : '').today
+ this.stringDate = getPreviousDay(this.number, this.time ? this.time : '').date
+ this.defaultDateMultiple = [getPreviousDay(this.number, this.time ? this.time : '').date]
+ this.getOpeningHours()
+ }
+ }
+ }
+</script>
+
+<style>
+ page {
+ background-color: #ffffff !important;
+ }
+</style>
+
+<style lang="scss" scoped>
+ .reservation {
+ width: 100%;
+ padding-bottom: calc(env(safe-area-inset-bottom) + 160rpx);
+ .date {
+ width: 100%;
+ padding: 30rpx 0;
+ box-sizing: border-box;
+ .date_head {
+ width: 100%;
+ padding: 0 30rpx;
+ box-sizing: border-box;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ image {
+ width: 30rpx;
+ height: 30rpx;
+ }
+ text {
+ font-size: 32rpx;
+ font-family: PingFangSC-Semibold, PingFang SC;
+ font-weight: 600;
+ color: #222222;
+ margin: 0 40rpx
+ }
+ }
+ .date_cate {
+ white-space: nowrap;
+ width: 100%;
+ padding: 0 30rpx;
+ box-sizing: border-box;
+ // padding-bottom: 32rpx;
+ height: 70rpx;
+ box-sizing: border-box;
+ margin-top: 62rpx;
+ border-bottom: 1rpx solid #E5E5E5;
+ .date_cate_item {
+ display: inline-block;
+ margin-right: 54rpx;
+ position: relative;
+ &:last-child {
+ margin-right: 0 !important;
+ }
+ .date_cate_item_h {
+ position: absolute;
+ bottom: -30rpx;
+ left: 50%;
+ transform: translate(-50%, 0);
+ width: 60rpx;
+ height: 10rpx;
+ background-color: #0055FF;
+ }
+ .active {
+ font-size: 30rpx;
+ font-family: PingFangSC-Semibold, PingFang SC;
+ font-weight: 600;
+ color: #0055FF;
+ }
+ text {
+ font-size: 28rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #333333;
+ }
+ }
+ }
+ .date_list {
+ width: 100%;
+ padding: 28rpx 30rpx;
+ box-sizing: border-box;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ flex-wrap: wrap;
+ .date_list_item1 {
+ width: 220rpx;
+ height: 0;
+ }
+ .active {
+ background: #0055FF !important;
+ text {
+ color: #FFFFFF !important;
+ }
+ }
+ .disable {
+ background: #CCCCCC !important;
+ text {
+ color: #999999 !important;
+ }
+ }
+ .date_list_item {
+ width: 220rpx;
+ height: 80rpx;
+ background: #F7F7F7;
+ border-radius: 4rpx;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin-bottom: 24rpx;
+ text {
+ font-size: 30rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #222222;
+ }
+ }
+ }
+ }
+ .footer {
+ width: 100%;
+ padding: 0 30rpx;
+ box-sizing: border-box;
+ // height: 100rpx;
+ background: #FFFFFF;
+ // box-shadow: 0rpx -1rpx 0rpx 0rpx #EEEEEE;
+ position: fixed;
+ bottom: 0;
+ padding-bottom: env(safe-area-inset-bottom);
+ flex-direction: column;
+ .footer_text {
+ width: 100%;
+ height: 30rpx;
+ display: flex;
+ align-items: center;
+ margin-bottom: 30rpx;
+ .label {
+ flex-shrink: 0;
+ font-size: 28rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #222222;
+ margin-right: 20rpx;
+ }
+ .content {
+ font-size: 28rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #0055FF;
+ }
+ }
+ .footer_submit {
+ width: 100%;
+ height: 100rpx;
+ box-shadow: 0rpx -1rpx 0rpx 0rpx #EEEEEE;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ .footer_submit_left {
+ flex: 1;
+ display: flex;
+ align-items: center;
+ .footer_submit_left_item {
+ display: flex;
+ align-items: center;
+ margin-right: 20rpx;
+ &:last-child {
+ margin-right: 0 !important;
+ }
+ .item_hz {
+ width: 32rpx;
+ height: 32rpx;
+ background: #0055FF;
+ border-radius: 4rpx;
+ margin-right: 10rpx;
+ }
+ .ke {
+ background: #F7F7F7 !important;
+ }
+ .bu {
+ background: #CCCCCC !important;
+ }
+ text {
+ font-size: 26rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #333333;
+ }
+ }
+ }
+ .footer_submit_right {
+ flex-shrink: 0;
+ width: 184rpx;
+ height: 72rpx;
+ line-height: 72rpx;
+ text-align: center;
+ background: #0055FF;
+ box-shadow: 0rpx -1rpx 0rpx 0rpx #EEEEEE;
+ border-radius: 4rpx;
+ font-size: 30rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #FFFFFF;
+ }
+ }
+ }
+ }
+</style>
diff --git a/h5/packagesMine/selectPersonnel/selectPersonnel.vue b/h5/packagesMine/selectPersonnel/selectPersonnel.vue
new file mode 100644
index 0000000..0b049ff
--- /dev/null
+++ b/h5/packagesMine/selectPersonnel/selectPersonnel.vue
@@ -0,0 +1,434 @@
+<template>
+ <view class="select">
+ <view class="select_input">
+ <view class="select_input_box">
+ <u--input
+ placeholder="鎼滅储閮ㄩ棬/浜哄憳"
+ prefixIcon="search"
+ v-model="keyword"
+ @confirm="confirm"
+ prefixIconStyle="font-size: 26rpx;color: #B2B2B2"
+ ></u--input>
+ </view>
+ </view>
+ <view class="select_list" v-if="list && list.length > 0">
+ <view class="select_list_item" v-for="(item, index) in list" :key="index" @click="clickItem(index)">
+ <view class="left">
+ <view class="left_img">
+ <image :src="item.prefixUrl + item.avatar" mode="widthFix" v-if="item.avatar"></image>
+ <view class="left_img_t">{{ item.realname.substring(0, 1) }}</view>
+ </view>
+ <view class="left_info">
+ <view class="left_info_top">
+ <text>{{item.realname}}</text>
+ <text v-if="item.status === 1">鏈変細璁�</text>
+ </view>
+ <view class="left_info_bm">{{item.departmentName}}</view>
+ </view>
+ </view>
+ <image class="xuan" v-if="!item.active" src="@/static/meeting/icon/ic_choose@2x.png" mode="widthFix"></image>
+ <image class="xuan" v-else src="@/static/meeting/icon/ic_choose_sel@2x.png" mode="widthFix"></image>
+ </view>
+ </view>
+ <view class="select_list" v-else>
+ <view class="select_list_wu">
+ <image src="@/static/meeting/common/364.png" mode="widthFix"></image>
+ </view>
+ </view>
+ <view class="select_zw"></view>
+ <view class="select_footer">
+ <view class="footer_top">
+ <view class="footer_top_label">宸查�夋嫨锛�</view>
+ <view class="footer_top_content">
+ {{users}}
+ </view>
+ <image @click="show = true" src="@/static/meeting/icon/renyuan_ic_open@2x.png" mode="widthFix"></image>
+ </view>
+ <view class="footer_btn" @click="go">纭({{selected.length}}/{{list.length}})</view>
+ </view>
+ <u-popup :show="show" :round="20" mode="bottom" @close="show = false">
+ <view class="select_box">
+ <view class="select_box_head">
+ <text>宸查�夋嫨锛歿{selected.length}}浜�</text>
+ <text @click="show = false">纭</text>
+ </view>
+ <scroll-view scroll-y="true" class="select_box_list">
+ <view class="select_box_list_item" v-for="(item, index) in selected" :key="index">
+ <view class="left">
+ <view class="left_img">
+ <image :src="item.prefixUrl + item.avatar" mode="widthFix" v-if="item.avatar"></image>
+ <view class="left_img_t" v-else>{{ item.realname.substring(0, 1) }}</view>
+ </view>
+ <view class="left_info">
+ <text>{{item.realname}}</text>
+ <text>{{item.departmentName}}</text>
+ </view>
+ </view>
+ <view class="dele" @click="dele(index)">绉婚櫎</view>
+ </view>
+ </scroll-view>
+ </view>
+ </u-popup>
+ </view>
+</template>
+
+<script>
+ export default {
+ data() {
+ return {
+ show: false,
+ next: false,
+ page: 0,
+ list: [],
+ keyword: '',
+ selectedName: [],
+ selectedIds: [],
+ selected: [],
+
+ startTime: '',
+ endTime: ''
+ };
+ },
+ onLoad(option) {
+ this.startTime = option.startTime
+ this.endTime = option.endTime
+ this.getList()
+ },
+ computed: {
+ users() {
+ return this.selectedName.join('锛�')
+ }
+ },
+ methods: {
+ go() {
+ uni.$emit('user', { userList: this.selectedIds, usersName: this.users })
+ uni.navigateBack({
+ delta: 1
+ });
+ },
+ dele(i) {
+ this.list.forEach(item => {
+ if (item.id === this.selectedIds[i].userId) {
+ item.active = false
+ }
+ })
+ this.selectedName.splice(i, 1)
+ this.selectedIds.splice(i, 1)
+ this.selected.splice(i, 1)
+ },
+ confirm() {
+ this.list = []
+ this.next = false
+ this.page = 0
+ this.getList()
+ },
+ clickItem(i) {
+ this.selectedName = []
+ this.selectedIds = []
+ this.selected = []
+ this.list[i].active = !this.list[i].active
+ this.list.forEach(item => {
+ if (item.active) {
+ this.selectedName.unshift(item.realname)
+ this.selectedIds.unshift({ userId: item.id })
+ this.selected.unshift(item)
+ }
+ })
+ },
+ getList() {
+ if (!this.next) {
+ this.$u.api.userPage({
+ capacity: 20,
+ page: this.page,
+ model: {
+ keyword: this.keyword,
+ startTime: this.startTime,
+ endTime: this.endTime
+ }
+ }).then(res => {
+ if (res.data.records.length > 0) {
+ res.data.records.forEach(item => {
+ item.active = false
+ })
+ this.list = [...this.list, ...res.data.records]
+ this.page = this.page + 1
+ }
+ if (res.data.records.length < 20) {
+ this.next = true
+ }
+ })
+ }
+ }
+ },
+ onReachBottom(){
+ this.getList()
+ }
+ }
+</script>
+
+<style>
+ page {
+ background-color: #fff !important;
+ }
+</style>
+
+<style lang="scss" scoped>
+ .select {
+ width: 100%;
+ .select_input {
+ width: 100%;
+ position: sticky;
+ top: 0;
+ padding: 20rpx 30rpx;
+ box-sizing: border-box;
+ background: #ffffff;
+ .select_input_box /deep/ {
+ width: 100%;
+ background: #F7F7F7;
+ .u-border {
+ border: none !important;
+ }
+ }
+ }
+ .select_list {
+ width: 100%;
+ padding: 0 30rpx;
+ margin-top: 16rpx;
+ box-sizing: border-box;
+ .select_list_wu {
+ width: 100%;
+ margin-top: 50rpx;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ image {
+ width: 340rpx;
+ height: 364rpx;
+ }
+ }
+ .select_list_item {
+ width: 100%;
+ height: 138rpx;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ border-bottom: 1rpx solid #E5E5E5;
+ .left {
+ display: flex;
+ align-items: flex-start;
+ .left_img {
+ width: 64rpx;
+ height: 64rpx;
+ margin-right: 20rpx;
+ border-radius: 50%;
+ overflow: hidden;
+ .left_img_t {
+ width: 100%;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ background-color: #0055FF;
+ font-size: 30rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #FFFFFF;
+ }
+ image {
+ width: 100%;
+ height: 100%;
+ }
+ }
+ .left_info {
+ display: flex;
+ flex-direction: column;
+ .left_info_top {
+ display: flex;
+ align-items: center;
+ text {
+ &:nth-child(1) {
+ font-size: 30rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #222222;
+ margin-right: 10rpx;
+ }
+ &:nth-child(2) {
+ padding: 8rpx;
+ border-radius: 4rpx;
+ border: 1rpx solid #F62710;
+ font-size: 22rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #F62710;
+ }
+ }
+ }
+ .left_info_bm {
+ font-size: 24rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #666666;
+ margin-top: 16rpx;
+ }
+ }
+ }
+ .xuan {
+ width: 40rpx;
+ height: 40rpx;
+ }
+ }
+ }
+ .select_zw {
+ width: 100%;
+ height: calc(198rpx + env(safe-area-inset-bottom));
+ }
+ .select_footer {
+ width: 100%;
+ position: fixed;
+ bottom: 0;
+ box-sizing: border-box;
+ padding: 22rpx 30rpx calc(22rpx + env(safe-area-inset-bottom)) 30rpx;
+ background: #FFFFFF;
+ box-shadow: 0rpx 0rpx 6rpx 0rpx #B2B2B2;
+ .footer_top {
+ width: 100%;
+ height: 44rpx;
+ display: flex;
+ align-items: center;
+ .footer_top_label {
+ flex-shrink: 0;
+ font-size: 28rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #222222;
+ }
+ .footer_top_content {
+ flex: 1;
+ font-size: 28rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #0055FF;
+ overflow:hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ -o-text-overflow:ellipsis;
+ }
+ image {
+ width: 44rpx;
+ height: 44rpx;
+ }
+ }
+ .footer_btn {
+ width: 100%;
+ height: 88rpx;
+ line-height: 88rpx;
+ text-align: center;
+ background: #0055FF;
+ border-radius: 4rpx;
+ font-size: 30rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #FFFFFF;
+ margin-top: 22rpx;
+ }
+ }
+ .select_box {
+ width: 100%;
+ padding: 40rpx 30rpx;
+ box-sizing: border-box;
+ .select_box_head {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ margin-bottom: 40rpx;
+ text {
+ &:first-child {
+ font-size: 28rpx;
+ font-family: PingFangSC-Semibold, PingFang SC;
+ font-weight: 600;
+ color: #222222;
+ }
+ &:last-child {
+ font-size: 28rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #0055FF;
+ }
+ }
+ }
+ .select_box_list {
+ width: 100%;
+ max-height: 700rpx;
+ display: flex;
+ flex-direction: column;
+ .select_box_list_item {
+ width: 100%;
+ height: 134rpx;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ border-bottom: 1rpx solid #E5E5E5;
+ .left {
+ display: flex;
+ align-items: center;
+ .left_img {
+ width: 64rpx;
+ height: 64rpx;
+ margin-right: 20rpx;
+ border-radius: 50%;
+ overflow: hidden;
+ .left_img_t {
+ width: 100%;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ background-color: #0055FF;
+ font-size: 30rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #FFFFFF;
+ }
+ image {
+ width: 100%;
+ height: 100%;
+ }
+ }
+ .left_info {
+ display: flex;
+ flex-direction: column;
+ text {
+ &:first-child {
+ font-size: 30rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #222222;
+ }
+ &:last-child {
+ font-size: 24rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #666666;
+ margin-top: 20rpx;
+ }
+ }
+ }
+ }
+ .dele {
+ width: 80rpx;
+ height: 48rpx;
+ line-height: 48rpx;
+ text-align: center;
+ border-radius: 4rpx;
+ border: 1rpx solid #999999;
+ font-size: 24rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #333333;
+ }
+ }
+ }
+ }
+ }
+</style>
diff --git a/h5/pages.json b/h5/pages.json
index 1020956..957f8e3 100644
--- a/h5/pages.json
+++ b/h5/pages.json
@@ -4,166 +4,259 @@
},
"pages": [
{
- "path" : "pages/notice/notice",
- "style" :
- {
- "navigationBarTitleText" : "鍏ュ満椤荤煡",
- "enablePullDownRefresh" : false,
+ "path": "pages/notice/notice",
+ "style": {
+ "navigationBarTitleText": "鍏ュ満椤荤煡",
+ "enablePullDownRefresh": false,
"navigationStyle": "custom"
}
},
{
- "path" : "pages/index/index",
- "style" :
- {
- "navigationBarTitleText" : "鍗庢櫉鏂拌兘婧�",
- "enablePullDownRefresh" : false
+ "path": "pages/index/index",
+ "style": {
+ "navigationBarTitleText": "鍗庢櫉鏂拌兘婧�",
+ "enablePullDownRefresh": false
}
},
{
- "path" : "pages/login/login",
- "style" :
- {
- "navigationBarTitleText" : "鐧诲綍",
- "enablePullDownRefresh" : false,
+ "path": "pages/login/login",
+ "style": {
+ "navigationBarTitleText": "鐧诲綍",
+ "enablePullDownRefresh": false,
"navigationStyle": "custom"
}
},
{
- "path" : "pages/answer/answer",
- "style" :
- {
- "navigationBarTitleText" : "绛旈",
- "enablePullDownRefresh" : false,
+ "path": "pages/answer/answer",
+ "style": {
+ "navigationBarTitleText": "绛旈",
+ "enablePullDownRefresh": false,
"navigationStyle": "custom"
}
},
{
- "path" : "pages/userinfo/userinfo",
- "style" :
- {
- "navigationBarTitleText" : "涓汉淇℃伅",
- "enablePullDownRefresh" : false,
+ "path": "pages/userinfo/userinfo",
+ "style": {
+ "navigationBarTitleText": "涓汉淇℃伅",
+ "enablePullDownRefresh": false,
"navigationStyle": "custom"
}
},
{
- "path" : "pages/visitorApplication/visitorApplication",
- "style" :
- {
- "navigationBarTitleText" : "璁垮鐢宠",
- "enablePullDownRefresh" : false,
+ "path": "pages/visitorApplication/visitorApplication",
+ "style": {
+ "navigationBarTitleText": "璁垮鐢宠",
+ "enablePullDownRefresh": false,
"navigationStyle": "custom"
}
},
{
- "path" : "pages/visitorApproval/visitorApproval",
- "style" :
- {
- "navigationBarTitleText" : "璁垮瀹℃壒",
- "enablePullDownRefresh" : false
+ "path": "pages/visitorApproval/visitorApproval",
+ "style": {
+ "navigationBarTitleText": "璁垮瀹℃壒",
+ "enablePullDownRefresh": false
}
},
{
- "path" : "pages/laborApplication/laborApplication",
- "style" :
- {
- "navigationBarTitleText" : "鍔冲姟鐢宠",
- "enablePullDownRefresh" : false
+ "path": "pages/laborApplication/laborApplication",
+ "style": {
+ "navigationBarTitleText": "鍔冲姟鐢宠",
+ "enablePullDownRefresh": false
}
},
{
- "path" : "pages/applicationRecord/applicationRecord",
- "style" :
- {
- "navigationBarTitleText" : "鐢宠璁板綍",
- "enablePullDownRefresh" : false
+ "path": "pages/applicationRecord/applicationRecord",
+ "style": {
+ "navigationBarTitleText": "鐢宠璁板綍",
+ "enablePullDownRefresh": false
}
},
{
- "path" : "pages/personnel/personnel",
- "style" :
- {
- "navigationBarTitleText" : "浜哄憳绠$悊",
- "enablePullDownRefresh" : false
+ "path": "pages/personnel/personnel",
+ "style": {
+ "navigationBarTitleText": "浜哄憳绠$悊",
+ "enablePullDownRefresh": false
}
},
{
- "path" : "pages/newPersonnel/newPersonnel",
- "style" :
- {
- "navigationBarTitleText" : "鏂板浜哄憳",
- "enablePullDownRefresh" : false
+ "path": "pages/newPersonnel/newPersonnel",
+ "style": {
+ "navigationBarTitleText": "鏂板浜哄憳",
+ "enablePullDownRefresh": false
}
},
{
- "path" : "pages/changePassword/changePassword",
- "style" :
- {
- "navigationBarTitleText" : "淇敼瀵嗙爜",
- "enablePullDownRefresh" : false
+ "path": "pages/changePassword/changePassword",
+ "style": {
+ "navigationBarTitleText": "淇敼瀵嗙爜",
+ "enablePullDownRefresh": false
}
},
{
- "path" : "pages/appointmentDetails/appointmentDetails",
- "style" :
- {
- "navigationBarTitleText" : "棰勭害璇︽儏",
- "enablePullDownRefresh" : false
+ "path": "pages/appointmentDetails/appointmentDetails",
+ "style": {
+ "navigationBarTitleText": "棰勭害璇︽儏",
+ "enablePullDownRefresh": false
}
},
{
- "path" : "pages/cropping/cropping",
- "style" :
- {
- "navigationBarTitleText" : "鍥剧墖瑁佸壀",
- "enablePullDownRefresh" : false,
+ "path": "pages/cropping/cropping",
+ "style": {
+ "navigationBarTitleText": "鍥剧墖瑁佸壀",
+ "enablePullDownRefresh": false,
"navigationStyle": "custom"
+ }
+ },
+ // 浼氳瀹�
+ {
+ "path": "pages/meeting/index/index",
+ "style": {
+ "navigationStyle": "custom",
+ "mp-alipay": {
+ "transparentTitle": "always",
+ "titlePenetrate": "YES"
+ },
+ "app-plus": {
+ "bounce": "none"
+ }
+ }
+ },
+ {
+ "path": "pages/meeting/mine/mine",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTextStyle": "white",
+ "navigationBarTitleText": "鎴戠殑",
+ "enablePullDownRefresh": false
+ }
+ },
+ {
+ "path": "pages/meeting/login/login",
+ "style": {
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "鐧诲綍",
+ "enablePullDownRefresh": false
+ }
+ },
+ {
+ "path": "pages/meeting/personal/personal",
+ "style": {
+ "navigationBarTitleText": "涓汉璧勬枡",
+ "enablePullDownRefresh": false
+ }
+ },
+ {
+ "path": "pages/meeting/myAppointment/myAppointment",
+ "style": {
+ "navigationBarTitleText": "鎴戦绾︾殑浼氳瀹�",
+ "enablePullDownRefresh": false
+ }
+ },
+ {
+ "path": "pages/meeting/manage/manage",
+ "style": {
+ "navigationBarTitleText": "鎴戠鐞嗙殑浼氳瀹�",
+ "enablePullDownRefresh": false
+ }
+ },
+ {
+ "path": "pages/meeting/changePassword/changePassword",
+ "style": {
+ "navigationBarTitleText": "淇敼瀵嗙爜",
+ "enablePullDownRefresh": false
}
}
],
- "subPackages": [
+ "subPackages": [
{
"root": "n_pages",
"pages": [
{
"path": "login/login",
"style": {
- "navigationBarTitleText" : "鐧诲綍",
- "enablePullDownRefresh" : false,
+ "navigationBarTitleText": "鐧诲綍",
+ "enablePullDownRefresh": false,
"navigationStyle": "custom"
}
},
{
"path": "index/index",
"style": {
- "navigationBarTitleText" : "鍗庢櫉鏂拌兘婧�",
- "enablePullDownRefresh" : false,
+ "navigationBarTitleText": "鍗庢櫉鏂拌兘婧�",
+ "enablePullDownRefresh": false,
"navigationStyle": "custom"
}
},
{
- "path" : "applicationRecord/applicationRecord",
+ "path": "applicationRecord/applicationRecord",
"style": {
- "navigationBarTitleText" : "鐢宠璁板綍",
- "enablePullDownRefresh" : false,
+ "navigationBarTitleText": "鐢宠璁板綍",
+ "enablePullDownRefresh": false,
"navigationStyle": "custom"
}
},
{
- "path" : "visitorApproval/visitorApproval",
+ "path": "visitorApproval/visitorApproval",
"style": {
- "navigationBarTitleText" : "璁垮瀹℃壒",
- "enablePullDownRefresh" : false,
+ "navigationBarTitleText": "璁垮瀹℃壒",
+ "enablePullDownRefresh": false,
"navigationStyle": "custom"
}
},
{
- "path" : "visitorApplication/visitorApplication",
+ "path": "visitorApplication/visitorApplication",
"style": {
- "navigationBarTitleText" : "璁垮鐢宠",
- "enablePullDownRefresh" : false,
+ "navigationBarTitleText": "璁垮鐢宠",
+ "enablePullDownRefresh": false,
"navigationStyle": "custom"
+ }
+ }
+ ]
+ },
+ {
+ "root": "packagesMine",
+ "name": "mine",
+ "pages": [
+ {
+ "path": "notice/notice",
+ "style": {
+ "navigationBarTitleText": "閫氱煡",
+ "enablePullDownRefresh": false
+ }
+ },
+ {
+ "path": "notificationDetails/notificationDetails",
+ "style": {
+ "navigationBarTitleText": "閫氱煡璇︽儏",
+ "enablePullDownRefresh": false
+ }
+ },
+ {
+ "path": "meetingDetails/meetingDetails",
+ "style": {
+ "navigationBarTitleText": "浼氳璇︽儏",
+ "enablePullDownRefresh": false
+ }
+ },
+ {
+ "path": "reservation/reservation",
+ "style": {
+ "navigationBarTitleText": "棰勭害",
+ "enablePullDownRefresh": false
+ }
+ },
+ {
+ "path": "confirmAppointment/confirmAppointment",
+ "style": {
+ "navigationBarTitleText": "纭棰勭害",
+ "enablePullDownRefresh": false
+ }
+ },
+ {
+ "path": "selectPersonnel/selectPersonnel",
+ "style": {
+ "navigationBarTitleText": "閫夋嫨浜哄憳",
+ "enablePullDownRefresh": false
}
}
]
@@ -176,4 +269,4 @@
"backgroundColor": "#ffffff"
},
"uniIdRouter": {}
-}
+}
\ No newline at end of file
diff --git a/h5/pages/meeting/index/index.vue b/h5/pages/meeting/index/index.vue
index 707942f..e25acbc 100644
--- a/h5/pages/meeting/index/index.vue
+++ b/h5/pages/meeting/index/index.vue
@@ -1,12 +1,12 @@
<template>
<view class="container">
- <!-- 鑷畾涔夊ご閮� -->
+ <!-- 鑷畾涔夊ご閮� -->
<navigation Title="鏅鸿兘浼氳瀹�"></navigation>
<you-scroll ref="scroll" @onPullDown="onPullDown" @More="More">
<!-- 閫氱煡鍏憡 -->
<view class="container_a" @click="jump">
<view class="container_a_left">
- <image src="@/static/icon/home_ic_notice@2x.png" mode="widthFix"></image>
+ <image src="@/static/meeting/icon/home_ic_notice@2x.png" mode="widthFix"></image>
</view>
<view class="container_a_right">
<text>{{news.title}}</text>
@@ -43,7 +43,7 @@
</view>
<view class="container_c_head_right" @click="show = true">
<text>{{roomName.length > 10 ? roomName.substring(0, 8) + '...' : roomName}}</text>
- <image src="@/static/icon/ar_open@2x.png" mode="widthFix"></image>
+ <image src="@/static/meeting/icon/ar_open@2x.png" mode="widthFix"></image>
</view>
</view>
<view class="container_c_list" v-if="list && list.length > 0">
@@ -82,7 +82,7 @@
</view>
<view class="container_c_list" v-else>
<view class="container_c_list_wu">
- <image src="@/static/common/364.png" mode="widthFix"></image>
+ <image src="@/static/meeting/common/364.png" mode="widthFix"></image>
</view>
</view>
</view>
@@ -484,4 +484,4 @@
}
}
}
-</style>
+</style>
diff --git a/h5/pages/meeting/manage/manage.vue b/h5/pages/meeting/manage/manage.vue
index 8394353..58c3228 100644
--- a/h5/pages/meeting/manage/manage.vue
+++ b/h5/pages/meeting/manage/manage.vue
@@ -1,6 +1,6 @@
<template>
- <page-meta :page-style="'overflow:'+(pageShow?'hidden':'visible')"></page-meta>
- <view class="manage">
+ <page-meta :page-style="'overflow:'+(pageShow?'hidden':'visible')"></page-meta>
+ <view class="manage">
<view class="manage_head">
<view class="manage_head_input">
<u--input
@@ -22,7 +22,7 @@
<view class="top_left_content">
<text>{{item.name}}</text>
<view class="top_left_content_time">
- <image src="@/static/icon/ic_time@2x.png" mode="widthFix"></image>
+ <image src="@/static/meeting/icon/ic_time@2x.png" mode="widthFix"></image>
<text>{{item.startTime}}-{{item.endTime}}</text>
</view>
</view>
@@ -38,7 +38,7 @@
<view class="manage_list" v-else>
<view class="manage_list_wu">
- <image src="@/static/common/364.png" mode="widthFix"></image>
+ <image src="@/static/meeting/common/364.png" mode="widthFix"></image>
</view>
</view>
@@ -56,15 +56,15 @@
</view>
</u-popup>
</view>
-
- </view>
-</template>
-
+
+ </view>
+</template>
+
<script>
- import { mapState } from 'vuex'
- export default {
- data() {
- return {
+ import { mapState } from 'vuex'
+ export default {
+ data() {
+ return {
value: '',
next: false,
list: [],
@@ -78,8 +78,8 @@
qrurl: '',
id: '',
pageShow: false,
- icon: require('@/static/common/123.png')
- };
+ icon: require('@/static/meeting/common/123.png')
+ };
},
onLoad() {
this.getList()
@@ -204,11 +204,11 @@
})
}
}
- }
- }
-</script>
-
-<style lang="scss">
+ }
+ }
+</script>
+
+<style lang="scss">
.manage {
width: 100%;
.details_ma /deep/ {
@@ -403,5 +403,5 @@
}
}
}
- }
-</style>
+ }
+</style>
diff --git a/h5/pages/meeting/mine/mine.vue b/h5/pages/meeting/mine/mine.vue
index f2dfe82..835a4ec 100644
--- a/h5/pages/meeting/mine/mine.vue
+++ b/h5/pages/meeting/mine/mine.vue
@@ -43,12 +43,12 @@
data() {
return {
backgroundImage: 'https://dmtest.ahapp.net/file/projects/20230511/7d1f149816e24e68bb2df9011be53990.png',
- avatar: require('@/static/common/default_user@2x.png'),
+ avatar: require('@/static/meeting/common/default_user@2x.png'),
list: [
- { name: '涓汉璧勬枡', path: '/pages/personal/personal', icon: require('@/static/icon/wd_ic_ziliao@2x.png') },
- { name: '鎴戦绾︾殑浼氳瀹�', path: '/pages/myAppointment/myAppointment', icon: require('@/static/icon/wd_ic_yuyue@2x.png') },
- { name: '鎴戠鐞嗙殑浼氳瀹�', path: '/pages/manage/manage', icon: require('@/static/icon/wd_ic_guanli@2x.png') },
- { name: '淇敼瀵嗙爜', path: '/pages/changePassword/changePassword', icon: require('@/static/icon/wd_ic_mima@2x.png') }
+ { name: '涓汉璧勬枡', path: '/pages/personal/personal', icon: require('@/static/meeting/icon/wd_ic_ziliao@2x.png') },
+ { name: '鎴戦绾︾殑浼氳瀹�', path: '/pages/myAppointment/myAppointment', icon: require('@/static/meeting/icon/wd_ic_yuyue@2x.png') },
+ { name: '鎴戠鐞嗙殑浼氳瀹�', path: '/pages/manage/manage', icon: require('@/static/meeting/icon/wd_ic_guanli@2x.png') },
+ { name: '淇敼瀵嗙爜', path: '/pages/changePassword/changePassword', icon: require('@/static/meeting/icon/wd_ic_mima@2x.png') }
]
}
},
@@ -204,4 +204,4 @@
}
}
}
-</style>
+</style>
diff --git a/h5/pages/meeting/myAppointment/myAppointment.vue b/h5/pages/meeting/myAppointment/myAppointment.vue
index 1b31401..3543f76 100644
--- a/h5/pages/meeting/myAppointment/myAppointment.vue
+++ b/h5/pages/meeting/myAppointment/myAppointment.vue
@@ -1,6 +1,6 @@
<template>
- <page-meta :page-style="'overflow:'+(pageShow?'hidden':'visible')"></page-meta>
- <view class="yuyue">
+ <page-meta :page-style="'overflow:'+(pageShow?'hidden':'visible')"></page-meta>
+ <view class="yuyue">
<view class="yuyue_head">
<view class="yuyue_head_input">
<u--input
@@ -45,16 +45,16 @@
<view class="item_d" v-if="i === 0">
<view class="item_d_left">
<view class="item_d_left_item" @click.stop="copy(item)" v-if="item.meetingStatus !== 3">
- <image src="@/static/icon/ic_copy@2x.png" mode="widthFix"></image>
+ <image src="@/static/meeting/icon/ic_copy@2x.png" mode="widthFix"></image>
<text>澶嶅埗</text>
</view>
<view class="item_d_left_item" @click="fenxiang(item)" v-if="item.meetingStatus !== 3">
<button open-type="share"></button>
- <image src="@/static/icon/ic_fenxiang@2x.png" mode="widthFix"></image>
+ <image src="@/static/meeting/icon/ic_fenxiang@2x.png" mode="widthFix"></image>
<text>鍒嗕韩</text>
</view>
<view class="item_d_left_item" v-if="item.meetingStatus === 1" @click.stop="closeRoom(item.meetingStatus, item.id)">
- <image src="@/static/icon/ic_cancel@2x.png" mode="widthFix"></image>
+ <image src="@/static/meeting/icon/ic_cancel@2x.png" mode="widthFix"></image>
<text>鍙栨秷</text>
</view>
</view>
@@ -67,7 +67,7 @@
<view class="yuyue_content" v-else>
<view class="yuyue_content_wu">
- <image src="@/static/common/364.png" mode="widthFix"></image>
+ <image src="@/static/meeting/common/364.png" mode="widthFix"></image>
</view>
</view>
@@ -98,18 +98,18 @@
@cancel="close1"
ref="uModal"
:showCancelButton="true"
- asyncClose="true"></u-modal>
- </view>
-</template>
-
+ asyncClose="true"></u-modal>
+ </view>
+</template>
+
<script>
import { mapState } from 'vuex'
- import tkiQrcode from "@/components/tki-qrcode/tki-qrcode.vue"
- export default {
- data() {
+ import tkiQrcode from "@/components/tki-qrcode/tki-qrcode.vue"
+ export default {
+ data() {
return {
i: 0,
- show: false,
+ show: false,
cate: [
{ name: '鏈紑濮�', id: 1 },
{ name: '宸茬粨鏉�', id: 2 }
@@ -133,8 +133,8 @@
title: '',
path: '',
imageUrl: 'https://dmtest.ahapp.net/file/projects/20230511/13f256b832db4a4fadc5e6770f5727bf.png'
- }
- };
+ }
+ };
},
computed: {
...mapState(['token'])
@@ -333,11 +333,11 @@
})
}
}
- }
- }
-</script>
-
-<style lang="scss">
+ }
+ }
+</script>
+
+<style lang="scss">
.yuyue {
width: 100%;
.details_ma /deep/ {
@@ -614,5 +614,5 @@
}
}
}
- }
-</style>
+ }
+</style>
diff --git a/h5/pages/meeting/personal/personal.vue b/h5/pages/meeting/personal/personal.vue
index ff077b8..8be8573 100644
--- a/h5/pages/meeting/personal/personal.vue
+++ b/h5/pages/meeting/personal/personal.vue
@@ -72,9 +72,9 @@
@confirm="confirmDate"
@cancel="isShow = false"
></u-datetime-picker>
- </view>
-</template>
-
+ </view>
+</template>
+
<script>
import { mapState, mapMutations } from 'vuex'
@@ -87,7 +87,7 @@
show1: false,
minDate: Number(new Date('1980-01-01')),
maxDate: Number(new Date()),
- defaultAvatar: require('@/static/common/default_user@2x.png'),
+ defaultAvatar: require('@/static/meeting/common/default_user@2x.png'),
columns: [
['鐢�', '濂�']
],
@@ -187,15 +187,15 @@
})
}
}
- }
-</script>
+ }
+</script>
<style>
page {
background-color: #fff !important;
}
</style>
-
+
<style lang="scss" scoped>
.personal {
width: 100%;
@@ -480,5 +480,5 @@
color: #FFFFFF;
}
}
- }
+ }
</style>
\ No newline at end of file
diff --git a/h5/store/index.js b/h5/store/index.js
index a1dfad7..a363be0 100644
--- a/h5/store/index.js
+++ b/h5/store/index.js
@@ -3,29 +3,92 @@
Vue.use(Vuex)
-const openId = uni.getStorageSync('openId');
-const member = uni.getStorageSync('member');
+const openId = uni.getStorageSync('openId')
+const member = uni.getStorageSync('member')
+
+// meeting
+const navHeight = uni.getStorageSync('navHeight')
+const statusbarHeight = uni.getStorageSync('statusbarHeight')
+const height = uni.getStorageSync('height')
+const token = uni.getStorageSync('token')
+const time = uni.getStorageSync('time')
+const userInfo = uni.getStorageSync('userInfo')
+const sessionKey = uni.getStorageSync('sessionKey')
const store = new Vuex.Store({
-
+
state: {
openId: openId || '',
- member: member || null
+ member: member || null,
+ statusbarHeight: statusbarHeight || '0',
+ navHeight: navHeight || '0',
+ token: token || null,
+ time: time || null,
+ userInfo: userInfo || {},
+ height: height || '0',
+ sessionKey: sessionKey || ''
},
-
+
mutations: {
// 璁剧疆openId
setOpenId(state, val) {
state.openId = val
- uni.setStorageSync('openId', val);
+ uni.setStorageSync('openId', val)
},
// 璁剧疆鐢ㄦ埛淇℃伅
setMember(state, val) {
state.member = val
- uni.setStorageSync('member', val);
+ uni.setStorageSync('member', val)
+ },
+ // 璁剧疆瀵艰埅鏍忛珮搴�
+ setHeight(state, val) {
+ state.navHeight = val.navHeight
+ state.statusbarHeight = val.statusbarHeight
+ state.height = val.height
+ uni.setStorageSync('navHeight', val.navHeight)
+ uni.setStorageSync('statusbarHeight', val.statusbarHeight)
+ uni.setStorageSync('height', val.height)
+ },
+ // 璁剧疆缂撳瓨token
+ setToken(state, token) {
+ state.token = token
+ uni.setStorageSync('token', token)
+ },
+ // 璁剧疆杩囨湡鏃堕棿鎴�
+ setTimeStamp(state, time) {
+ state.time = time
+ uni.setStorageSync('time', time)
+ },
+ // 璁剧疆鐢ㄦ埛淇℃伅
+ setUserInfo(state, obj) {
+ state.userInfo = obj
+ uni.setStorageSync('userInfo', obj)
+ },
+ // 璁剧疆SessionKey
+ setSessionKey(state, val) {
+ state.sessionKey = val
+ uni.setStorageSync('sessionKey', val)
+ },
+ // 娓呯┖鎵�鏈夌紦瀛�
+ empty(state) {
+ state.token = ''
+ state.userInfo = ''
+ uni.removeStorageSync('userInfo')
+ uni.removeStorageSync('token')
+ }
+ },
+ actions: {
+ // 鑾峰彇鐘舵�侀珮搴�
+ getHeight(context) {
+ let res = uni.getMenuButtonBoundingClientRect()
+ let status = uni.getSystemInfoSync()
+ var height = res.height
+ let statusbarHeight = status.statusBarHeight
+ let navHeight = res.height + (res.top - statusbarHeight) * 2
+ context.commit('setHeight', { statusbarHeight, navHeight, height })
}
}
-
+
})
-export default store;
\ No newline at end of file
+export default store
\ No newline at end of file
diff --git a/h5/utils/meetingHttp.js b/h5/utils/meetingHttp.js
index 78881ad..becd957 100644
--- a/h5/utils/meetingHttp.js
+++ b/h5/utils/meetingHttp.js
@@ -1,44 +1,43 @@
import { baseUrl } from './http.api'
const install = (Vue, vm) => {
-
+
uni.$u.http.setConfig((config) => {
- config.baseURL = baseURL;
- config.timeout = 60000;
- return config;
+ config.baseURL = baseUrl
+ config.timeout = 60000
+ return config
})
-
- Vue.prototype.$baseUrl = baseUrl;
- Vue.prototype.$uploadUrl = uploadUrl;
-
+
+ Vue.prototype.$baseUrl = baseUrl
+
let ordinaryLogin = (params = {}) => uni.$u.http.get('web/account/ordinaryLogin', { params })
let wxEmpower = (params = {}) => uni.$u.http.get('web/account/wxEmpower', { params })
- let editUserInfo = (data = {}) => vm.$u.http.post('web/account/editUserInfo', data);
- let getUserInfo = (params = {}) => vm.$u.http.get('web/account/getUserInfo', { params });
- let roomsList = (params = {}) => vm.$u.http.get('web/rooms/roomsList', { params });
- let getRoomUseTime = (data = {}) => vm.$u.http.post('web/rooms/getRoomUseTime', data);
- let userPage = (data = {}) => vm.$u.http.post('web/meeting/userPage', data);
- let getRoomDetail = (params = {}) => vm.$u.http.get('web/rooms/getRoomDetail', { params });
- let reservationMeeting = (data = {}) => vm.$u.http.post('web/meeting/reservationMeeting', data);
- let meetingDetail = (params = {}) => vm.$u.http.get('web/meeting/meetingDetail', { params });
- let getQrCode = (params = {}) => vm.$u.http.get('web/meeting/getQrCode', { params });
- let reservationCancel = (params = {}) => vm.$u.http.get('web/meeting/reservationCancel', { params });
- let resetPwd = (data = {}) => vm.$u.http.post('web/account/resetPwd', data);
- let myMeetingPage = (data = {}) => vm.$u.http.post('web/meeting/myMeetingPage', data);
- let myRoomsPage = (data = {}) => vm.$u.http.post('web/rooms/myRoomsPage', data);
- let findNoticePage = (data = {}) => vm.$u.http.post('web/notice/findNoticePage', data);
- let getMemberDTO = (params = {}) => vm.$u.http.get('web/notice/getMemberDTO', { params });
- let findNewNotice = (params = {}) => vm.$u.http.get('web/notice/findNewNotice', { params });
- let monthMeeting = (params = {}) => vm.$u.http.get('web/meeting/monthMeeting', { params });
- let roomsGetQrCode = (params = {}) => vm.$u.http.get('web/rooms/getQrCode', { params });
- let getSystemDictData = (params = {}) => vm.$u.http.get('web/util/getSystemDictData', { params });
- let getQrCodeImg = (params = {}) => vm.$u.http.get('web/meeting/getQrCodeImg', { params });
- let visitorLogin = (params = {}) => vm.$u.http.get('web/account/visitorLogin', { params });
- let visitorWxPhone = (data = {}) => vm.$u.http.post('web/account/visitorWxPhone', data);
- let getNoticeDetail = (params = {}) => vm.$u.http.get('web/notice/getNoticeDetail', { params });
+ let editUserInfo = (data = {}) => vm.$u.http.post('web/account/editUserInfo', data)
+ let getUserInfo = (params = {}) => vm.$u.http.get('web/account/getUserInfo', { params })
+ let roomsList = (params = {}) => vm.$u.http.get('web/rooms/roomsList', { params })
+ let getRoomUseTime = (data = {}) => vm.$u.http.post('web/rooms/getRoomUseTime', data)
+ let userPage = (data = {}) => vm.$u.http.post('web/meeting/userPage', data)
+ let getRoomDetail = (params = {}) => vm.$u.http.get('web/rooms/getRoomDetail', { params })
+ let reservationMeeting = (data = {}) => vm.$u.http.post('web/meeting/reservationMeeting', data)
+ let meetingDetail = (params = {}) => vm.$u.http.get('web/meeting/meetingDetail', { params })
+ let getQrCode = (params = {}) => vm.$u.http.get('web/meeting/getQrCode', { params })
+ let reservationCancel = (params = {}) => vm.$u.http.get('web/meeting/reservationCancel', { params })
+ let resetPwd = (data = {}) => vm.$u.http.post('web/account/resetPwd', data)
+ let myMeetingPage = (data = {}) => vm.$u.http.post('web/meeting/myMeetingPage', data)
+ let myRoomsPage = (data = {}) => vm.$u.http.post('web/rooms/myRoomsPage', data)
+ let findNoticePage = (data = {}) => vm.$u.http.post('web/notice/findNoticePage', data)
+ let getMemberDTO = (params = {}) => vm.$u.http.get('web/notice/getMemberDTO', { params })
+ let findNewNotice = (params = {}) => vm.$u.http.get('web/notice/findNewNotice', { params })
+ let monthMeeting = (params = {}) => vm.$u.http.get('web/meeting/monthMeeting', { params })
+ let roomsGetQrCode = (params = {}) => vm.$u.http.get('web/rooms/getQrCode', { params })
+ let getSystemDictData = (params = {}) => vm.$u.http.get('web/util/getSystemDictData', { params })
+ let getQrCodeImg = (params = {}) => vm.$u.http.get('web/meeting/getQrCodeImg', { params })
+ let visitorLogin = (params = {}) => vm.$u.http.get('web/account/visitorLogin', { params })
+ let visitorWxPhone = (data = {}) => vm.$u.http.post('web/account/visitorWxPhone', data)
+ let getNoticeDetail = (params = {}) => vm.$u.http.get('web/notice/getNoticeDetail', { params })
-
-
+
+
vm.$u.api = {
ordinaryLogin,
wxEmpower,
@@ -65,7 +64,7 @@
visitorLogin,
visitorWxPhone,
getNoticeDetail
- };
+ }
}
export default { install }
\ No newline at end of file
--
Gitblit v1.9.3