1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- // commpents/datetime-picker/index.js
- const app = getApp()
- const moment = require("../../utils/moment.min");
- Component({
- /**
- * 组件的属性列表
- */
- options: { multipleSlots: true },
- properties: {
- datetime: { type: String, value: '' },
- fieldValue: { type: String, value: '' }
- },
- // 生命周期函数,可以为函数,或一个在methods段中定义的方法名
- attached: function () { }, // 此处attached的声明会被lifetimes字段中的声明覆盖
- ready: function () { },
- pageLifetimes: {
- // 组件所在页面的生命周期函数
- show: function () { },
- hide: function () { },
- resize: function () { },
- },
- /**
- * 组件的初始数据
- */
- data: {
- dateTimeArray: [
- ['2001', '2002', '2003', '2004', '2005', '2006', '2007', '2008', '2009', '2010'],
- ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'],
- ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31'],
- ['00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23'],
- ['00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59'],
- ['00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59'],
- ],
- // 计算日期
- year: '',
- moneh: '',
- },
- /**
- * 组件的方法列表
- */
- methods: {
- // 确认选择
- change: function (e) {
- const that = this;
- let dateTimeArray = that.data.dateTimeArray;
- let value = e.detail.value;
- let datetime = dateTimeArray[0][value[0]] + '-' + dateTimeArray[1][value[1]] + '-' + dateTimeArray[2][value[2]] + ' ' + dateTimeArray[3][value[3]] + ':' + dateTimeArray[4][value[4]] + ':' + dateTimeArray[5][value[5]];
- that.triggerEvent('datetimeChange', { datetime: datetime, fieldValue: that.properties.fieldValue })
- },
- // 选择月份
- columnChange: function (e) {
- const that = this;
- const { column, value } = e.detail;
- let dateTimeArray = that.data.dateTimeArray;
- let year = '';
- let month = '';
- year = that.data.year || dateTimeArray[0][0];
- month = that.data.month || dateTimeArray[1][0];
- if (column == '0') year = dateTimeArray[0][value];
- if (column == '1') month = dateTimeArray[1][value];
- that.setData({ year: year, month: month });
- // 计算当前选择年月所要显示的日期
- let ym = that.data.year + '-' + that.data.month;
- let test = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31'];
- let monthDay = moment(ym).daysInMonth();
- let thr = test.splice(0, monthDay);
- that.setData({ 'dateTimeArray[2]': thr })
- },
- }
- })
|