下单时间优化、支持默认提示

master
gongfuxiang 2022-11-29 11:03:33 +08:00
parent c35909c8ec
commit 657004e643
2 changed files with 42 additions and 25 deletions

View File

@ -12,14 +12,19 @@
</view>
<view class="time-select-time-box">
<view class="left_box">
<view v-if="item.timeArr.length > 0" @click="_changeDay(index)" :class="{ active: item.checked }" v-for="(item, index) in timeList" :key="item.dateStr">
{{ item.name }}
</view>
<block v-if="item.timeArr.length > 0" v-for="(item, index) in timeList" :key="item.dateStr">
<view @click="_changeDay(index)" :class="{ active: item.checked }">
{{ item.name }}
</view>
</block>
</view>
<view class="right_box">
<view @click="_changeTime(index)" :class="{ active: item.checked }" v-for="(item, index) in activeTimeArr" :key="item.time">
{{ item.time }}{{ propRangeType ? '-' + item.endtime : '' }}
</view>
<view v-if="day_active_index == 0 && (propPlaceholder || null) != null" @click="_changeTime('')" :class="(time_active_index === '' ? 'active' : '')">{{propPlaceholder}}</view>
<block v-for="(item, index) in activeTimeArr" :key="item.time">
<view @click="_changeTime(index)" :class="{ active: item.checked }">
{{ item.time }}{{ propRangeType ? '-' + item.endtime : '' }}
</view>
</block>
</view>
</view>
</view>
@ -34,6 +39,10 @@ export default {
type: String,
default: '请选择时间'
},
propPlaceholder: {
type: String,
default: ''
},
propSubhead: {
type: String,
default: ''
@ -100,7 +109,9 @@ export default {
select_dateStr: '',
selectTime: '',
selectEndime: '',
activeTimeArr: []
activeTimeArr: [],
day_active_index: 0,
time_active_index: ''
};
},
beforeMount() {
@ -115,16 +126,16 @@ export default {
_stopFunc() {},
_dataOpen() {
this._selectEvent();
this._selectEvent('open');
},
_closeBtnClose() {
if(this.propCloseBtn) {
this._selectEvent();
this._selectEvent('close');
}
},
_maskClose() {
if(this.propMaskHide) {
this._selectEvent();
this._selectEvent('close');
}
},
_selectEvent(data = '') {
@ -141,19 +152,24 @@ export default {
this.selectDateStr = timeList[_ind].dateStr;
this.select_dateStr = timeList[_ind]._dateStr;
this.activeTimeArr = timeList[_ind].timeArr;
this.day_active_index = e;
},
_changeTime(e) {
let _ind = e - 0;
let { activeTimeArr } = this;
let timeArr = JSON.parse(JSON.stringify(activeTimeArr));
timeArr.forEach(ele => {
ele.checked = false;
});
timeArr[_ind].checked = true;
this.selectTime = timeArr[_ind].time;
this.selectEndime = timeArr[_ind].endtime;
let _data = '';
if(e !== '') {
let _ind = e - 0;
timeArr[_ind].checked = true;
this.selectTime = timeArr[_ind].time;
this.selectEndime = timeArr[_ind].endtime;
_data = this._handleData();
}
this.time_active_index = e;
this.activeTimeArr = timeArr;
let _data = this._handleData();
this._selectEvent(_data);
},
_handleData() {
@ -208,6 +224,7 @@ export default {
}
this.timeList = _timeList;
this.time_active_index = this.propDefaultTime || '';
},
_setDefaultTime(list) {
for (let index = 0; index < list.length; index++) {

View File

@ -123,7 +123,7 @@
<view v-if="(buy_datetime_info || null) != null && (buy_datetime_info.is_select || false) == true" class="buy-data-item bg-white border-radius-main spacing-mb arrow-right">
<text class="cr-base">{{buy_datetime_info.title}}</text>
<view class="right-value single-text dis-inline-block fr tr">
<component-time-select :propTitle="buy_datetime_info.title" :propRangeDay="buy_datetime_info.range_day || 2" :propRangeStartTime="buy_datetime_info.time_start" :propRangeEndTime="buy_datetime_info.time_end" :propDisabled="buy_datetime_info.disabled" :propIsShow="buy_datetime_info.status" @selectEvent="buy_datetime_event">
<component-time-select :propTitle="buy_datetime_info.title" :propPlaceholder="buy_datetime_info.placeholder" :propRangeDay="buy_datetime_info.range_day || 2" :propRangeStartTime="buy_datetime_info.time_start" :propRangeEndTime="buy_datetime_info.time_end" :propDisabled="buy_datetime_info.disabled" :propIsShow="buy_datetime_info.status" @selectEvent="buy_datetime_event">
<text v-if="(buy_datetime_info.value || null) == null" class="cr-grey">{{buy_datetime_info.placeholder}}</text>
<text v-else class="cr-base">{{buy_datetime_info.value}}</text>
</component-time-select>
@ -800,15 +800,15 @@
},
//
buy_datetime_event(e) {
var temp = this.buy_datetime_info;
temp['status'] = !temp.status;
if((e || null) != null) {
temp['value'] = e._date || '';
}
this.setData({
buy_datetime_info: temp
})
buy_datetime_event(e) {
var temp = this.buy_datetime_info;
temp['status'] = !temp.status;
if(e != 'open' && e != 'close') {
temp['value'] = (((e || null) != null) ? e._date : '') || '';
}
this.setData({
buy_datetime_info: temp
});
},
//