Merge remote-tracking branch 'origin/master'
| | |
| | | <script> |
| | | import { wxAuthorize } from '@/api' |
| | | import { wxAuthorize, refreshToken } from '@/api' |
| | | export default { |
| | | onLaunch: function () { |
| | | var that = this |
| | |
| | | }) |
| | | } |
| | | } |
| | | // å·æ°token |
| | | const token = uni.getStorageSync('token') |
| | | if(token){ |
| | | // refreshToken().then(res => { |
| | | // if(res.code && res.code === 200){ |
| | | // this.$store.commit('setToken', res.data) |
| | | // } |
| | | // }) |
| | | } |
| | | }, |
| | | onShow: function () { |
| | | console.log('App Show') |
| | |
| | | export * from '@/utils/config.js' |
| | | export * from './visitor' |
| | | export * from './staff' |
| | | export * from './meeting' |
| | | |
| | | // æ¥è¯¢åå
¸å¼æ°æ® |
| | | export const getSystemDictData = (data) => { |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { http } from '@/utils/service.js' |
| | | |
| | | // ä¼è®®å®¤å表 |
| | | export const roomsListPost = (data) => { |
| | | return http({ |
| | | url: 'meetingAdmin/cloudService/web/rooms/roomsList', |
| | | method: 'get', |
| | | data |
| | | }) |
| | | } |
| | | // ä¼è®®å®¤æ¶é´æ®µ |
| | | export const getRoomUseTime = (data) => { |
| | | return http({ |
| | | url: 'meetingAdmin/cloudService/web/rooms/getRoomUseTime', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | // ä¼è®®å®¤æ¶é´æ®µ é¢å®ä¼è®®å®¤ |
| | | export const reservationMeeting = (data) => { |
| | | return http({ |
| | | url: 'meetingAdmin/cloudService/web/meeting/reservationMeeting', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | // ä¼è®®å®¤æ¶é´æ®µ 详æ
|
| | | export const meetingDetail = (data) => { |
| | | return http({ |
| | | url: 'meetingAdmin/cloudService/web/meeting/meetingDetail', |
| | | method: 'get', |
| | | data |
| | | }) |
| | | } |
| | | // ä¼è®®å®¤ 人å |
| | | export const userPagePost = (data) => { |
| | | return http({ |
| | | url: 'meetingAdmin/cloudService/web/meeting/userPage', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | // ä¼è®®å®¤ 详æ
|
| | | export const getRoomDetail = (data) => { |
| | | return http({ |
| | | url: 'meetingAdmin/cloudService/web/rooms/getRoomDetail', |
| | | method: 'get', |
| | | data |
| | | }) |
| | | } |
| | | // ä¼è®®å®¤ 管ç |
| | | export const myMeetingPage = (data) => { |
| | | return http({ |
| | | url: 'meetingAdmin/cloudService/web/meeting/myMeetingPage', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | |
| | | // login |
| | | export const loginPost = (data) => { |
| | | return http({ |
| | | url: '/loginH5', |
| | | url: 'loginH5', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | export const loginCaptcha = () => { |
| | | return http({ |
| | | url: '/captcha', |
| | | url: 'captcha', |
| | | method: 'get' |
| | | }) |
| | | } |
| | | // å·æ°token |
| | | export const refreshToken = () => { |
| | | return http({ |
| | | url: 'refreshtoken', |
| | | method: 'post' |
| | | }) |
| | | } |
| | | export const getUserInfo = () => { |
| | | return http({ |
| | | url: '/getUserInfo', |
| | | url: 'getUserInfo', |
| | | method: 'get' |
| | | }) |
| | | } |
| | |
| | | data |
| | | }) |
| | | } |
| | | // æ¥è¯¢è½¦è¾ æ´¾è½¦è®°å½ è¯¦æ
|
| | | export const carUseBookDetail = (id) => { |
| | | return http({ |
| | | url: 'visitsAdmin/cloudService/business/carUseBook/'+id, |
| | | method: 'get' |
| | | }) |
| | | } |
| | |
| | | }
|
| | | </script>
|
| | |
|
| | | <style>
|
| | | @import url("./Li-Calendar.css");
|
| | | <style lang="scss">
|
| | | .calendar-Time-header{
|
| | | /* text-align: center;
|
| | | height: 50upx;
|
| | | line-height: 50upx;
|
| | | vertical-align: middle;
|
| | | padding: 20upx; */
|
| | | width: 100%;
|
| | | display: flex;
|
| | | align-items: center;
|
| | | justify-content: space-between;
|
| | | margin-bottom: 20rpx;
|
| | | }
|
| | | .header-left {
|
| | | display: flex;
|
| | | align-items: center;
|
| | | }
|
| | | .header-left image {
|
| | | width: 30rpx;
|
| | | height: 30rpx;
|
| | | }
|
| | | .header-left text {
|
| | | font-size: 32rpx;
|
| | | font-family: PingFangSC-Semibold, PingFang SC;
|
| | | font-weight: 600;
|
| | | color: #222222;
|
| | | margin: 0 40rpx
|
| | | }
|
| | | .header-right {
|
| | | font-size: 28rpx;
|
| | | font-family: PingFangSC-Regular, PingFang SC;
|
| | | font-weight: 400;
|
| | | color: $uni-color-primary;
|
| | | }
|
| | | .calendar-TimeH{
|
| | | }
|
| | | .calendar-lastMonth{
|
| | | width: 100upx;
|
| | | font-size: 35upx;
|
| | | margin-right: 10%;
|
| | | padding: 0 5px;
|
| | | text-align: center;
|
| | | }
|
| | | .calendar-nextMonth{
|
| | | width: 100upx;
|
| | | text-align: center;
|
| | | margin-left: 10%;
|
| | | font-size: 35upx;
|
| | | padding: 0 5px;
|
| | | }
|
| | | .calendar-backToToday{
|
| | | text-align: center;
|
| | | font-size: 24upx;
|
| | | position: absolute; |
| | | right: 5px;
|
| | | }
|
| | |
|
| | | .calendar-row:before,
|
| | | .calendar-row:after {
|
| | | display: table;
|
| | | content: ' ';
|
| | | }
|
| | |
|
| | | .calendar-row:after {
|
| | | clear: both;
|
| | | }
|
| | |
|
| | | .calendar-col {
|
| | | width: 14.285714%;
|
| | | max-width: 14.285714%;
|
| | | position: relative;
|
| | | float: left;
|
| | | font-weight: 500;
|
| | | min-height: 80upx;
|
| | | font-size: 28rpx;
|
| | | /* color: #999999; */
|
| | | color: #222222;
|
| | | white-space: nowrap;
|
| | | text-overflow: ellipsis;
|
| | | -o-text-overflow: ellipsis;
|
| | | overflow: hidden;
|
| | | |
| | | display: flex;
|
| | | align-items: center;
|
| | | justify-content: center;
|
| | | }
|
| | |
|
| | | .aligncanter {
|
| | | text-align: center;
|
| | | /* border-bottom: 1rpx solid #E5E5E5; */
|
| | | }
|
| | |
|
| | | .calendar-header {
|
| | | color: gray;
|
| | | height: 40upx;
|
| | | line-height: 40upx;
|
| | | vertical-align: middle;
|
| | | font-size: 24upx;
|
| | | }
|
| | |
|
| | | .calendar-day {
|
| | | height: 80upx;
|
| | | transform: translate3d(0px, 0px, 0px) translateZ(0px); transition-duration: 0ms; transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1);
|
| | | }
|
| | |
|
| | |
|
| | | .calendar-content {
|
| | | }
|
| | |
|
| | | .calendar-date{
|
| | | /* color: #000; */
|
| | | }
|
| | | .calendar-today {
|
| | | /* border-radius: 6upx;
|
| | | background-color: $uni-color-primary; */
|
| | | color: $uni-color-primary;
|
| | | /* -moz-box-shadow: 0px 2upx 10upx #ABABAB;
|
| | | -webkit-box-shadow: 0px 2upx 10upx #ABABAB;
|
| | | box-shadow: 0px 2upx 10upx #ABABAB; */
|
| | | }
|
| | | .calendar-today .calendar-point{
|
| | | color: white !important;
|
| | | }
|
| | |
|
| | | .calendar-today .calendar-text{
|
| | | color: white !important;
|
| | | }
|
| | |
|
| | | .calendar-col-lastMonth .calendar-text{
|
| | | color: gray;
|
| | | }
|
| | |
|
| | | .calendar-col-nextMonth .calendar-text{
|
| | | color: gray;
|
| | | }
|
| | |
|
| | | /* .calendar-today .calendar-date{
|
| | | color: white;
|
| | | } */
|
| | |
|
| | | .calendar-active {
|
| | | color:#FFFFFF !important;
|
| | | background-color: $uni-color-primary;
|
| | | /* -moz-box-shadow: 0px 2upx 10upx #ABABAB;
|
| | | -webkit-box-shadow: 0px 2upx 10upx #ABABAB;
|
| | | box-shadow: 0px 2upx 10upx #ABABAB; */
|
| | | }
|
| | | /* èå´æ è®° */
|
| | | .calendar-range {
|
| | | /* color:#01AAED; */
|
| | | border-radius: 0px;
|
| | | background-color: #D9D9D9;
|
| | | -moz-box-shadow: none;
|
| | | -webkit-box-shadow: none;
|
| | | box-shadow: none;
|
| | | }
|
| | |
|
| | |
|
| | |
|
| | | .ClearBoth {
|
| | | clear: both;
|
| | | }
|
| | | .calendar-col-nextMonth{
|
| | | color:gray;
|
| | | }
|
| | | .calendar-col-lastMonth{
|
| | | color:gray;
|
| | | }
|
| | | .calendar-btn-disabled{
|
| | | color:gainsboro;
|
| | | }
|
| | | .calendar-point{
|
| | | width: 28rpx;
|
| | | height: 28rpx;
|
| | | box-sizing: border-box;
|
| | | background-color: #F62710;
|
| | | border-radius: 50%;
|
| | | font-size: 16upx;
|
| | | color: #FFFFFF;
|
| | | top:2upx;
|
| | | right: 2upx;
|
| | | position: absolute;
|
| | | display: flex;
|
| | | align-items: center;
|
| | | justify-content: center;
|
| | | }
|
| | | .calendar-text{
|
| | | padding: 4rpx 0;
|
| | | width:100%;font-size: 20upx;color: #F62710;top:40upx;left: 0px;position: absolute;overflow:hidden;
|
| | | }
|
| | | .dayValue{
|
| | | text-align: center;
|
| | | /* color: #000000; */
|
| | | }
|
| | |
|
| | | .calendar-day-6-7{
|
| | | /* color: orangered; */
|
| | | }
|
| | |
|
| | | /* è¶
åºæ¥æèå´ */
|
| | | .calendar-out-of-Date{
|
| | | background-color: #EAEAEA;
|
| | | }
|
| | | .calendar-out-of-Date .calendar-date{
|
| | | color: gray;
|
| | | }
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | | /* 以ä¸ä¸ºå®ç°0.5pxåºé¨è¾¹ç */
|
| | | .under_line{position: relative;}
|
| | | .under_line:before,
|
| | | .under_line:after{position: absolute;content: " ";height: 1px;width: 100%;left: 0;transform-origin: 0 0;-webkit-transform-origin: 0 0;}
|
| | | /* .fineLine:before{é¡¶é¨top: 0;background: #000;} */
|
| | | .under_line:after{bottom: 0;}
|
| | | @media only screen and (-webkit-min-device-pixel-ratio: 1.5){.under_line:after,.under_line:before{-webkit-transform: scaleY(.667);}}
|
| | | @media only screen and (-webkit-min-device-pixel-ratio: 2){.under_line:after,.under_line:before{-webkit-transform: scaleY(.5);}}
|
| | | /* 以ä¸ä¸ºå®ç°0.5pxåºé¨è¾¹ç */
|
| | | </style>
|
| | |
| | | }
|
| | |
|
| | | }
|
| | | ,{
|
| | | "path" : "pages/staff/vehicle/sendACarDetail",
|
| | | "style" : |
| | | { |
| | | "navigationBarTitleText": "ç¨è½¦å®¡æ¹", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | }
|
| | | ,{
|
| | | "path" : "pages/staff/meetingSel",
|
| | | "style" : |
| | | { |
| | | "navigationBarTitleText": "éæ©äººå", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | }
|
| | | ],
|
| | | "subPackages": [{
|
| | | "root": "n_pages",
|
| | |
| | | } |
| | | } |
| | | </script> |
| | | <style> |
| | | <style lang="scss"> |
| | | page { |
| | | background-color: #f7f7f7 !important; |
| | | } |
| | |
| | | display: flex; |
| | | align-items: center; |
| | | .active { |
| | | border: 1rpx solid #279baa !important; |
| | | color: #279baa !important; |
| | | border: 1rpx solid $uni-color-primary !important; |
| | | color: $uni-color-primary !important; |
| | | } |
| | | .box_head_item { |
| | | padding: 0 30rpx; |
| | |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | .loading { |
| | | color: #279baa; |
| | | color: $uni-color-primary; |
| | | } |
| | | .success { |
| | | color: #03c68f; |
| | |
| | | } |
| | | .text { |
| | | font-size: 30rpx; |
| | | color: #279baa; |
| | | color: $uni-color-primary; |
| | | padding: 20rpx 0 30rpx; |
| | | } |
| | | } |
| | |
| | | } |
| | | } |
| | | .head_padding { |
| | | background: #279baa; |
| | | background: $uni-color-primary; |
| | | .h1 { |
| | | color: #ffffff; |
| | | } |
| | |
| | | .head_success { |
| | | background: #e8f4f6; |
| | | .h1 { |
| | | color: #279baa; |
| | | color: $uni-color-primary; |
| | | } |
| | | .h2 { |
| | | color: #333333; |
| | |
| | | width: 144rpx; |
| | | height: 56rpx; |
| | | border-radius: 36rpx; |
| | | border: 1rpx solid #279baa; |
| | | border: 1rpx solid $uni-color-primary; |
| | | font-size: 26rpx; |
| | | color: #279baa; |
| | | color: $uni-color-primary; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | |
| | | font-weight: 500; |
| | | font-size: 28rpx; |
| | | width: 192rpx; |
| | | color: #279BAA; |
| | | color: $uni-color-primary; |
| | | height: 48rpx; |
| | | line-height: 48rpx; |
| | | text-align: center; |
| | |
| | | color: #222222; |
| | | } |
| | | .status{ |
| | | color: #279BAA; |
| | | color: $uni-color-primary; |
| | | font-weight: 500; |
| | | .time{ |
| | | font-size: 24rpx; |
| | |
| | | line-height: 68rpx; |
| | | padding: 0 34rpx; |
| | | color: #FFFFFF; |
| | | background: #279BAA; |
| | | background: $uni-color-primary; |
| | | box-shadow: 0rpx 4rpx 12rpx 0rpx rgba(39,155,170,0.4); |
| | | border-radius: 40rpx; |
| | | } |
| | |
| | | } |
| | | .cyan{ |
| | | .h2{ |
| | | color: #279BAA; |
| | | color: $uni-color-primary; |
| | | } |
| | | } |
| | | } |
| | |
| | | height: 50rpx; |
| | | line-height: 50rpx; |
| | | padding: 0 20rpx; |
| | | background: #279BAA; |
| | | background: $uni-color-primary; |
| | | color: #fff; |
| | | font-size: 26rpx; |
| | | border-radius: 0rpx 8rpx 0rpx 25rpx; |
| | |
| | | } |
| | | .padding{ |
| | | background: #E9F5F6; |
| | | color: #279BAA; |
| | | color: $uni-color-primary; |
| | | } |
| | | .avatar{ |
| | | width: 84rpx; |
| | |
| | | .time{ |
| | | display: flex; |
| | | align-items: center; |
| | | color: #279BAA; |
| | | color: $uni-color-primary; |
| | | } |
| | | } |
| | | } |
| | |
| | | color: #777777; |
| | | |
| | | .status { |
| | | color: #279BAA; |
| | | color: $uni-color-primary; |
| | | } |
| | | } |
| | | |
| | |
| | | padding: 0 32rpx; |
| | | border-radius: 0rpx 0rpx 0rpx 30rpx; |
| | | background-color: #e9edff; |
| | | color: #279BAA; |
| | | color: $uni-color-primary; |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | .agree { |
| | | background: #279BAA; |
| | | background: $uni-color-primary; |
| | | color: #fff; |
| | | border: 1rpx solid #279BAA; |
| | | border: 1rpx solid $uni-color-primary; |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | .copy { |
| | | font-size: 26rpx; |
| | | color: #279BAA; |
| | | color: $uni-color-primary; |
| | | } |
| | | |
| | | .btn { |
| | | font-size: 28rpx; |
| | | color: #279BAA; |
| | | color: $uni-color-primary; |
| | | display: flex; |
| | | } |
| | | } |
| | |
| | | padding: 0 24rpx; |
| | | border-radius: 34rpx 0rpx 0rpx 34rpx; |
| | | font-size: 26rpx; |
| | | color: #279BAA; |
| | | color: $uni-color-primary; |
| | | |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | .check { |
| | | background: #279BAA; |
| | | border: 1rpx solid #279BAA; |
| | | background: $uni-color-primary; |
| | | border: 1rpx solid $uni-color-primary; |
| | | color: #fff; |
| | | } |
| | | } |
| | |
| | | .title { |
| | | font-weight: 500; |
| | | font-size: 30rpx; |
| | | color: #279BAA; |
| | | color: $uni-color-primary; |
| | | margin-bottom: 12rpx; |
| | | } |
| | | |
| | |
| | | <view class="value"> |
| | | <view class="">0 å
Ž</view> |
| | | <view class="btn" @click="getLocation"> |
| | | <u-icon name="map" color="#279BAA" class="mr6"></u-icon> |
| | | <u-icon name="map" :color="$store.state.primaryColor" class="mr6"></u-icon> |
| | | éæ°å®ä½ |
| | | </view> |
| | | </view> |
| | |
| | | } |
| | | .btn{ |
| | | font-size: 28rpx; |
| | | color: #279BAA; |
| | | color: $uni-color-primary; |
| | | display: flex; |
| | | } |
| | | } |
| | |
| | | padding: 0 24rpx; |
| | | border-radius: 34rpx 0rpx 0rpx 34rpx; |
| | | font-size: 26rpx; |
| | | color: #279BAA; |
| | | color: $uni-color-primary; |
| | | |
| | | } |
| | | } |
| | |
| | | border: 1rpx solid #999999; |
| | | } |
| | | .check{ |
| | | background: #279BAA; |
| | | border: 1rpx solid #279BAA; |
| | | background: $uni-color-primary; |
| | | border: 1rpx solid $uni-color-primary; |
| | | color: #fff; |
| | | } |
| | | } |
| | |
| | | .title{ |
| | | font-weight: 500; |
| | | font-size: 30rpx; |
| | | color: #279BAA; |
| | | color: $uni-color-primary; |
| | | margin-bottom: 12rpx; |
| | | } |
| | | .address{ |
| | |
| | | width: 144rpx; |
| | | height: 56rpx; |
| | | border-radius: 36rpx; |
| | | border: 1rpx solid #279baa; |
| | | border: 1rpx solid $uni-color-primary; |
| | | font-size: 26rpx; |
| | | color: #279baa; |
| | | color: $uni-color-primary; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | |
| | | padding: 0;
|
| | | background-color: #f7f7f7;
|
| | | ::v-deep .uni-calendar-item--checked {
|
| | | background-color: #279baa;
|
| | | background-color: $uni-color-primary;
|
| | | border-radius: 8rpx;
|
| | | }
|
| | | ::v-deep .uni-calendar-item--isDay-text {
|
| | | color: #279baa;
|
| | | color: $uni-color-primary;
|
| | | }
|
| | | ::v-deep .uni-calendar-item--isDay {
|
| | | background-color: #279baa;
|
| | | background-color: $uni-color-primary;
|
| | | color: #fff;
|
| | | border-radius: 8rpx;
|
| | | }
|
| | |
| | | font-size: 30rpx;
|
| | | color: #222222;
|
| | | .line {
|
| | | background-color: #279baa;
|
| | | background-color: $uni-color-primary;
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | .icon {
|
| | | width: 6rpx;
|
| | | height: 32rpx;
|
| | | background: #279baa;
|
| | | background: $uni-color-primary;
|
| | | border-radius: 4rpx;
|
| | | margin-right: 16rpx;
|
| | | }
|
| | |
| | | } |
| | | |
| | | .agree { |
| | | background: #279BAA; |
| | | background: $uni-color-primary; |
| | | color: #fff; |
| | | border: 1rpx solid #279BAA; |
| | | border: 1rpx solid $uni-color-primary; |
| | | } |
| | | } |
| | | .empty{ |
| | |
| | | <view class="container_b">
|
| | | <Calendar
|
| | | ref="Calendar"
|
| | | :currentTime="currentTime1"
|
| | | :currentTime="currentDate"
|
| | | :mark="mark"
|
| | | :showLunar="false"
|
| | | @dayChange="dayChange"
|
| | |
| | | <view class="icon"></view>
|
| | | <view class="text">仿¥ä¼è®®</view>
|
| | | </view>
|
| | | <view class="meeting">
|
| | | <view class="text mr24">å
¨é¨ä¼è®®å®¤</view>
|
| | | <view class="meeting" @click="isShowStatus = true">
|
| | | <view class="text mr24">{{ activeStatus.name }}</view>
|
| | | <u-icon name="arrow-down" size="12" color="#999999" />
|
| | | </view>
|
| | | </view>
|
| | |
| | | </view>
|
| | |
|
| | | <!-- -->
|
| | | <u-picker
|
| | | keyName="name"
|
| | | :show="isShowStatus"
|
| | | :columns="statusList"
|
| | | @confirm="seletedStatus"
|
| | | @cancel="isShowStatus = false"
|
| | | ></u-picker>
|
| | | </view>
|
| | | </template>
|
| | |
|
| | | <script>
|
| | | import Calendar from '@/components/Li-Calendar/Li-Calendar.vue';
|
| | | import { getDay } from '@/utils/utils.js';
|
| | | function getDate(date, AddDayCount = 0) {
|
| | | if (!date) {
|
| | | date = new Date();
|
| | | }
|
| | | if (typeof date !== 'object') {
|
| | | date = date.replace(/-/g, '/');
|
| | | }
|
| | | const dd = new Date(date);
|
| | | import Calendar from '@/components/Li-Calendar/Li-Calendar.vue'
|
| | | import dayjs from 'dayjs'
|
| | | import { myMeetingPage } from '@/api'
|
| | |
|
| | | dd.setDate(dd.getDate() + AddDayCount); // è·åAddDayCount天åçæ¥æ
|
| | |
|
| | | const y = dd.getFullYear();
|
| | | const m = dd.getMonth() + 1 < 10 ? '0' + (dd.getMonth() + 1) : dd.getMonth() + 1; // è·åå½åæä»½çæ¥æï¼ä¸è¶³10è¡¥0
|
| | | const d = dd.getDate() < 10 ? '0' + dd.getDate() : dd.getDate(); // è·åå½åå å·ï¼ä¸è¶³10è¡¥0
|
| | | return {
|
| | | fullDate: y + '-' + m + '-' + d,
|
| | | year: y,
|
| | | month: m,
|
| | | date: d,
|
| | | day: dd.getDay()
|
| | | };
|
| | | }
|
| | | export default {
|
| | | components: {
|
| | | Calendar
|
| | | },
|
| | | data() {
|
| | | return {
|
| | | activeTab: '0',
|
| | | currentTime1: '',
|
| | | dateStart: '1999-05-01',
|
| | | currentDate: '',
|
| | | dateStart: '2024-01-01',
|
| | | dateEnd: '2999-06-15',
|
| | | mark: [],
|
| | | selected: [
|
| | | mark: [
|
| | | {
|
| | | date: getDate(new Date(), -3).fullDate
|
| | | // info: 'æå¡'
|
| | | time: '2024-05-30'
|
| | | },
|
| | | {
|
| | | date: getDate(new Date(), -2).fullDate,
|
| | | // info: 'ç¾å°',
|
| | | data: {
|
| | | custom: 'èªå®ä¹ä¿¡æ¯',
|
| | | name: 'èªå®ä¹æ¶æ¯å¤´'
|
| | | }
|
| | | time: '2024-05-22',
|
| | | pointText: 'aaa',
|
| | | pointTextColor: '#fff'
|
| | | },
|
| | | {
|
| | | date: getDate(new Date(), -1).fullDate,
|
| | | info: 'å·²æå¡'
|
| | | time: '2024-05-28',
|
| | | text: ['111','222'],
|
| | | pointTextColor: '#fff'
|
| | | }
|
| | | ]
|
| | | };
|
| | | ],
|
| | | activeStatus: {
|
| | | name: 'å
¨é¨ä¼è®®å®¤'
|
| | | },
|
| | | isShowStatus: false,
|
| | | statusList: [[
|
| | | { name: 'å
¨é¨ä¼è®®å®¤', key: '' },
|
| | | { name: 'æªå¼å§', key: '1' },
|
| | | { name: 'å·²ç»æ', key: '2' },
|
| | | ]],
|
| | | dataList: [],
|
| | | page: 1
|
| | | }
|
| | | },
|
| | | onLoad() {
|
| | | this.currentDate = dayjs().format('YYYY-MM-DD')
|
| | | this.getList()
|
| | | },
|
| | | methods: {
|
| | | tabClick(val) {
|
| | | this.activeTab = val;
|
| | | getList() {
|
| | | const { activeStatus } = this
|
| | | myMeetingPage({
|
| | | capacity: 10,
|
| | | page: this.page,
|
| | | model: {
|
| | | queryDate: this.currentDate,
|
| | | status: activeStatus.key || null,
|
| | | // roomsId: this.roomId,
|
| | | queryType: 1
|
| | | }
|
| | | }).then(res => {
|
| | | this.dataList = res.data.records
|
| | | })
|
| | | },
|
| | | handleDetail(item) {
|
| | | uni.navigateTo({
|
| | | // url: `/pages/staff/meetingDetail?id=${item.id}`,
|
| | | url: `/pages/staff/meetingDetail`
|
| | | });
|
| | | })
|
| | | },
|
| | | changeCalendar(e) {
|
| | | console.log(e);
|
| | | console.log(e)
|
| | | },
|
| | | // ç¹å»æå¤©
|
| | | dayChange(data) {
|
| | | console.log(data);
|
| | | let date = data.time;
|
| | | let yyyy = data.time.substring(0, 4);
|
| | | let mm = Number(data.time.substring(data.time.indexOf('-') + 1, data.time.lastIndexOf('-')));
|
| | | let dd = Number(data.time.substring(data.time.lastIndexOf('-') + 1, data.time.length));
|
| | | mm = mm < 10 ? `0${mm}` : mm;
|
| | | dd = dd < 10 ? `0${dd}` : dd;
|
| | | let riqi = `${yyyy}-${mm}-${dd}`;
|
| | | this.currentTime = riqi;
|
| | | this.list = [];
|
| | | this.next = false;
|
| | | this.page = 0;
|
| | | console.log(data)
|
| | | let date = data.time
|
| | | let yyyy = data.time.substring(0, 4)
|
| | | let mm = Number(data.time.substring(data.time.indexOf('-') + 1, data.time.lastIndexOf('-')))
|
| | | let dd = Number(data.time.substring(data.time.lastIndexOf('-') + 1, data.time.length))
|
| | | mm = mm < 10 ? `0${mm}` : mm
|
| | | dd = dd < 10 ? `0${dd}` : dd
|
| | | let riqi = `${yyyy}-${mm}-${dd}`
|
| | | this.currentTime = riqi
|
| | | this.list = []
|
| | | this.next = false
|
| | | this.page = 0
|
| | | // this.getRoomList()
|
| | | },
|
| | | // ä¸ä¸æ
|
| | | monthChange(data) {
|
| | | let date = data.date.replace(/[/]/g, '-');
|
| | | let yyyy = date.substring(0, 4);
|
| | | let mm = Number(date.substring(date.indexOf('-') + 1, date.lastIndexOf('-')));
|
| | | let dd = Number(date.substring(date.lastIndexOf('-') + 1, date.length));
|
| | | mm = mm < 10 ? `0${mm}` : mm;
|
| | | dd = dd < 10 ? `0${dd}` : dd;
|
| | | let riqi = `${yyyy}-${mm}-${dd}`;
|
| | | console.log('æ¥æ', riqi);
|
| | | this.currentTime1 = riqi;
|
| | | let date = data.date.replace(/[/]/g, '-')
|
| | | let yyyy = date.substring(0, 4)
|
| | | let mm = Number(date.substring(date.indexOf('-') + 1, date.lastIndexOf('-')))
|
| | | let dd = Number(date.substring(date.lastIndexOf('-') + 1, date.length))
|
| | | mm = mm < 10 ? `0${mm}` : mm
|
| | | dd = dd < 10 ? `0${dd}` : dd
|
| | | let riqi = `${yyyy}-${mm}-${dd}`
|
| | | console.log('æ¥æ', riqi)
|
| | | this.currentTime1 = riqi
|
| | | // this.getDateNum()
|
| | | }
|
| | | },
|
| | | seletedStatus(e) {
|
| | | this.activeStatus = { ...e.value[0] }
|
| | | this.isShowStatus = false
|
| | | this.getList()
|
| | | },
|
| | | }
|
| | | };
|
| | | </script>
|
| | |
| | | padding: 0;
|
| | | background-color: #f7f7f7;
|
| | | ::v-deep .uni-calendar-item--checked {
|
| | | background-color: #279baa;
|
| | | background-color: $uni-color-primary;
|
| | | border-radius: 8rpx;
|
| | | }
|
| | | ::v-deep .uni-calendar-item--isDay-text {
|
| | | color: #279baa;
|
| | | color: $uni-color-primary;
|
| | | }
|
| | | ::v-deep .calendar-point {
|
| | | /* background-color: $uni-color-primary; */
|
| | | }
|
| | | |
| | | ::v-deep .uni-calendar-item--isDay {
|
| | | background-color: #279baa;
|
| | | background-color: $uni-color-primary;
|
| | | color: #fff;
|
| | | border-radius: 8rpx;
|
| | | }
|
| | |
| | | font-size: 30rpx;
|
| | | color: #222222;
|
| | | .line {
|
| | | background-color: #279baa;
|
| | | background-color: $uni-color-primary;
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | .icon {
|
| | | width: 6rpx;
|
| | | height: 32rpx;
|
| | | background: #279baa;
|
| | | background: $uni-color-primary;
|
| | | border-radius: 4rpx;
|
| | | margin-right: 16rpx;
|
| | | }
|
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <view class="main_app"> |
| | | <view class="search_inp df_ac"> |
| | | <image |
| | | class="mr12 search" |
| | | src="../../static/ic_search@2x.png" |
| | | mode="widthFix" |
| | | ></image> |
| | | <input |
| | | v-model="param.keyword" |
| | | @blur="initData()" |
| | | type="text" |
| | | placeholder="æç´¢" |
| | | placeholder-style="color: #999999;" |
| | | /> |
| | | </view> |
| | | <view class="member_list"> |
| | | <view v-for="item in memberList" :key="item.id" class="line"> |
| | | <image |
| | | :src=" |
| | | item.prefixUrl |
| | | ? item.prefixUrl |
| | | : require('@/static/logo@2x.png') |
| | | " |
| | | class="avatar" |
| | | mode="" |
| | | ></image> |
| | | <view class="content"> |
| | | <view class="info"> |
| | | <text class="name">{{ item.realname }}</text> |
| | | <!-- <text class="tag">tag</text> --> |
| | | </view> |
| | | <view class="depart">{{ item.departmentName }}</view> |
| | | </view> |
| | | <image |
| | | @click="changeMem(item, index)" |
| | | v-if="item.checked" |
| | | src="@/static/meeting/icon/ic_choose_sel@2x.png" |
| | | mode="widthFix" |
| | | class="checked" |
| | | ></image> |
| | | <image |
| | | @click="changeMem(item, index)" |
| | | v-if="!item.checked" |
| | | src="@/static/meeting/icon/ic_choose@2x.png" |
| | | mode="widthFix" |
| | | class="checked" |
| | | ></image> |
| | | <text></text> |
| | | </view> |
| | | <view class="empty"></view> |
| | | </view> |
| | | <!-- --> |
| | | <view class="sub_wrap"> |
| | | <view class="sel_mem"> |
| | | <text>已鿩ï¼</text> |
| | | <view class="members"> |
| | | <text v-for="(item, i) in selList" :key="i">{{ item.realname }}ï¼</text> |
| | | </view> |
| | | <image |
| | | @click="isShowSelMem = true" |
| | | class="open_icon" |
| | | src="../../static/staff/renyuan_ic_open.png" |
| | | mode="" |
| | | ></image> |
| | | </view> |
| | | <view class="btn" @click="onSubmit">确认({{ selList.length }}/20)</view> |
| | | </view> |
| | | <!-- --> |
| | | <u-popup |
| | | :show="isShowSelMem" |
| | | :round="12" |
| | | mode="bottom" |
| | | @close="isShowSelMem = false" |
| | | > |
| | | <view class="modal"> |
| | | <view class="modal_header"> |
| | | <text class="status">已鿩ï¼{{ selList.length }}人</text> |
| | | <text class="btn" @click="isShowSelMem = false">确认</text> |
| | | </view> |
| | | <view class="modal_mem_list"> |
| | | <view class="line" v-for="(item, i) in selList" :key="i"> |
| | | <image |
| | | :src=" |
| | | item.faceImgFull |
| | | ? item.faceImgFull |
| | | : require('@/static/logo@2x.png') |
| | | " |
| | | class="avatar" |
| | | mode="" |
| | | ></image> |
| | | <view class="content"> |
| | | <view class="info"> |
| | | <text class="name">{{ item.realname }}</text> |
| | | </view> |
| | | <view class="depart">{{ item.departmentName }}</view> |
| | | </view> |
| | | <view class="btn" @click="handleRemove(item)">ç§»é¤</view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </u-popup> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { userPagePost } from '@/api' |
| | | export default { |
| | | data() { |
| | | return { |
| | | memberList: [], |
| | | selList: [], |
| | | param: {}, |
| | | pagination: { |
| | | page: 1, |
| | | capacity: 20 |
| | | }, |
| | | |
| | | isShowSelMem: false |
| | | } |
| | | }, |
| | | onLoad(option) { |
| | | this.param = { ...option, keyword: '' } |
| | | this.initData() |
| | | }, |
| | | methods: { |
| | | onSubmit() { |
| | | this.$eventBus.$emit('meetingPeo', this.selList) |
| | | uni.navigateBack() |
| | | }, |
| | | changeMem(item, index) { |
| | | item.checked = !item.checked |
| | | this.selList = this.memberList.filter(i => i.checked) |
| | | // const arr = e.detail.value |
| | | // let arrTemp = arr.map(item => { |
| | | // let obj = {} |
| | | // this.memberList.forEach(ite => { |
| | | // if (item == ite.id) { |
| | | // obj.name = ite.name.split('-')[0] |
| | | // obj.componey = ite.name.split('-')[1] || '' |
| | | // obj.id = ite.id |
| | | // } |
| | | // }) |
| | | // return obj |
| | | // }) |
| | | // this.selList = arrTemp |
| | | this.$forceUpdate() |
| | | }, |
| | | initData() { |
| | | const { param, pagination } = this |
| | | userPagePost({ |
| | | model: { ...param }, |
| | | ...pagination, |
| | | |
| | | }).then(res => { |
| | | this.memberList = res.data.records || [] |
| | | this.memberList.map(i => { |
| | | i.checked = false |
| | | }) |
| | | }) |
| | | }, |
| | | handleRemove(item) { |
| | | this.memberList.forEach(ite => { |
| | | if (item.id === ite.id) { |
| | | ite.checked = false |
| | | } |
| | | }) |
| | | // console.log(this.memberList); |
| | | this.$forceUpdate() |
| | | }, |
| | | } |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | .modal { |
| | | padding: 40rpx 30rpx; |
| | | .modal_header { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | .status { |
| | | font-weight: 600; |
| | | } |
| | | .btn { |
| | | color: $uni-color-primary; |
| | | } |
| | | } |
| | | .modal_mem_list { |
| | | .line { |
| | | display: flex; |
| | | align-items: center; |
| | | border-bottom: 1rpx solid #e5e5e5; |
| | | padding: 30rpx 0; |
| | | .avatar { |
| | | width: 64rpx; |
| | | height: 64rpx; |
| | | border-radius: 50%; |
| | | overflow: hidden; |
| | | margin-right: 20rpx; |
| | | } |
| | | .content { |
| | | flex: 1; |
| | | .depart { |
| | | font-size: 24rpx; |
| | | color: #666666; |
| | | } |
| | | .info { |
| | | display: flex; |
| | | margin-bottom: 16rpx; |
| | | .name { |
| | | font-size: 30rpx; |
| | | } |
| | | } |
| | | } |
| | | .btn { |
| | | width: 80rpx; |
| | | height: 48rpx; |
| | | line-height: 48rpx; |
| | | text-align: center; |
| | | font-size: 24rpx; |
| | | color: #333333; |
| | | border-radius: 4rpx; |
| | | border: 1rpx solid #999999; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .sub_wrap { |
| | | position: fixed; |
| | | bottom: 0; |
| | | background-color: #fff; |
| | | left: 0; |
| | | width: 100%; |
| | | box-shadow: 0rpx 0rpx 6rpx 0rpx #b2b2b2; |
| | | padding: 30rpx 30rpx 64rpx; |
| | | .sel_mem { |
| | | display: flex; |
| | | align-items: center; |
| | | .members { |
| | | width: 500rpx; |
| | | color: $uni-color-primary; |
| | | white-space: nowrap; |
| | | overflow: hidden; //ææ¬è¶
åºéè |
| | | text-overflow: ellipsis; |
| | | margin-right: 20rpx; |
| | | } |
| | | .open_icon { |
| | | width: 44rpx; |
| | | height: 44rpx; |
| | | } |
| | | } |
| | | .btn { |
| | | width: 690rpx; |
| | | height: 88rpx; |
| | | line-height: 88rpx; |
| | | background: $uni-color-primary; |
| | | border-radius: 44rpx; |
| | | color: #fff; |
| | | text-align: center; |
| | | margin-top: 22rpx; |
| | | } |
| | | } |
| | | .member_list { |
| | | .line { |
| | | display: flex; |
| | | align-items: center; |
| | | border-bottom: 1rpx solid #e5e5e5; |
| | | padding: 30rpx 0; |
| | | .avatar { |
| | | width: 64rpx; |
| | | height: 64rpx; |
| | | border-radius: 50%; |
| | | overflow: hidden; |
| | | margin-right: 20rpx; |
| | | } |
| | | .content { |
| | | flex: 1; |
| | | .depart { |
| | | font-size: 24rpx; |
| | | color: #666666; |
| | | } |
| | | .info { |
| | | display: flex; |
| | | margin-bottom: 16rpx; |
| | | .name { |
| | | font-size: 30rpx; |
| | | } |
| | | .tag { |
| | | font-size: 24rpx; |
| | | border-radius: 4rpx; |
| | | border: 1rpx solid #f62710; |
| | | color: #f62710; |
| | | padding: 0rpx 6rpx; |
| | | margin-left: 8rpx; |
| | | } |
| | | } |
| | | } |
| | | .checked{ |
| | | width: 48rpx; |
| | | } |
| | | } |
| | | .empty { |
| | | width: 100%; |
| | | height: 280rpx; |
| | | } |
| | | } |
| | | .search_inp { |
| | | height: 72rpx; |
| | | background: #f7f7f7; |
| | | border-radius: 4rpx; |
| | | padding-left: 16rpx; |
| | | .search { |
| | | width: 28rpx; |
| | | } |
| | | input { |
| | | flex: 1; |
| | | font-size: 28rpx; |
| | | color: #333333; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <view class="main_app"> |
| | | <view class="heade_title"> |
| | | <image class="icon" src="../../static/staff/ar_left@2x.png" @click="changeDate(-1)" mode="widthFix"></image> |
| | | <image |
| | | class="icon" |
| | | src="../../static/staff/ar_left@2x.png" |
| | | @click="changeDate(-1)" |
| | | mode="widthFix" |
| | | ></image> |
| | | <text class="date">{{ activeDateCum }}</text> |
| | | <image class="icon" src="../../static/staff/ar_right@2x.png" @click="changeDate(1)" mode="widthFix"></image> |
| | | <image |
| | | class="icon" |
| | | src="../../static/staff/ar_right@2x.png" |
| | | @click="changeDate(1)" |
| | | mode="widthFix" |
| | | ></image> |
| | | </view> |
| | | <!-- --> |
| | | <view class="meeting_list"> |
| | | <view class="item" :class="{active: i === 0}" v-for="item,i in meetingList" :key="i"> |
| | | <view |
| | | @click="roomClick(item)" |
| | | class="item" |
| | | :class="{ active: activeRoom.roomId === item.id }" |
| | | v-for="(item, i) in meetingList" |
| | | :key="i" |
| | | > |
| | | <view class="name">{{ item.name }}</view> |
| | | <view class="line"></view> |
| | | </view> |
| | | </view> |
| | | <!-- --> |
| | | <view class="time_list"> |
| | | <view class="item" v-for="item,i in timeList" :key="i">{{ item.time }}</view> |
| | | <view |
| | | @click="datetimeClick(item, i)" |
| | | class="item" |
| | | :class="{ disable: item.isUse, active: item.checked == '1' }" |
| | | v-for="(item, i) in timeList" |
| | | :key="i" |
| | | > |
| | | {{ item.startTime }}-{{ item.endTime }} |
| | | </view> |
| | | </view> |
| | | <!-- --> |
| | | <view class="main_footer"> |
| | | <view class="df_ac"> |
| | | <view>已鿩ï¼</view> |
| | | <view class="sel_time">xxxxxx</view> |
| | | <view class="sel_time">{{ selDatetime }}</view> |
| | | </view> |
| | | <view class="btns"> |
| | | <view class="left"> |
| | |
| | | <view class="">{{ item.name }}</view> |
| | | </view> |
| | | </view> |
| | | <view class="sub" @click="$jump('/pages/staff/meetingSubOrder')">确认é¢çº¦</view> |
| | | <view class="sub" @click="onSubmit" |
| | | >确认é¢çº¦</view |
| | | > |
| | | </view> |
| | | </view> |
| | | <!-- --> |
| | | <u-popup :show="isShowDetail" :round="12" mode="bottom" @close="isShowDetail = false"> |
| | | <u-popup |
| | | :show="isShowDetail" |
| | | :round="12" |
| | | mode="bottom" |
| | | @close="isShowDetail = false" |
| | | > |
| | | <view class="detail_modal"> |
| | | <view class="title">ä¼è®®å®¤é¢çº¦æ
åµ</view> |
| | | <view class="h1">讨论xxxxxéå</view> |
| | |
| | | |
| | | <script> |
| | | import dayjs from 'dayjs' |
| | | import { |
| | | roomsListPost, |
| | | getRoomUseTime, |
| | | meetingDetail |
| | | } from '@/api' |
| | | export default { |
| | | data() { |
| | | return { |
| | | activeDate: '', |
| | | activeRoom: { |
| | | yudingDate: '' |
| | | }, |
| | | selDatetime: '', |
| | | isShowDetail: false, |
| | | meetingList: [ |
| | | { name: '201ä¼è®®å®¤' }, |
| | | { name: '201ä¼è®®å®¤' }, |
| | | { name: '201ä¼è®®å®¤' }, |
| | | { name: '201ä¼è®®å®¤' }, |
| | | ], |
| | | timeList: [ |
| | | { time: '08:30-09:00' }, |
| | | { time: '08:30-09:00' }, |
| | | { time: '08:30-09:00' }, |
| | | { time: '08:30-09:00' }, |
| | | ], |
| | | meetingList: [], |
| | | timeList: [], |
| | | |
| | | colorOptions: [ |
| | | { color: '#279BAA', name: '已鿩' }, |
| | | { color: this.$store.state.primaryColor, name: '已鿩' }, |
| | | { color: '#F7F7F7', name: 'å¯é¢çº¦' }, |
| | | { color: '#cccccc', name: 'ä¸å¯é¢çº¦' }, |
| | | ] |
| | | |
| | | }; |
| | | } |
| | | }, |
| | | computed: { |
| | | activeDateCum(){ |
| | | const { activeDate } = this |
| | | const yudingDate = this.activeRoom.yudingDate |
| | | let weeks = ['卿¥', 'å¨ä¸','å¨äº','å¨ä¸','å¨å','å¨äº','å¨å
'] |
| | | return dayjs(activeDate).format('YYYYå¹´MæDæ¥') + ' ' + weeks[dayjs(activeDate).day()] |
| | | return dayjs(yudingDate).format('YYYYå¹´MæDæ¥') + ' ' + weeks[dayjs(yudingDate).day()] |
| | | } |
| | | }, |
| | | created() { |
| | | this.activeDate = dayjs().format('YYYY-MM-DD') |
| | | onLoad() { |
| | | this.activeRoom.yudingDate = dayjs().format('YYYY-MM-DD') |
| | | this.getRoomList() |
| | | }, |
| | | methods: { |
| | | changeDate(num){ |
| | | const { activeDate } = this |
| | | let fn = num > 0 ? 'add' : 'subtract' |
| | | this.activeDate = dayjs(activeDate)[fn](1, 'days').format('YYYY-MM-DD') |
| | | roomClick(item) { |
| | | this.$set(this.activeRoom, 'roomId', item.id) |
| | | this.$set(this.activeRoom, 'roomName', item.name) |
| | | }, |
| | | onSubmit() { |
| | | const { activeRoom } = this |
| | | const selTimeList = this.timeList.filter(i => i.checked == '1') |
| | | if (selTimeList.length == -1) { |
| | | return uni.showToast({ |
| | | title: '请å
éæ©ä¼è®®æ¶æ®µ', |
| | | icon: 'none' |
| | | }) |
| | | } |
| | | const obj = { |
| | | startTime: selTimeList[0].startTime, |
| | | endTime: selTimeList[selTimeList.length - 1].endTime, |
| | | } |
| | | uni.navigateTo({ |
| | | url: `/pages/staff/meetingSubOrder?yudingDate=${activeRoom.yudingDate}&roomName=${activeRoom.roomName}&roomId=${activeRoom.roomId}&startTime=${obj.startTime}&endTime=${obj.endTime}` |
| | | }) |
| | | // this.$jump('/pages/staff/vehicle/apply') |
| | | }, |
| | | getRoomList() { |
| | | roomsListPost({}).then(res => { |
| | | this.meetingList = res.data || [] |
| | | if (this.meetingList.length > 0) { |
| | | this.$set(this.activeRoom, 'roomId', this.meetingList[0].id) |
| | | this.$set(this.activeRoom, 'roomName', this.meetingList[0].name) |
| | | this.getRoomTime() |
| | | } |
| | | }) |
| | | }, |
| | | getRoomTime() { |
| | | const { activeRoom } = this |
| | | getRoomUseTime({ |
| | | ...activeRoom |
| | | }).then(res => { |
| | | this.timeList = res.data || [] |
| | | this.timeList.forEach((i, j) => { |
| | | i.checked = '0', |
| | | i.index = j |
| | | }) |
| | | }) |
| | | }, |
| | | datetimeClick(item, index) { |
| | | if (item.isUse == '1') return |
| | | if(item.isChoose){ |
| | | this.getDetail(item.id) |
| | | return |
| | | } |
| | | const { timeList } = this |
| | | const selTimeList = timeList.filter(i => i.checked == '1') |
| | | if (selTimeList.length === 0) { |
| | | this.timeList.forEach((ite, i) => { |
| | | if (i === index) { |
| | | ite.checked = '1' |
| | | this.$forceUpdate() |
| | | } |
| | | }) |
| | | } else { |
| | | const findIndex = selTimeList.findIndex(i => i.index === index) |
| | | console.log('findIndex', findIndex) |
| | | if (findIndex === -1) { |
| | | const startNum = index - selTimeList[0].index |
| | | const endNum = index - selTimeList[selTimeList.length - 1].index |
| | | if (startNum == 1 || startNum == -1 || endNum == 1 || endNum == -1) { |
| | | console.log('ç¸é»') |
| | | item.checked = true |
| | | this.$forceUpdate() |
| | | } else { |
| | | return uni.showToast({ |
| | | title: 'è¯·éæ©ç¸é»çæ¶é´æ®µ', |
| | | icon: 'none' |
| | | }) |
| | | } |
| | | } else { |
| | | if (index === selTimeList[0].index || index === selTimeList[selTimeList.length - 1].index) { |
| | | item.checked = false |
| | | this.$forceUpdate() |
| | | } else { |
| | | return uni.showToast({ |
| | | title: '请å
åæ¶æå¤å±çæ¶é´æ®µ', |
| | | icon: 'none' |
| | | }) |
| | | } |
| | | |
| | | } |
| | | } |
| | | const selTimeLists = this.timeList.filter(i => i.checked == '1') |
| | | // console.log('selTimeList', selTimeList); |
| | | if (selTimeLists.length === 0) { |
| | | this.selDatetime = '' |
| | | } else { |
| | | this.selDatetime = this.activeRoom.roomName + ' | ' + selTimeLists[0].startTime + '-' + selTimeLists[selTimeLists.length - 1].endTime |
| | | } |
| | | }, |
| | | changeDate(num) { |
| | | const yudingDate = this.activeRoom.yudingDate |
| | | let fn = num > 0 ? 'add' : 'subtract' |
| | | this.yudingDate = dayjs(yudingDate)[fn](1, 'days').format('YYYY-MM-DD') |
| | | this.getRoomList() |
| | | }, |
| | | getDetail(id) { |
| | | meetingDetail({ |
| | | id |
| | | }) |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | |
| | | height: 88rpx; |
| | | line-height: 88rpx; |
| | | text-align: center; |
| | | background: #279BAA; |
| | | background: $uni-color-primary; |
| | | border-radius: 44rpx; |
| | | font-weight: 500; |
| | | font-size: 32rpx; |
| | | color: #FFFFFF; |
| | | color: #ffffff; |
| | | } |
| | | } |
| | | .main_footer{ |
| | | position: absolute; |
| | | position: fixed; |
| | | width: 100%; |
| | | left: 0; |
| | | bottom: 0; |
| | | background-color: #fff; |
| | | padding: 20rpx 30rpx 84rpx; |
| | | box-shadow: 0rpx -3rpx 6rpx 0rpx #EEEEEE; |
| | | box-shadow: 0rpx -3rpx 6rpx 0rpx #eeeeee; |
| | | .sel_time{ |
| | | color: #279BAA; |
| | | color: $uni-color-primary; |
| | | } |
| | | .btns{ |
| | | margin-top: 10rpx; |
| | |
| | | height: 72rpx; |
| | | line-height: 72rpx; |
| | | text-align: center; |
| | | background: #279BAA; |
| | | box-shadow: 0rpx -1rpx 0rpx 0rpx #EEEEEE; |
| | | background: $uni-color-primary; |
| | | box-shadow: 0rpx -1rpx 0rpx 0rpx #eeeeee; |
| | | border-radius: 36rpx; |
| | | font-size: 30rpx; |
| | | color: #FFFFFF; |
| | | color: #ffffff; |
| | | } |
| | | } |
| | | } |
| | |
| | | height: 80rpx; |
| | | line-height: 80rpx; |
| | | text-align: center; |
| | | background: #F7F7F7; |
| | | background: #f7f7f7; |
| | | border-radius: 4rpx; |
| | | margin-bottom: 24rpx; |
| | | font-size: 30rpx; |
| | | } |
| | | .active{ |
| | | background-color: #279BAA; |
| | | background-color: $uni-color-primary; |
| | | color: #fff; |
| | | } |
| | | .disable{ |
| | |
| | | padding-left: 30rpx; |
| | | width: 720rpx; |
| | | overflow-x: auto; |
| | | border-bottom: 1rpx solid #E5E5E5; |
| | | border-bottom: 1rpx solid #e5e5e5; |
| | | .item{ |
| | | flex-shrink: 0; |
| | | margin-right: 60rpx; |
| | |
| | | } |
| | | } |
| | | .active{ |
| | | color: #279BAA; |
| | | color: $uni-color-primary; |
| | | font-weight: 600; |
| | | font-size: 30rpx; |
| | | .line{ |
| | | width: 60rpx; |
| | | height: 4rpx; |
| | | background-color: #279BAA; |
| | | background-color: $uni-color-primary; |
| | | margin: 26rpx auto 0; |
| | | } |
| | | } |
| | |
| | | <view class="item"> |
| | | <view class="name">ä¼è®®æ¶é´</view> |
| | | <view class="line"> |
| | | <view class="label">2022å¹´22æ2æ¥ 1000000000</view> |
| | | <view class="label"> |
| | | {{ param.activeDate }} {{ param.startTime }}-{{ param.endTime }} |
| | | </view> |
| | | <u-icon name="arrow-right" color="#999999" size="14" /> |
| | | </view> |
| | | </view> |
| | | <view class="item"> |
| | | <view class="name">ä¼è®®å®¤</view> |
| | | <view class="line"> |
| | | <view class="label">aaaaaaaa</view> |
| | | <view class="label">{{ param.roomName }}</view> |
| | | </view> |
| | | </view> |
| | | <view class="item"> |
| | | <view class="name">é¢çº¦äºº</view> |
| | | <view class="line"> |
| | | <view class="label">aaaaaaaa</view> |
| | | <view class="label">{{ userInfo.realname }}</view> |
| | | </view> |
| | | </view> |
| | | <view class="empty"></view> |
| | |
| | | <text class="star">*</text> |
| | | </view> |
| | | <view class="line"> |
| | | <input type="text" v-model="param.aaa" placeholder="请è¾å
¥ä¼è®®ä¸»é¢" placeholder-class="placeholder9" class="label"> |
| | | <input |
| | | type="text" |
| | | v-model="param.name" |
| | | placeholder="请è¾å
¥ä¼è®®ä¸»é¢" |
| | | placeholder-class="placeholder9" |
| | | class="label" |
| | | /> |
| | | </view> |
| | | </view> |
| | | <view class="item"> |
| | |
| | | <text>ä¼è®®å
容</text> |
| | | </view> |
| | | <view class="line"> |
| | | <u-textarea border="none" v-model="param.aaa" count :maxlength="300" placeholder="请è¾å
¥ä¼è®®å
容" placeholder-class="placeholder9" class="label" /> |
| | | <u-textarea |
| | | border="none" |
| | | v-model="param.content" |
| | | count |
| | | :maxlength="300" |
| | | placeholder="请è¾å
¥ä¼è®®å
容" |
| | | placeholder-class="placeholder9" |
| | | class="label" |
| | | /> |
| | | </view> |
| | | </view> |
| | | <view class="empty"></view> |
| | | <view class="item"> |
| | | <view class="name">åä¼äººå</view> |
| | | <view class="line"> |
| | | <view class="line" @click="selPeople"> |
| | | <view class="label"> |
| | | <text v-if="false">moumoumou</text> |
| | | <text v-else class="placeholder9" @click="$jump('/pages/staff/memberSel')">è¯·éæ©</text> |
| | | <text v-if="param.sysList && param.sysList.length > 0"> |
| | | {{ param.sysList.map(i=>i.realname).join(',') }} |
| | | </text> |
| | | <text |
| | | v-else |
| | | class="placeholder9" |
| | | @click="$jump('/pages/staff/memberSel')" |
| | | >è¯·éæ©</text |
| | | > |
| | | </view> |
| | | <u-icon name="arrow-right" color="#999999" size="14" @click="$jump('/pages/staff/memberSel')" /> |
| | | <u-icon |
| | | name="arrow-right" |
| | | color="#999999" |
| | | size="14" |
| | | @click="$jump('/pages/staff/memberSel')" |
| | | /> |
| | | </view> |
| | | </view> |
| | | <view class="item"> |
| | | <view class="name">éæ©æå¡é¡¹</view> |
| | | <view class="line"> |
| | | <view class="label"> |
| | | <view class="service_item" v-for="(item,index) in serviceOps" :key="index"> |
| | | {{ item.value }} |
| | | <view |
| | | class="service_item" |
| | | :class="{active: item.checked}" |
| | | v-for="(item, index) in info.projectList" |
| | | :key="index" |
| | | @click="serviceClick(item)" |
| | | > |
| | | {{ item.projectName }} |
| | | </view> |
| | | </view> |
| | | </view> |
| | |
| | | <text>夿³¨</text> |
| | | </view> |
| | | <view class="line"> |
| | | <textarea v-model="param.as" :maxlength="-1" placeholder="请è¾å
¥" placeholder-class="placeholder9" class="label" /> |
| | | <textarea |
| | | v-model="param.remark" |
| | | :maxlength="-1" |
| | | placeholder="请è¾å
¥" |
| | | placeholder-class="placeholder9" |
| | | class="label" |
| | | /> |
| | | </view> |
| | | </view> |
| | | |
| | | <view class="sub_btn"> |
| | | 确认é¢çº¦ |
| | | </view> |
| | | |
| | | <view class="sub_btn" @click="onSubmit"> 确认é¢çº¦ </view> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | reservationMeeting, |
| | | getRoomDetail |
| | | } from '@/api' |
| | | import dayjs from 'dayjs' |
| | | export default { |
| | | data() { |
| | | return { |
| | | param: {}, |
| | | serviceOps: [ |
| | | { key: '0', value: 'å¸å¡' }, |
| | | { key: '1', value: 'æå½±ä»ª' }, |
| | | { key: '2', value: 'ç¬è®°æ¬çµè' }, |
| | | ] |
| | | }; |
| | | userInfo: uni.getStorageSync('userInfo'), |
| | | info: {}, |
| | | } |
| | | }, |
| | | onLoad(option) { |
| | | this.param = { ...option } |
| | | this.$set(this.param, 'activeDate', dayjs(option.yudingDate).format('YYYYå¹´MæDæ¥')) |
| | | this.initOption() |
| | | }, |
| | | mounted() { |
| | | this.$eventBus.$on('meetingPeo', (res) => { |
| | | this.$set(this.param, 'sysList', res) |
| | | // this.$set(this.param, 'memberIds', res.map(i => i.id).join(',')) |
| | | // this.$set(this.param, 'memberNames', res.map(i => i.name).join(',')) |
| | | }) |
| | | }, |
| | | methods: { |
| | | onSubmit() { |
| | | const { param, info } = this |
| | | if (!param.name) return uni.showToast({ |
| | | title: '请è¾å
¥ä¼è®®ä¸»é¢', |
| | | icon: 'none' |
| | | }) |
| | | reservationMeeting({ |
| | | ...param, |
| | | startTime: `${param.yudingDate} ${param.startTime}:00`, |
| | | endTime: `${param.yudingDate} ${param.endTime}:00`, |
| | | projectList: info.projectList.filter(i => i.checked), |
| | | }).then(res => { |
| | | if(res.code === 200){ |
| | | |
| | | } |
| | | }) |
| | | }, |
| | | selPeople() { |
| | | const { param } = this |
| | | let startTime = param.yudingDate + ' ' + param.startTime |
| | | let endTime = param.yudingDate + ' ' + param.endTime |
| | | uni.navigateTo({ |
| | | url: `/pages/staff/meetingSel?startTime=${startTime}&endTime=${endTime}` |
| | | }) |
| | | }, |
| | | serviceClick(item) { |
| | | const { info } = this |
| | | info.projectList.forEach(ite => { |
| | | if(ite.projectId === item.projectId){ |
| | | ite.checked = !ite.checked |
| | | } |
| | | }) |
| | | this.$forceUpdate() |
| | | }, |
| | | initOption() { |
| | | const roomId = Number(this.param.roomId) |
| | | getRoomDetail({ roomId }).then(res => { |
| | | res.data.projectList.forEach(item => { |
| | | item.active = false |
| | | }) |
| | | this.info = res.data |
| | | if(this.info && this.info.projectList){ |
| | | this.info.projectList.forEach(i => { |
| | | i.checked = false |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | <style lang="scss"> |
| | | .module_list{ |
| | | .item{ |
| | | border-bottom: 1rpx solid #E5E5E5; |
| | | border-bottom: 1rpx solid #e5e5e5; |
| | | padding: 30rpx 0; |
| | | .name{ |
| | | color: #666666; |
| | |
| | | .service_item{ |
| | | height: 64rpx; |
| | | line-height: 64rpx; |
| | | background: #F7F7F7; |
| | | background: #f7f7f7; |
| | | border-radius: 4rpx; |
| | | padding: 0 24rpx; |
| | | margin-right: 20rpx; |
| | | } |
| | | .active{ |
| | | background-color: #4d99a8; |
| | | color: #fff; |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | padding-bottom: 100rpx; |
| | |
| | | height: 72rpx; |
| | | line-height: 72rpx; |
| | | text-align: center; |
| | | background: #279BAA; |
| | | box-shadow: 0rpx -1rpx 0rpx 0rpx #EEEEEE; |
| | | background: $uni-color-primary; |
| | | box-shadow: 0rpx -1rpx 0rpx 0rpx #eeeeee; |
| | | border-radius: 36rpx; |
| | | font-size: 30rpx; |
| | | color: #FFFFFF; |
| | | color: #ffffff; |
| | | margin-top: 20rpx; |
| | | } |
| | | .star{ |
| | |
| | | font-weight: 600; |
| | | } |
| | | .btn { |
| | | color: #279baa; |
| | | color: $uni-color-primary; |
| | | } |
| | | } |
| | | .modal_mem_list { |
| | |
| | | align-items: center; |
| | | .members { |
| | | width: 500rpx; |
| | | color: #4d98a7; |
| | | color: $uni-color-primary; |
| | | white-space: nowrap; |
| | | overflow: hidden; //ææ¬è¶
åºéè |
| | | text-overflow: ellipsis; |
| | |
| | | width: 690rpx; |
| | | height: 88rpx; |
| | | line-height: 88rpx; |
| | | background: #279baa; |
| | | background: $uni-color-primary; |
| | | border-radius: 44rpx; |
| | | color: #fff; |
| | | text-align: center; |
| | |
| | | height: 88rpx; |
| | | line-height: 88rpx; |
| | | text-align: center; |
| | | background: #4e99a9; |
| | | background: $uni-color-primary; |
| | | border-radius: 44rpx; |
| | | font-size: 32rpx; |
| | | color: #ffffff; |
| | |
| | | padding: 0 32rpx; |
| | | height: 60rpx; |
| | | line-height: 60rpx; |
| | | background: #279baa; |
| | | background: $uni-color-primary; |
| | | color: #fff; |
| | | font-size: 26rpx; |
| | | font-weight: 300; |
| | |
| | | color: #777777; |
| | | |
| | | .status { |
| | | color: #279BAA; |
| | | color: $uni-color-primary; |
| | | } |
| | | } |
| | | |
| | |
| | | padding: 0 32rpx; |
| | | border-radius: 0rpx 0rpx 0rpx 30rpx; |
| | | background-color: #e9edff; |
| | | color: #279BAA; |
| | | color: $uni-color-primary; |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | .agree { |
| | | background: #279BAA; |
| | | background: $uni-color-primary; |
| | | color: #fff; |
| | | border: 1rpx solid #279BAA; |
| | | border: 1rpx solid $uni-color-primary; |
| | | } |
| | | } |
| | | |
| | |
| | | /> |
| | | </view> |
| | | <view class="member_list"> |
| | | <checkbox-group v-model="selList" @change="changeMem"> |
| | | <view v-for="item in memberList" :key="item.id" class="line"> |
| | | <view v-for="(item, index) in memberList" :key="item.id" class="line"> |
| | | <image |
| | | :src=" |
| | | item.faceImgFull |
| | |
| | | </view> |
| | | <view class="depart">{{ item.companyName }}</view> |
| | | </view> |
| | | <label> |
| | | <checkbox :checked="item.checked" :value="String(item.id)" class="checkbox" /> |
| | | </label> |
| | | <image |
| | | @click="changeMem(item, index)" |
| | | v-if="item.checked" |
| | | src="@/static/meeting/icon/ic_choose_sel@2x.png" |
| | | mode="widthFix" |
| | | class="checked" |
| | | ></image> |
| | | <image |
| | | @click="changeMem(item, index)" |
| | | v-if="!item.checked" |
| | | src="@/static/meeting/icon/ic_choose@2x.png" |
| | | mode="widthFix" |
| | | class="checked" |
| | | ></image> |
| | | <text></text> |
| | | </view> |
| | | </checkbox-group> |
| | | |
| | | <view class="empty"></view> |
| | | </view> |
| | | <!-- --> |
| | |
| | | data() { |
| | | return { |
| | | memberList: [], |
| | | selList: [], |
| | | param: {}, |
| | | selList: [], |
| | | |
| | | isShowSelMem: false |
| | | } |
| | |
| | | onLoad() { |
| | | this.initData() |
| | | }, |
| | | mounted() { |
| | | this.$eventBus.$on('applePeoDetail', (res)=>{ |
| | | res.forEach(item => { |
| | | this.changeMem(item) |
| | | }) |
| | | this.$nextnick(() => { |
| | | this.$forceUpdate() |
| | | }) |
| | | }) |
| | | }, |
| | | methods: { |
| | | onSubmit() { |
| | | this.$eventBus.$emit('applePeo', this.selList) |
| | | uni.navigateBack() |
| | | }, |
| | | changeMem(e) { |
| | | const arr = e.detail.value |
| | | let arrTemp = arr.map(item => { |
| | | let obj = {} |
| | | this.memberList.forEach(ite => { |
| | | if (item == ite.id) { |
| | | obj.name = ite.name.split('-')[0] |
| | | obj.componey = ite.name.split('-')[1] || '' |
| | | obj.id = ite.id |
| | | } |
| | | }) |
| | | return obj |
| | | }) |
| | | this.selList = arrTemp |
| | | // this.$forceUpdate() |
| | | changeMem(item, index) { |
| | | item.checked = !item.checked |
| | | this.selList = this.memberList.filter(i => i.checked) |
| | | // const arr = e.detail.value |
| | | // let arrTemp = arr.map(item => { |
| | | // let obj = {} |
| | | // this.memberList.forEach(ite => { |
| | | // if (item == ite.id) { |
| | | // obj.name = ite.name.split('-')[0] |
| | | // obj.componey = ite.name.split('-')[1] || '' |
| | | // obj.id = ite.id |
| | | // } |
| | | // }) |
| | | // return obj |
| | | // }) |
| | | // this.selList = arrTemp |
| | | this.$forceUpdate() |
| | | }, |
| | | handleRemove(item) { |
| | | const selIndex = this.selList.findIndex(i => i.id === item.id) |
| | | this.selList.splice(selIndex, 1) |
| | | this.memberList.forEach(ite => { |
| | | if(item.id === ite.id){ |
| | | ite.checked = false |
| | |
| | | font-weight: 600; |
| | | } |
| | | .btn { |
| | | color: #279baa; |
| | | color: $uni-color-primary; |
| | | } |
| | | } |
| | | .modal_mem_list { |
| | |
| | | align-items: center; |
| | | .members { |
| | | width: 500rpx; |
| | | color: #4d98a7; |
| | | color: $uni-color-primary; |
| | | white-space: nowrap; |
| | | overflow: hidden; //ææ¬è¶
åºéè |
| | | text-overflow: ellipsis; |
| | |
| | | width: 690rpx; |
| | | height: 88rpx; |
| | | line-height: 88rpx; |
| | | background: #279baa; |
| | | background: $uni-color-primary; |
| | | border-radius: 44rpx; |
| | | color: #fff; |
| | | text-align: center; |
| | |
| | | } |
| | | } |
| | | } |
| | | .checked{ |
| | | width: 48rpx; |
| | | } |
| | | } |
| | | .empty { |
| | | width: 100%; |
| | |
| | | <text>*</text> |
| | | <text>ä¹è½¦äººå</text> |
| | | </view> |
| | | <view class="value" @click="$jump('/pages/staff/vehicle/applePeo')"> |
| | | <view class="value" @click="selPeople"> |
| | | <text |
| | | class="mr6" |
| | | :style="{ |
| | |
| | | } |
| | | }) |
| | | }, |
| | | selPeople() { |
| | | if(this.param.memberList && this.param.memberList.length > 0){ |
| | | this.$eventBus.$emit('applePeoDetail', this.param.memberList) |
| | | } |
| | | this.$jump('/pages/staff/vehicle/applePeo') |
| | | }, |
| | | confirmDate(e) { |
| | | |
| | | this.param.planUseDate = dayjs(e.value).format('YYYY-MM-DD HH:mm') |
| | |
| | | height: 88rpx; |
| | | line-height: 88rpx; |
| | | text-align: center; |
| | | background: #279baa; |
| | | background: $uni-color-primary; |
| | | box-shadow: 0rpx -1rpx 0rpx 0rpx #eeeeee; |
| | | border-radius: 44rpx; |
| | | font-size: 30rpx; |
| | |
| | | class="box_list_item" |
| | | v-for="(item, index) in dataList" |
| | | :key="index" |
| | | @click="itemDetail(item)" |
| | | > |
| | | <view class="box_list_item_head"> |
| | | <text>{{ item.carCode }}</text> |
| | |
| | | this.total = res.data.total |
| | | }) |
| | | }, |
| | | itemDetail(item) { |
| | | uni.navigateTo({ |
| | | url: "/pages/staff/vehicle/sendACarDetail?id=" + item.id |
| | | }) |
| | | }, |
| | | seletedCar(e) { |
| | | const item = e.value[0] |
| | | this.$set(this.param, 'carCode', item.code) |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <view class="main_app"> |
| | | <view class="status_wrap"> |
| | | <view class="name">{{ info.memberName }}çç¨è½¦ç³è¯·</view> |
| | | <view class="placeholder9">{{ info.companyName }}</view> |
| | | <view class="status"> |
| | | <text class="loading" v-if="info.status == '0'">ç³è¯·ä¸</text> |
| | | <text class="grr" v-if="info.status == '1'">审æ¹ä¸</text> |
| | | <text class="grr" v-if="info.status == '2'">审æ¹éè¿</text> |
| | | <text class="error" v-if="info.status == '3'">审æ¹ä¸éè¿</text> |
| | | <text class="grr" v-if="info.status == '4'">已忶</text> |
| | | </view> |
| | | </view> |
| | | <!-- --> |
| | | <view class="emyty"></view> |
| | | <view class="module_list"> |
| | | <view class="item"> |
| | | <view class="label">é¢è®¡ç¨è½¦æ¶æ®µ</view> |
| | | <view class="value">{{ info.startTime.slice(0, 16) }}è³{{ info.endTime.slice(0, 16) }}</view> |
| | | </view> |
| | | <view class="item"> |
| | | <view class="label">é¢è®¡åºåæ¶é´</view> |
| | | <view class="value">{{ info.planUseDate }}</view> |
| | | </view> |
| | | <view class="item"> |
| | | <view class="label">ä¹è½¦äººå</view> |
| | | <view class="value">{{ info.memberNames }}</view> |
| | | </view> |
| | | <view class="item"> |
| | | <view class="label">ç®çå°</view> |
| | | <view class="value">{{ info.type == '1' ? 'å¸å¤' : '室å
' }}ï¼{{ info.addr }}</view> |
| | | </view> |
| | | <view class="item"> |
| | | <view class="label">ç¨è½¦äºç±</view> |
| | | <view class="value">{{ info.content }}</view> |
| | | </view> |
| | | <view class="item"> |
| | | <view class="label">车è¾ä¿¡æ¯</view> |
| | | <view class="value">{{ info.carCode }}</view> |
| | | </view> |
| | | <view class="item"> |
| | | <view class="label">叿ºä¿¡æ¯</view> |
| | | <view class="value">{{ info.driverName }} {{ info.driverPhone }}</view> |
| | | </view> |
| | | </view> |
| | | <!-- æµç¨ --> |
| | | <view class="flow_wrap"> |
| | | <view class="flow_title">æµç¨</view> |
| | | <view class="list"> |
| | | <view class="item"> |
| | | <view class="avatar"> |
| | | <image class="img" src="@/static/logo@2x.png" mode="widthFix" /> |
| | | <image |
| | | class="status" |
| | | src="@/static/staff/liucheng_success@2x.png" |
| | | mode="widthFix" |
| | | /> |
| | | <view class="separate"></view> |
| | | </view> |
| | | <view class="content"> |
| | | <view class="head"> |
| | | <view class="event">æææäº¤çæè®¿ç³è¯·</view> |
| | | <view class="time">time</view> |
| | | </view> |
| | | <view class="name_wrap"> |
| | | <text>æä¸(<text class="status">å¤çä¸</text>)</text> |
| | | </view> |
| | | <view class="remark">åææ¾è¡</view> |
| | | </view> |
| | | </view> |
| | | <view class="item"> |
| | | <view class="avatar"> |
| | | <image class="img" src="@/static/logo@2x.png" mode="widthFix" /> |
| | | <image |
| | | class="status" |
| | | src="@/static/staff/liucheng_success@2x.png" |
| | | mode="widthFix" |
| | | /> |
| | | </view> |
| | | <view class="content"> |
| | | <view class="head"> |
| | | <view class="event">æææäº¤çæè®¿ç³è¯·</view> |
| | | <view class="time">time</view> |
| | | </view> |
| | | <view class="name_wrap"> |
| | | <text>æä¸(<text class="status">å¤çä¸</text>)</text> |
| | | </view> |
| | | <view class="carbon"> |
| | | <view class="carbon_item" v-for="i in 12"> |
| | | <image |
| | | src="../../../static/logo@2x.png" |
| | | mode="widthFix" |
| | | ></image> |
| | | <view class="text">name</view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="emyty"></view> |
| | | <view class="main_footer"> |
| | | <view class="btn" @click="handleSub('0')">æç»</view> |
| | | <view class="btn agree" @click="handleSub('1')">åæ</view> |
| | | </view> |
| | | |
| | | <!-- --> |
| | | <u-popup |
| | | :show="showApprModal" |
| | | :round="10" |
| | | :safeAreaInsetBottom="true" |
| | | mode="bottom" |
| | | @close="showApprModal = false" |
| | | > |
| | | <view class="appr_modal"> |
| | | <view class="title">åæ</view> |
| | | <textarea |
| | | placeholder="åæè¯´æï¼éå¿
å¡«" |
| | | placeholder-class="placeholder9" |
| | | /> |
| | | <view class="main_footer"> |
| | | <view class="btn" @click="showApprModal = false">åæ¶</view> |
| | | <view class="btn agree">æäº¤</view> |
| | | </view> |
| | | </view> |
| | | </u-popup> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { carUseBookDetail } from '@/api' |
| | | export default { |
| | | data() { |
| | | return { |
| | | showApprModal: false, |
| | | id: '', |
| | | info: {}, |
| | | param: {}, |
| | | |
| | | } |
| | | }, |
| | | onLoad(option) { |
| | | this.id = option.id |
| | | this.getDetail() |
| | | }, |
| | | methods: { |
| | | getDetail() { |
| | | const { id } = this |
| | | carUseBookDetail(id).then(res => { |
| | | this.info = { ...res.data } |
| | | }) |
| | | }, |
| | | handleSub(flag) { |
| | | // this.param.flag = |
| | | if (flag === '1') { |
| | | |
| | | } else { |
| | | |
| | | } |
| | | this.showApprModal = true |
| | | } |
| | | }, |
| | | } |
| | | </script> |
| | | <style> |
| | | page { |
| | | background-color: #f7f7f7; |
| | | } |
| | | </style> |
| | | <style lang="scss"> |
| | | .main_app { |
| | | background-color: #fff; |
| | | padding-bottom: 0; |
| | | |
| | | .flow_wrap { |
| | | padding: 30rpx 0; |
| | | |
| | | .flow_title { |
| | | font-weight: 500; |
| | | font-size: 32rpx; |
| | | color: #222222; |
| | | margin-bottom: 24rpx; |
| | | } |
| | | |
| | | .list { |
| | | .item { |
| | | display: flex; |
| | | margin-bottom: 48rpx; |
| | | |
| | | .avatar { |
| | | width: 80rpx; |
| | | height: 80rpx; |
| | | position: relative; |
| | | margin-right: 20rpx; |
| | | |
| | | .img { |
| | | width: 80rpx; |
| | | height: 80rpx; |
| | | border-radius: 50%; |
| | | } |
| | | |
| | | .status { |
| | | width: 28rpx; |
| | | height: 28rpx; |
| | | border-radius: 50%; |
| | | position: absolute; |
| | | right: 0; |
| | | bottom: 0; |
| | | } |
| | | |
| | | .separate { |
| | | position: absolute; |
| | | width: 4rpx; |
| | | height: 100%; |
| | | background-color: #eeeeee; |
| | | left: 50%; |
| | | transform: translate(-50%, 0); |
| | | bottom: -80rpx; |
| | | } |
| | | } |
| | | |
| | | .content { |
| | | flex: 1; |
| | | |
| | | .head { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | margin-bottom: 4rpx; |
| | | |
| | | .event { |
| | | font-size: 30rpx; |
| | | } |
| | | |
| | | .time { |
| | | font-size: 26rpx; |
| | | color: #999999; |
| | | } |
| | | } |
| | | |
| | | .name_wrap { |
| | | font-size: 26rpx; |
| | | color: #777777; |
| | | |
| | | .status { |
| | | color: $uni-color-primary; |
| | | } |
| | | } |
| | | |
| | | .remark { |
| | | margin-top: 12rpx; |
| | | background-color: #f7f7f7; |
| | | padding: 14rpx 20rpx; |
| | | border-radius: 8rpx; |
| | | font-size: 26rpx; |
| | | color: #666666; |
| | | line-height: 36rpx; |
| | | } |
| | | } |
| | | .carbon { |
| | | display: flex; |
| | | width: 590rpx; |
| | | overflow-x: auto; |
| | | margin-top: 12rpx; |
| | | .carbon_item { |
| | | text-align: center; |
| | | flex-shrink: 0; |
| | | width: 100rpx; |
| | | image { |
| | | width: 60rpx; |
| | | height: 60rpx; |
| | | margin: 0 auto; |
| | | } |
| | | view { |
| | | font-size: 26rpx; |
| | | color: #777777; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .module_list { |
| | | .item { |
| | | padding: 30rpx 0; |
| | | border-bottom: 1rpx solid #e5e5e5; |
| | | |
| | | .label { |
| | | font-size: 26rpx; |
| | | color: #666666; |
| | | margin-bottom: 20rpx; |
| | | } |
| | | |
| | | .value { |
| | | font-size: 30rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | .avatar { |
| | | margin-right: 20rpx; |
| | | width: 120rpx; |
| | | height: 120rpx; |
| | | border-radius: 8rpx; |
| | | border: 2rpx solid #e5e5e5; |
| | | } |
| | | |
| | | .info { |
| | | flex: 1; |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: space-between; |
| | | font-size: 26rpx; |
| | | color: #666666; |
| | | |
| | | .name { |
| | | font-size: 30rpx; |
| | | color: #333333; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .status_wrap { |
| | | position: relative; |
| | | padding: 30rpx 0; |
| | | |
| | | .name { |
| | | font-weight: 500; |
| | | font-size: 32rpx; |
| | | margin-bottom: 20rpx; |
| | | color: #222222; |
| | | } |
| | | |
| | | .desc { |
| | | font-size: 26rpx; |
| | | color: #ed4545; |
| | | } |
| | | |
| | | .status { |
| | | position: absolute; |
| | | right: -30rpx; |
| | | top: 0; |
| | | height: 60rpx; |
| | | line-height: 60rpx; |
| | | padding: 0 32rpx; |
| | | border-radius: 0rpx 0rpx 0rpx 30rpx; |
| | | background-color: #e9edff; |
| | | color: $uni-color-primary; |
| | | } |
| | | } |
| | | |
| | | .main_footer { |
| | | padding-bottom: 64rpx; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | |
| | | .btn { |
| | | width: 336rpx; |
| | | height: 88rpx; |
| | | line-height: 88rpx; |
| | | background: #ffffff; |
| | | border-radius: 44rpx; |
| | | border: 1rpx solid #999999; |
| | | font-size: 32rpx; |
| | | text-align: center; |
| | | margin: 16rpx 0; |
| | | } |
| | | |
| | | .agree { |
| | | background: $uni-color-primary; |
| | | color: #fff; |
| | | border: 1rpx solid $uni-color-primary; |
| | | } |
| | | } |
| | | |
| | | .appr_modal { |
| | | padding: 36rpx 30rpx 0; |
| | | |
| | | .title { |
| | | font-weight: 500; |
| | | font-size: 32rpx; |
| | | color: #222222; |
| | | margin-bottom: 40rpx; |
| | | text-align: center; |
| | | } |
| | | |
| | | textarea { |
| | | box-sizing: border-box; |
| | | width: 690rpx; |
| | | background-color: #f7f7f7; |
| | | font-size: 28rpx; |
| | | color: #333333; |
| | | padding: 24rpx; |
| | | border-radius: 8rpx; |
| | | margin-bottom: 30rpx; |
| | | } |
| | | } |
| | | |
| | | .emyty { |
| | | width: 750rpx; |
| | | height: 20rpx; |
| | | background-color: #f7f7f7; |
| | | margin: 0 -30rpx; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | selDatetime: '', |
| | | |
| | | colorOptions: [ |
| | | { color: '#279BAA', name: '已鿩' }, |
| | | { color: this.$store.state.primaryColor, name: '已鿩' }, |
| | | { color: '#F7F7F7', name: 'å¯é¢çº¦' }, |
| | | { color: '#cccccc', name: 'ä¸å¯é¢çº¦' }, |
| | | ] |
| | |
| | | } else { |
| | | this.selDatetime = this.param.queryDate.slice(5) + ' ' + selTimeLists[0].startHours + '-' + selTimeLists[selTimeLists.length - 1].endHours |
| | | } |
| | | // if(true){ |
| | | // this.selDatetime.push(item) |
| | | // } |
| | | }, |
| | | confirmDate(e) { |
| | | this.param.queryDate = dayjs(e.value).format('YYYY-MM-DD') |
| | |
| | | padding: 20rpx 30rpx 84rpx; |
| | | box-shadow: 0rpx -3rpx 6rpx 0rpx #eeeeee; |
| | | .sel_time { |
| | | color: #279baa; |
| | | color: $uni-color-primary; |
| | | } |
| | | .btns { |
| | | margin-top: 10rpx; |
| | |
| | | height: 72rpx; |
| | | line-height: 72rpx; |
| | | text-align: center; |
| | | background: #279baa; |
| | | background: $uni-color-primary; |
| | | box-shadow: 0rpx -1rpx 0rpx 0rpx #eeeeee; |
| | | border-radius: 36rpx; |
| | | font-size: 30rpx; |
| | |
| | | font-size: 30rpx; |
| | | } |
| | | .active { |
| | | background-color: #279baa; |
| | | background-color: $uni-color-primary; |
| | | color: #fff; |
| | | } |
| | | .disable { |
| | |
| | | height: 72rpx; |
| | | line-height: 72rpx; |
| | | text-align: center; |
| | | background: #279baa; |
| | | background: $uni-color-primary; |
| | | box-shadow: 0rpx -1rpx 0rpx 0rpx #eeeeee; |
| | | border-radius: 36rpx; |
| | | font-size: 30rpx; |
| | | color: #ffffff; |
| | | } |
| | | .sel { |
| | | color: #279baa; |
| | | color: $uni-color-primary; |
| | | flex: 1; |
| | | } |
| | | } |
| | |
| | | } |
| | | }; |
| | | </script> |
| | | <style> |
| | | <style lang="scss"> |
| | | page { |
| | | background-color: #f7f7f7 !important; |
| | | } |
| | |
| | | height: 88rpx; |
| | | line-height: 88rpx; |
| | | text-align: center; |
| | | background: #4e99a9; |
| | | background: $uni-color-primary; |
| | | border-radius: 44rpx; |
| | | font-size: 32rpx; |
| | | color: #ffffff; |
| | |
| | | height: 40rpx; |
| | | } |
| | | .captcha { |
| | | color: #279baa; |
| | | color: $uni-color-primary; |
| | | } |
| | | input { |
| | | flex: 1; |
| | |
| | | box-sizing: border-box; |
| | | margin-top: 80rpx; |
| | | .for_psd { |
| | | color: #279baa; |
| | | color: $uni-color-primary; |
| | | margin-top: 40rpx; |
| | | width: 140rpx; |
| | | text-align: center; |
| | |
| | | .login_btn_n { |
| | | width: 100%; |
| | | height: 98rpx; |
| | | background: #279baa; |
| | | background: $uni-color-primary; |
| | | box-shadow: 0rpx 12rpx 24rpx 0rpx rgba(39, 155, 170, 0.2); |
| | | display: flex; |
| | | align-items: center; |
| | |
| | | text-align: center; |
| | | bottom: 108rpx; |
| | | .deal { |
| | | color: #279baa; |
| | | color: $uni-color-primary; |
| | | } |
| | | } |
| | | } |
| | |
| | | box-sizing: border-box; |
| | | margin-top: 80rpx; |
| | | .for_psd { |
| | | color: #279baa; |
| | | color: $uni-color-primary; |
| | | margin-top: 40rpx; |
| | | width: 140rpx; |
| | | text-align: center; |
| | |
| | | .login_btn_n { |
| | | width: 100%; |
| | | height: 98rpx; |
| | | background: #279baa; |
| | | background: $uni-color-primary; |
| | | box-shadow: 0rpx 12rpx 24rpx 0rpx rgba(39, 155, 170, 0.2); |
| | | display: flex; |
| | | align-items: center; |
| | |
| | | text-align: center; |
| | | bottom: 108rpx; |
| | | .deal { |
| | | color: #279baa; |
| | | color: $uni-color-primary; |
| | | } |
| | | } |
| | | } |
| | |
| | | time: time || null, |
| | | userInfo: userInfo || {}, |
| | | height: height || '0', |
| | | sessionKey: sessionKey || '' |
| | | sessionKey: sessionKey || '', |
| | | primaryColor: '#279baa' |
| | | }, |
| | | |
| | | mutations: { |
| | |
| | | /* é¢è²åé */ |
| | | |
| | | /* è¡ä¸ºç¸å
³é¢è² */ |
| | | $uni-color-primary: #007aff; |
| | | $uni-color-primary: #279baa; |
| | | $uni-color-success: #4cd964; |
| | | $uni-color-warning: #f0ad4e; |
| | | $uni-color-error: #dd524d; |
| | |
| | | // æ§å¶å°æ¾ç¤ºæ°æ®ä¿¡æ¯ |
| | | uni.hideLoading() |
| | | // ç»å½è¿æ |
| | | if (data.code === 401) { |
| | | uni.navigateTo({ |
| | | url: '/pages/staffLogin/login' |
| | | }); |
| | | } |
| | | if (data.code !== 200) { |
| | | setTimeout(() => { |
| | | uni.showToast({ |
| | | title: data.message, |
| | | icon: "none", |
| | | duration: 2000 |
| | | }) |
| | | }) |
| | | } |
| | | if (data.code === 5112) { |
| | | uni.navigateTo({ |
| | | url: '/pages/staffLogin/login' |
| | | }) |
| | | } |
| | | resolve(data) |
| | | // return response.data |