Commit eb8be16aa8dd17f4cbda8a96f156f79cb333fa7f

Authored by vking
1 parent e3bbb8e6

blue ui other

@@ -126,6 +126,9 @@ @@ -126,6 +126,9 @@
126 .white-font{ 126 .white-font{
127 color:#fff; 127 color:#fff;
128 } 128 }
  129 +.blue-font{
  130 + color:#42A5FF;
  131 +}
129 .green-font{ 132 .green-font{
130 color:#199095; 133 color:#199095;
131 } 134 }
@@ -3636,6 +3636,10 @@ scroll-view.cu-steps .cu-item { @@ -3636,6 +3636,10 @@ scroll-view.cu-steps .cu-item {
3636 background: linear-gradient(90deg, #3BBFF5 0%, #57A0FF 100%); 3636 background: linear-gradient(90deg, #3BBFF5 0%, #57A0FF 100%);
3637 color: var(--white); 3637 color: var(--white);
3638 } 3638 }
  3639 +.bg-cccccc{
  3640 + color: var(--white);
  3641 + background-color: #cccccc;
  3642 +}
3639 3643
3640 .shadow[class*="-red"] { 3644 .shadow[class*="-red"] {
3641 box-shadow: var(--ShadowSize) var(--redShadow); 3645 box-shadow: var(--ShadowSize) var(--redShadow);
@@ -4048,4 +4052,12 @@ scroll-view.cu-steps .cu-item { @@ -4048,4 +4052,12 @@ scroll-view.cu-steps .cu-item {
4048 } 4052 }
4049 .Medium{ 4053 .Medium{
4050 font-weight: 500; 4054 font-weight: 500;
  4055 +}
  4056 +.more{
  4057 + width: 12rpx;
  4058 + height: 22rpx;
  4059 + background-image: url("http://nosqn.colorcun.com/custom/lite-yd/image/click.png");
  4060 + background-size: 100% 100%;
  4061 + min-width: 12rpx;
  4062 + background-repeat: no-repeat;
4051 } 4063 }
1 @import "../../../app.wxss"; 1 @import "../../../app.wxss";
2 .room-list{ 2 .room-list{
3 - width:100%;  
4 - padding-left:30rpx; 3 + width: 100%;
  4 + padding-left:40rpx;
5 box-sizing: border-box; 5 box-sizing: border-box;
6 } 6 }
7 .room-item{ 7 .room-item{
8 - width:330rpx; 8 + width:320rpx;
9 height:140rpx; 9 height:140rpx;
10 padding:0 30rpx; 10 padding:0 30rpx;
11 box-sizing: border-box; 11 box-sizing: border-box;
1 <view class="section flex-lr"> 1 <view class="section flex-lr">
2 <block wx:for="{{sectionlist}}" wx:key="{{index}}"> 2 <block wx:for="{{sectionlist}}" wx:key="{{index}}">
3 <view class="flex-vc section-single {{item.isselected ? 'bg-yellow' : ''}}" style="width:{{690/sectionlist.length}}rpx;" data-section="{{item.section}}" data-index="{{index}}" catchtap="{{item.overdate ? '' : 'selectsection'}}"> 3 <view class="flex-vc section-single {{item.isselected ? 'bg-yellow' : ''}}" style="width:{{690/sectionlist.length}}rpx;" data-section="{{item.section}}" data-index="{{index}}" catchtap="{{item.overdate ? '' : 'selectsection'}}">
4 - <view class="{{item.overdate ? 'gray-font' : (item.isselected ? 'white-font' : '')}} font30r Semibold">{{item.showmark}}</view>  
5 - <view class="{{item.overdate ? 'gray-font' : (item.isselected ? 'white-font' : '')}} font24r" style="line-height:34rpx;">{{item.sectiondur}}</view> 4 + <view class="{{item.overdate ? 'gray-font' : (item.isselected ? 'blue-font' : '')}} font30r Semibold">{{item.showmark}}</view>
  5 + <view class="{{item.overdate ? 'gray-font' : (item.isselected ? 'blue-font' : '')}} font24r" style="line-height:34rpx;">{{item.sectiondur}}</view>
6 </view> 6 </view>
7 </block> 7 </block>
8 </view> 8 </view>
1 @import "../../../app.wxss"; 1 @import "../../../app.wxss";
2 .section{ 2 .section{
3 - width:690rpx; 3 + width:100%;
4 height:90rpx; 4 height:90rpx;
5 border-radius:10rpx; 5 border-radius:10rpx;
6 - box-shadow: 0 0 8rpx rgba(166,166,166,.5);  
7 - overflow: hidden; 6 + /*box-shadow: 0 0 8rpx rgba(166,166,166,.5);*/
8 margin:0 auto; 7 margin:0 auto;
  8 + border: 2rpx solid #CCCCCC;
  9 + box-sizing: border-box;
9 } 10 }
10 .section-single{ 11 .section-single{
11 - height:100%; 12 + height:calc(100% + 4rpx);
12 border-radius:10rpx; 13 border-radius:10rpx;
  14 + box-sizing: border-box;
13 } 15 }
14 .section-single.bg-yellow{ 16 .section-single.bg-yellow{
15 - background: -webkit-linear-gradient(top, #F2D190, #C0A369); /* Safari 5.1 - 6.0 */  
16 - background: -o-linear-gradient(-45deg, #F2D190, #C0A369); /* Opera 11.1 - 12.0 */  
17 - background: -moz-linear-gradient(top, #F2D190, #C0A369); /* Firefox 3.6 - 15 */  
18 - background: linear-gradient(to bottom, #F2D190, #C0A369);  
19 - border-width:0; 17 + background: #F4FAFF;
  18 + border: 2rpx solid #42A5FF;
20 } 19 }
1 @import "../../../app.wxss"; 1 @import "../../../app.wxss";
2 .select-rooms{ 2 .select-rooms{
3 width:100%; 3 width:100%;
4 - padding:70rpx 0 4rpx 30rpx; 4 + padding:70rpx 0 4rpx 40rpx;
5 box-sizing: border-box; 5 box-sizing: border-box;
6 } 6 }
7 .select-rooms-title{ 7 .select-rooms-title{
  1 +import util from '../../../utils/util';
  2 +import App from '../../../utils/api';
  3 +Component({
  4 + properties:{
  5 + seller:Object,
  6 + //选中日期
  7 + date:{
  8 + type:String,
  9 + value:util.unixtoTime(new Date()/1000,'YYYY-MM-DD'),
  10 + }
  11 + },
  12 + data:{
  13 + hidecalendar:true
  14 + },
  15 + attached(){
  16 + this.today=util.unixtoTime(new Date()/1000,'YYYY-MM-DD');
  17 + this.setData({
  18 + showYearMonth:this.getshowmonth(this.data.date)
  19 + })
  20 + this.hasNowInToday();
  21 + this.getweeklist();
  22 + this.getdaylist();
  23 + this.getFullDate();
  24 + },
  25 + ready(){
  26 +
  27 + },
  28 + methods:{
  29 + //判断是否过了今天时段,并设置date
  30 + hasNowInToday(){
  31 + let daily=this.data.seller.daily
  32 + let maxDur='';
  33 + Object.keys(daily).forEach(k=>{
  34 + let dur=daily[k].split('-')
  35 + if(dur[1]>maxDur){
  36 + maxDur=dur[1]
  37 + }
  38 + })
  39 + let nowDur=util.unixtoTime(new Date()/1000,'HH:II')
  40 + let nowDate=this.data.date
  41 + if(nowDur>maxDur){
  42 + nowDate=util.unixtoTime(new Date()/1000+86400,'YYYY-MM-DD')
  43 + this.setData({
  44 + date:nowDate
  45 + })
  46 + }
  47 + //console.log('hasNowInToday',maxDur)
  48 + this.triggerEvent('selectdate',{date:nowDate,action:'defalut'})
  49 + },
  50 + //获取当前选中日期年月
  51 + getshowmonth(selecteddate){
  52 + let datearr=selecteddate.split('-');
  53 + return{
  54 + showyear:Number(datearr[0]),
  55 + showmonth:Number(datearr[1]),
  56 + }
  57 + },
  58 + //获得周列表
  59 + getweeklist(){
  60 + let week=['日','一','二','三','四','五','六'];
  61 + let weeklist=[];
  62 + for(let i=0;i<week.length;i++){
  63 + weeklist.push({
  64 + weekfont:week[i],
  65 + weeknum:i
  66 + })
  67 + }
  68 + this.setData({
  69 + weeklist:weeklist,
  70 + })
  71 + },
  72 + //获取日期列表
  73 + getdaylist(){
  74 + //选中时间时间戳
  75 + let selectedtime=Number(util.timetouUnix(this.data.date+' 00:00:00'));
  76 + //选中日期星期几
  77 + let selectedweek=new Date(this.data.date).getDay();
  78 + console.log('selectedweek',selectedweek)
  79 + let daylist=[],current=0;
  80 + //用于月历点击的时候判断是否改变周历列表
  81 + this.datelist={}
  82 + if(this.data.date==this.today){
  83 + selectedweek=0;
  84 + }
  85 + for(let i=0;i<14;i++){
  86 + let thistimestamp=selectedtime+(i-selectedweek)*86400;
  87 + let thisdate=new Date(thistimestamp*1000);
  88 + let thisdayobj={
  89 + year:thisdate.getFullYear(),
  90 + month:thisdate.getMonth()+1,
  91 + day:thisdate.getDate(),
  92 + week:thisdate.getDay(),
  93 + date:util.unixtoTime(thistimestamp,'YYYY-MM-DD'),
  94 + overdate:thistimestamp<=(new Date()/1000)-86400 ? true : false, //日期是否过期
  95 + istoday:false,
  96 + timestamp:thistimestamp,
  97 + }
  98 + //是否是今天
  99 + if(this.today==thisdayobj.date){
  100 + thisdayobj.istoday=true;
  101 + thisdayobj.mark='今'
  102 + }
  103 + if(util.unixtoTime(new Date()/1000+86400,'YYYY-MM-DD')==thisdayobj.date){
  104 + thisdayobj.mark='明'
  105 + }
  106 + thisdayobj.isselected=false
  107 + if(this.data.date==thisdayobj.date){
  108 + thisdayobj.isselected=true
  109 + current=i
  110 + }
  111 + thisdayobj.isselected=this.data.date==thisdayobj.date ? true : false;
  112 + //日期是否选中
  113 + daylist.push(thisdayobj);
  114 + this.datelist[thisdayobj.date]=Math.floor(i/7)+'-'+(i-Math.floor(i/7)*7)
  115 + }
  116 + this.setData({
  117 + current:this.getCurrentMax(current),
  118 + daylist:daylist
  119 + })
  120 + console.log('getdaylist.daylist',daylist,this.datelist)
  121 + },
  122 + //获取满房日期
  123 + getFullDate(){
  124 + let parmdata={
  125 + sid:this.data.seller.id,
  126 + type:'week',
  127 + date:this.data.daylist[0].date
  128 + }
  129 + App.Customer.GetHouseFullDate(parmdata).then((json)=>{
  130 + console.log(json)
  131 + if(json.ret==200){
  132 + if(json.data && json.data.length>0){
  133 + this.markFullHouse(json.data);
  134 + }
  135 + }
  136 + })
  137 + },
  138 + //标记满房
  139 + markFullHouse(fullHouseDate){
  140 + let daylist=this.data.daylist;
  141 + daylist.forEach((r,i)=>{
  142 + fullHouseDate.forEach((r1,n1)=>{
  143 + if(r1==r.date){
  144 + r.mark='满'
  145 + }
  146 + })
  147 + })
  148 + console.log('markFullHouse.daylist',daylist)
  149 + this.setData({
  150 + daylist:daylist
  151 + })
  152 + },
  153 + //选择日期
  154 + selectdate(e){
  155 + let _target=e.currentTarget.dataset;
  156 + this.changedatestyle(_target.date);
  157 + this.triggerEvent('selectdate',{date:_target.date,action:'click'});
  158 + this.setData({
  159 + date:_target.date,
  160 + showYearMonth:this.getshowmonth(_target.date),
  161 + current:this.getCurrentMax(_target.index-(_target.date==this.today?0:1)),
  162 + })
  163 + },
  164 + //日历组件---通知事件
  165 + tellselectdate(e){
  166 + console.log(e)
  167 + let _target=e.detail;
  168 + this.triggerEvent('selectdate',{date:_target.date,action:'click'});
  169 + this.setData({
  170 + date:_target.date,
  171 + showYearMonth:this.getshowmonth(_target.date),
  172 + hidecalendar:true
  173 + })
  174 + console.log('tellselectdate',_target.date , this.datelist,_target.date in this.datelist)
  175 + if(_target.date in this.datelist){
  176 + this.changedatestyle(_target.date)
  177 + }else{
  178 + this.getdaylist();
  179 + this.getFullDate();
  180 + }
  181 + },
  182 + //修改日期列表
  183 + changedatestyle(selecteddate){
  184 + let daylist=this.data.daylist;
  185 + let prevsingle,previndex,cursingle,curindex;
  186 + daylist.forEach((r,i)=>{
  187 + if(r.isselected){
  188 + prevsingle=i;
  189 + let prevkey='daylist['+prevsingle+'].isselected';
  190 + this.setData({
  191 + [prevkey]:false,
  192 + })
  193 + }
  194 + if(r.date==selecteddate){
  195 + cursingle=i;
  196 + }
  197 + })
  198 + let currentkey='daylist['+cursingle+'].isselected';
  199 + this.setData({
  200 + [currentkey]:true,
  201 + current:this.getCurrentMax(cursingle-(selecteddate==this.today?0:1)),
  202 + })
  203 + },
  204 + clickmore(){
  205 + this.setData({
  206 + hidecalendar:false
  207 + })
  208 + },
  209 + getCurrentMax(current){
  210 + return current>10?10:current;
  211 + },
  212 + closecalendar(){
  213 + this.setData({
  214 + hidecalendar:true
  215 + })
  216 + }
  217 + }
  218 +})
  1 +{
  2 + "component": true,
  3 + "usingComponents": {
  4 + "online-calendar":"../online-calendar/online-calendar"
  5 + }
  6 +}
  1 +<wxs src="../../../utils/util.wxs" module="util" />
  2 +<view class="padding-lr-lg padding-top-lg">
  3 + <view class="flex justify-between align-center margin-bottom" catchtap="clickmore">
  4 + <view class="txt-36-h text-bold">预订日期</view>
  5 + <view class="flex align-center txt-24-h">
  6 + 更多
  7 + <view class="more margin-left-xs"></view>
  8 + </view>
  9 + </view>
  10 +</view>
  11 +<swiper previous-margin="35rpx" next-margin="45rpx"
  12 + class="tabs date" current="{{current}}"
  13 + display-multiple-items="4">
  14 + <swiper-item wx:for="{{daylist}}" wx:key="daylist">
  15 + <view class="item {{item.isselected?'active':''}} flex flex-direction justify-center"
  16 + catchtap="{{item.overdate ? '' : 'selectdate'}}"
  17 + data-index="{{index}}" data-date="{{item.date}}" data-type="date">
  18 + <view class="name">{{util.unixtoTime(item.timestamp,'DAY')||util.unixtoTime(item.timestamp,'周WW')}}</view>
  19 + <view class="mmdd">{{util.unixtoTime(item.timestamp,'MM月DD日')}}</view>
  20 + </view>
  21 + </swiper-item>
  22 +</swiper>
  23 +<!--
  24 +<view class="week-calendar">
  25 + <view class="week-calendar-content">
  26 + <block wx:for="{{daylist}}" wx:for-item="itemlist" wx:for-index="indexlist" wx:key="{{indexlist}}">
  27 + <view class="week-calendar-day-list flex flex-wrap">
  28 + <block wx:for="{{itemlist.list}}" wx:key="{{index}}">
  29 + <view class="{{item.overdate ? 'gray-font' : 'font-font'}} font30r Semibold week-calendar-day flex-cc {{item.istoday ? 'today' : ''}} {{item.isselected ? 'bg-yellow white-font' : ''}}" data-date="{{item.date}}" catchtap="{{item.overdate ? '' : 'selectdate'}}">{{item.mark ? item.mark : item.day}}</view>
  30 + </block>
  31 + </view>
  32 + </block>
  33 + </view>
  34 +</view>
  35 +-->
  36 +<view class="calendar-mask" hidden="{{hidecalendar}}" catchtap="closecalendar"></view>
  37 +<view class="calendar-cover" hidden="{{hidecalendar}}">
  38 + <online-calendar seller="{{seller}}" date="{{date}}" hidecalendar="{{hidecalendar}}" bindtellselectdate="tellselectdate"></online-calendar>
  39 +</view>
  1 +@import "../../../colorui/main.wxss";
  2 +.tabs {
  3 + height: 100rpx;
  4 +}
  5 +.tabs .item{
  6 + width:120rpx;
  7 + height:100rpx;
  8 + line-height: 100rpx;
  9 + border-radius:10rpx;
  10 + border:2rpx solid #fffff;
  11 + font-size:28rpx;
  12 + font-weight:400;
  13 + color:#353535;
  14 + text-align: center;
  15 + box-sizing: border-box;
  16 +}
  17 +.tabs .item.active{
  18 + background: #F4FAFF;
  19 + border-radius: 10rpx;
  20 + border: 2rpx solid #42A5FF;
  21 + color:#42A5FF;
  22 + font-weight: bold;
  23 +}
  24 +.date .item{
  25 + width: 140rpx;
  26 + height: 100rpx;
  27 +}
  28 +.item .name{
  29 + height: 36rpx;
  30 + font-size: 26rpx;
  31 + line-height: 36rpx;
  32 +}
  33 +.item .mmdd{
  34 + height: 40rpx;
  35 + font-size: 28rpx;
  36 + line-height: 40rpx;
  37 +}
  38 +
  39 +.calendar-mask{
  40 + position: fixed;
  41 + left:0;
  42 + right:0;
  43 + top:0;
  44 + bottom:0;
  45 + z-index:10;
  46 + background:rgba(21,20,20,.5);
  47 +}
  48 +.calendar-cover{
  49 + position: fixed;
  50 + left:0;
  51 + right:0;
  52 + bottom:0;
  53 + background: #FFFBF2;
  54 + border-top-left-radius:20rpx;
  55 + border-top-right-radius:20rpx;
  56 + overflow: hidden;
  57 + z-index:11;
  58 +}
@@ -7,7 +7,7 @@ @@ -7,7 +7,7 @@
7 "getpos":"/components/userinfo/getpos", 7 "getpos":"/components/userinfo/getpos",
8 "people":"/components/reserve/people/people", 8 "people":"/components/reserve/people/people",
9 "dur":"/components/reserve/dur/dur", 9 "dur":"/components/reserve/dur/dur",
10 - "calendar":"/components/reserve/week-calendar/week-calendar", 10 + "calendar":"/components/reserve/week-calendar/week-calendar-day",
11 "section":"/components/reserve/section/section", 11 "section":"/components/reserve/section/section",
12 "select-room":"/components/reserve/select-room/select-room" 12 "select-room":"/components/reserve/select-room/select-room"
13 } 13 }
@@ -2,21 +2,21 @@ @@ -2,21 +2,21 @@
2 <page loading="{{loading}}"> 2 <page loading="{{loading}}">
3 <nav hasHome>{{seller.sellername}}</nav> 3 <nav hasHome>{{seller.sellername}}</nav>
4 <!-- 包间预定 --> 4 <!-- 包间预定 -->
5 - <view class="padding-lr-lg padding-top-lg" wx:if="{{seller.id}}">  
6 - <view class="flex justify-between align-center">  
7 - <view class="txt-36-h text-bold">预订日期</view>  
8 - <view class="more"></view>  
9 - </view>  
10 - <view>...</view>  
11 - <view class="flex justify-between align-center">  
12 - <view class="txt-36-h text-bold">预订时段</view> 5 + <block wx:if="{{seller.id}}">
  6 + <view class="margin-bottom-xl">
  7 + <calendar seller="{{seller}}" bindselectdate="selectdate" date="{{reserveDate}}"></calendar>
13 </view> 8 </view>
14 - <view>  
15 - <section seller="{{seller}}" date="{{reserveDate}}" bind:selectsection="selectsection" section="{{reserveSection}}"></section> 9 + <view class="padding-lr-lg padding-top-lg" >
  10 + <view class="flex justify-between align-center margin-bottom margin-top">
  11 + <view class="txt-36-h text-bold">预订时段</view>
  12 + </view>
  13 + <view>
  14 + <section seller="{{seller}}" date="{{reserveDate}}" bind:selectsection="selectsection" section="{{reserveSection}}"></section>
  15 + </view>
16 </view> 16 </view>
17 - </view>  
18 - <block wx:if="{{reserveSection}}">  
19 - <select-room seller="{{seller}}" date="{{reserveDate}}" section="{{reserveSection}}" seletroomlist="{{seletroomlist}}" bindchangeroom="selectroom"></select-room> 17 + <block wx:if="{{reserveSection}}">
  18 + <select-room seller="{{seller}}" date="{{reserveDate}}" section="{{reserveSection}}" seletroomlist="{{seletroomlist}}" bindchangeroom="selectroom"></select-room>
  19 + </block>
20 </block> 20 </block>
21 <!-- 21 <!--
22 <view wx:if="{{seller.id}}"> 22 <view wx:if="{{seller.id}}">
@@ -32,7 +32,7 @@ @@ -32,7 +32,7 @@
32 </view> 32 </view>
33 </view> 33 </view>
34 --> 34 -->
35 - <view class="reserve-button-cover flex-cc">  
36 - <view class="white-font font32r reserve-button flex-cc" catchtap="complete">选好了</view> 35 + <view class="reserve-button-cover {{seletroomlist.length>0?'bg-blue-blue':'bg-cccccc'}} flex justify-center align-center round" catchtap="complete">
  36 + <view class="reserve-button txt-36-h">选好了</view>
37 </view> 37 </view>
38 </page> 38 </page>
@@ -7,18 +7,11 @@ @@ -7,18 +7,11 @@
7 padding: 40rpx 0 30rpx 30rpx; 7 padding: 40rpx 0 30rpx 30rpx;
8 font-size: 32rpx; 8 font-size: 32rpx;
9 } 9 }
10 -.reserve-button{  
11 - width:680rpx;  
12 - height:80rpx;  
13 - margin:0 auto;  
14 - background: #242320;  
15 -} 10 +
16 .reserve-button-cover{ 11 .reserve-button-cover{
17 - width:100%;  
18 - height:130rpx; 12 + width:calc(100% - 80rpx);
  13 + height:84rpx;
19 position: fixed; 14 position: fixed;
20 - left:0;  
21 - right:0;  
22 - bottom:0;  
23 - background: #fff; 15 + left:40rpx;
  16 + bottom:40rpx;
24 } 17 }