captain-ui
Version:
有赞vue wap业务组件库
126 lines (112 loc) • 3.4 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = void 0;
require("vant/es/picker/style");
var _picker = _interopRequireDefault(require("vant/es/picker"));
require("vant/es/popup/style");
var _popup = _interopRequireDefault(require("vant/es/popup"));
require("vant/es/cell/style");
var _cell = _interopRequireDefault(require("vant/es/cell"));
var _components;
var WEEK_DAY_MAP = ['周日', '周一', '周二', '周三', '周四', '周五', '周六'];
var _default = {
render: function render() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c('div', {
staticClass: "cap-order-goods-delivery-time"
}, [_c('van-cell', {
attrs: {
"title": _vm.title,
"is-link": _vm.canSelect
},
on: {
"click": function click($event) {
_vm.show = true;
}
}
}, [_c('p', [_vm._v(_vm._s(_vm.deliveryTime))]), _c('p', [_vm._v(_vm._s(_vm.firstTimeDelivery) + " 首次送达")])]), _c('van-popup', {
attrs: {
"position": "bottom",
"lock-on-scroll": ""
},
model: {
value: _vm.show,
callback: function callback($$v) {
_vm.show = $$v;
},
expression: "show"
}
}, [_c('van-picker', {
attrs: {
"title": "选择首次送达时间",
"show-toolbar": "",
"columns": _vm.dateList
},
on: {
"cancel": function cancel($event) {
_vm.show = false;
},
"confirm": _vm.onDeliveryConfirm
}
})], 1)], 1);
},
name: 'cap-order-goods-delivery-time',
components: (_components = {}, _components[_cell.default.name] = _cell.default, _components[_popup.default.name] = _popup.default, _components[_picker.default.name] = _picker.default, _components),
props: {
title: {
type: String,
default: '送达时间'
},
// 送达时间列表
deliveryOptions: {
type: Array,
required: true
},
// 预计送达时间
deliveryTime: String
},
data: function data() {
return {
show: false,
deliveryIndex: 0
};
},
computed: {
canSelect: function canSelect() {
return this.deliveryOptions.length > 1;
},
firstTimeDelivery: function firstTimeDelivery() {
return this.deliveryOptions[this.deliveryIndex];
},
dateList: function dateList() {
var _this = this;
var dateList = this.deliveryOptions.map(function (item) {
return _this.formatDate(item);
});
return [{
values: dateList
}];
}
},
methods: {
onDeliveryConfirm: function onDeliveryConfirm(val) {
var index = this.dateList[0].values.indexOf(val[0]);
var time = this.deliveryOptions[index];
this.deliveryIndex = index;
this.show = false;
this.$emit('change', time);
},
// 格式化日期为 xxxx年xx月xx日 (周x)
formatDate: function formatDate(date) {
date = new Date(date);
return [date.getFullYear() + '年', this.padZero(date.getMonth() + 1) + '月', this.padZero(date.getDate()) + '日', ' (' + WEEK_DAY_MAP[date.getDay()] + ')'].join('');
},
padZero: function padZero(num) {
return num < 10 ? '0' + num : num;
}
}
};
exports.default = _default;