zs-mini-ali-ui
Version:
中视编译后版本 ali-ui
832 lines (740 loc) • 24.1 kB
JavaScript
;/******/ (() => { // webpackBootstrap
/******/ "use strict";
/******/ var __webpack_modules__ = ({
/***/ 9:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _zh_CN__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8);
var I18n_enUS = {
amountInput: {
thousand: 'in thousand (K)' || 0,
tenThousand: 'in ten thousand' || 0,
hundredThousand: 'in a hundred thousand' || 0,
million: 'in million (M)' || 0,
tenMillion: 'in ten million' || 0,
hundredMillion: 'in a hundred million' || 0,
billion: 'in billion (B)' || 0
},
avatar: {
error: 'Avatar: Define both the name and the desc.' || 0
},
calendar: {
year: ' ' || 0,
month: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] || 0,
sunday: 'SUN' || 0,
monday: 'MON' || 0,
tuesday: 'TUE' || 0,
wednesday: 'WED' || 0,
thursday: 'THUR' || 0,
friday: 'FRI' || 0,
saturday: 'SAT' || 0
},
coupon: {
ruleBtn: 'More' || 0
},
filter: {
reset: 'Clear' || 0,
confirm: 'Apply' || 0
},
footer: {
endLine: 'End' || 0
},
guide: {
nextBtn: 'Next' || 0,
jumpBtn: 'Skip' || 0,
overBtn: 'OK' || 0
},
list: {
loadMore: 'See more...' || 0,
loadOver: '-- This is the end. --' || 0
},
notice: {
detail: 'More' || 0
},
pageResult: {
refresh: 'Refresh' || 0,
networkTitle: 'We\'ve lost the Internet connection.' || 0,
errorTitle: 'We\'re met some errors.' || 0,
busyTitle: 'Hang on, we\'ll be back soon.' || 0,
emptyTitle: 'No coupons anymore.' || 0,
logoffTitle: 'The user has logged off.' || 0,
paymentTitle: 'Your payment failed.' || 0,
redpacketTitle: 'No coupons anymore.' || 0,
networkBrief: 'We\'re working out best to get you back up and running. Just be patient.' || 0,
errorBrief: 'Please refresh and try again later.' || 0,
busyBrief: 'You\'re in a high traffic. Just be patient.' || 0,
emptyBrief: 'Sorry. We tried out best.' || 0,
logoffBrief: false || _zh_CN__WEBPACK_IMPORTED_MODULE_0__["default"].pageResult.logoffBrief,
paymentBrief: 'Please try again.' || 0,
redpacketBrief: 'Come to pick up the coupon earlier next time.' || 0,
timeOut: 's to ' || 0
},
searchBar: {
cancel: 'Cancel' || 0
},
verifyCode: {
label: 'Ver. Code' || 0,
placeholder: 'Verification Code' || 0,
sendBtn: 'Send' || 0,
sendAgainBtn: 'Resend Now' || 0,
countDown: 's to Resend' || 0
}
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (I18n_enUS);
/***/ }),
/***/ 8:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
var I18n_zhCN = {
amountInput: {
thousand: '千',
tenThousand: '万',
hundredThousand: '十万',
million: '百万',
tenMillion: '千万',
hundredMillion: '亿',
billion: '十亿'
},
avatar: {
error: 'Avatar: 不允许设置 desc 但不定义 name'
},
calendar: {
year: '年',
month: '月',
sunday: '日',
monday: '一',
tuesday: '二',
wednesday: '三',
thursday: '四',
friday: '五',
saturday: '六'
},
coupon: {
ruleBtn: '规则详情'
},
filter: {
reset: '重置',
confirm: '确定'
},
footer: {
endLine: '我是有底线的'
},
guide: {
nextBtn: '下一步',
jumpBtn: '跳过',
overBtn: '知道了'
},
list: {
loadMore: '加载更多...',
loadOver: '-- 数据加载完了 --'
},
notice: {
detail: '查看详情'
},
pageResult: {
refresh: '重新刷新',
networkTitle: '网络不给力',
errorTitle: '页面遇到一些小问题',
busyTitle: '请稍等哦,马上出来',
emptyTitle: '什么都没有',
logoffTitle: '此用户已注销',
paymentTitle: '付款没成功',
redpacketTitle: '什么都没有',
networkBrief: '世界上最遥远的距离莫过于此',
errorBrief: '请稍后刷新',
busyBrief: '前面还有很多朋友在排队',
emptyBrief: '前不见古人,后不见来者',
logoffBrief: '',
paymentBrief: '请重新付款',
redpacketBrief: '红包已领空',
timeOut: '秒后'
},
searchBar: {
cancel: '取消'
},
verifyCode: {
label: '验证码',
placeholder: '请输入验证码',
sendBtn: '发送验证码',
sendAgainBtn: '重发验证码',
countDown: '秒后重试'
}
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (I18n_zhCN);
/***/ }),
/***/ 7:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ getI18n)
/* harmony export */ });
/* harmony import */ var _lang_zh_CN__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8);
/* harmony import */ var _lang_en_US__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9);
function getI18n() {
try {
/* global getApp */
/* eslint no-undef: "error" */
var appMiniAliUI = getApp() || null;
if (appMiniAliUI) {
var _appMiniAliUI$globalD;
if (((_appMiniAliUI$globalD = appMiniAliUI.globalData) == null ? void 0 : _appMiniAliUI$globalD.miniAliUiLang) === 'en-US') {
return _lang_en_US__WEBPACK_IMPORTED_MODULE_1__["default"];
} else {
return _lang_zh_CN__WEBPACK_IMPORTED_MODULE_0__["default"];
}
} else {
return _lang_zh_CN__WEBPACK_IMPORTED_MODULE_0__["default"];
}
} catch (error) {
return _lang_zh_CN__WEBPACK_IMPORTED_MODULE_0__["default"];
}
}
/***/ })
/******/ });
/************************************************************************/
/******/ // The module cache
/******/ var __webpack_module_cache__ = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/ // Check if module is in cache
/******/ var cachedModule = __webpack_module_cache__[moduleId];
/******/ if (cachedModule !== undefined) {
/******/ return cachedModule.exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = __webpack_module_cache__[moduleId] = {
/******/ // no module.id needed
/******/ // no module.loaded needed
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/************************************************************************/
/******/ /* webpack/runtime/define property getters */
/******/ (() => {
/******/ // define getter functions for harmony exports
/******/ __webpack_require__.d = (exports, definition) => {
/******/ for(var key in definition) {
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ }
/******/ }
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/hasOwnProperty shorthand */
/******/ (() => {
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
/******/ })();
/******/
/******/ /* webpack/runtime/make namespace object */
/******/ (() => {
/******/ // define __esModule on exports
/******/ __webpack_require__.r = (exports) => {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/ })();
/******/
/************************************************************************/
var __webpack_exports__ = {};
// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
(() => {
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _util_getI18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7);
var i18n = (0,_util_getI18n__WEBPACK_IMPORTED_MODULE_0__["default"])().calendar;
/* eslint-disable complexity, no-param-reassign */
/* eslint max-depth: [2, 7] */
var leapYear = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
var commonYear = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
var FIRST_MONTH = 0;
var LAST_MONTH = 11;
var DAYS_PER_ROW = 7;
var COLOR_MAP = {
1: '#ff6010',
2: '#00b578',
3: '#ff8f1f',
4: '#1677ff',
5: '#999'
}; // 获取某月第某天是星期几
function getDay(month, year, index) {
return new Date(year, month, index).getDay();
} // 获取某月有几天
function getMonthLength(month, year) {
if (year % 400 === 0 || year % 100 !== 0 && year % 4 === 0) {
return leapYear[month];
} else {
return commonYear[month];
}
} // 数字补位 1 -> 01
function prefixNum(num) {
if (num < 10) {
return "0" + num;
} else {
return "" + num;
}
}
Component({
data: {
selectedYear: 0,
selectedMonth: 0,
currentDate: null,
dates: [],
blockType: 1,
// 1.没有待办纯数字 2.有待办 用于区分不同类型日期块的样式。
_i18nYear: i18n.year,
_i18nMonth: i18n.month,
_i18nWeekSun: i18n.sunday,
_i18nWeekMon: i18n.monday,
_i18nWeekTue: i18n.tuesday,
_i18nWeekWed: i18n.wednesday,
_i18nWeekThu: i18n.thursday,
_i18nWeekFri: i18n.friday,
_i18nWeekSat: i18n.saturday
},
props: {
className: '',
tagData: [],
type: 'single',
haveYear: false,
prevMonthDisable: false,
prevYearDisable: false,
nextvMonthDisable: false,
nextYearDisable: false
},
didMount: function didMount() {
this.tapTimes = 1;
var date = new Date();
date.setHours(0);
date.setMinutes(0);
date.setSeconds(0);
date.setMilliseconds(0);
var year = date.getFullYear();
var month = date.getMonth();
this.setData({
selectedYear: year,
selectedMonth: month,
currentDate: date
});
this.refreshdates(month, year);
},
didUpdate: function didUpdate() {
var dates = this.data.dates;
var blockType = 1;
for (var i = 0; i < dates.length; i++) {
for (var j = 0; j < dates[i].length; j++) {
if (this.hasTag(dates[i][j])) {
blockType = 2;
}
}
}
this.setData({
dates: dates,
blockType: blockType
});
},
methods: {
onPrevYearTap: function onPrevYearTap() {
var _this$data = this.data,
selectedMonth = _this$data.selectedMonth,
selectedYear = _this$data.selectedYear;
var prevYearDisable = this.props.prevYearDisable;
if (!prevYearDisable) {
var year = selectedYear;
var month = selectedMonth;
year = selectedYear - 1;
if (this.props.onYearChange) {
this.props.onYearChange(year, selectedYear);
}
if (this.props.onChange) {
this.props.onChange({
year: year,
month: month
}, {
year: selectedYear,
month: selectedMonth
});
}
this.setData({
selectedYear: year
});
this.refreshdates(month, year);
}
},
onNextYearTap: function onNextYearTap() {
var _this$data2 = this.data,
selectedMonth = _this$data2.selectedMonth,
selectedYear = _this$data2.selectedYear;
var nextYearDisable = this.props.nextYearDisable;
if (!nextYearDisable) {
var year = selectedYear;
var month = selectedMonth;
year = selectedYear + 1;
if (this.props.onYearChange) {
this.props.onYearChange(year, selectedYear);
}
if (this.props.onChange) {
this.props.onChange({
year: year,
month: month
}, {
year: selectedYear,
month: selectedMonth
});
}
this.setData({
selectedYear: year
});
this.refreshdates(month, year);
}
},
onPrevMonthTap: function onPrevMonthTap() {
var _this$data3 = this.data,
selectedMonth = _this$data3.selectedMonth,
selectedYear = _this$data3.selectedYear;
var prevMonthDisable = this.props.prevMonthDisable;
if (!prevMonthDisable) {
var year = selectedYear;
var month = selectedMonth; // 如果当前选中是一月份,前一月是去年的12月
if (selectedMonth === FIRST_MONTH) {
year = selectedYear - 1;
month = LAST_MONTH;
} else {
month = selectedMonth - 1;
}
if (this.props.onMonthChange) {
this.props.onMonthChange(month, selectedMonth);
}
if (this.props.onChange) {
this.props.onChange({
year: year,
month: month
}, {
year: selectedYear,
month: selectedMonth
});
}
this.setData({
selectedYear: year,
selectedMonth: month
});
this.refreshdates(month, year);
}
},
onNextMonthTap: function onNextMonthTap() {
var _this$data4 = this.data,
selectedMonth = _this$data4.selectedMonth,
selectedYear = _this$data4.selectedYear;
var nextvMonthDisable = this.props.nextvMonthDisable;
if (!nextvMonthDisable) {
var year = selectedYear;
var month = selectedMonth; // 如果当前选中是十二月份,下一月是去年的12月
if (selectedMonth === LAST_MONTH) {
year = selectedYear + 1;
month = FIRST_MONTH;
} else {
month = selectedMonth + 1;
}
if (this.props.onMonthChange) {
this.props.onMonthChange(month, selectedMonth);
}
if (this.props.onChange) {
this.props.onChange({
year: year,
month: month
}, {
year: selectedYear,
month: selectedMonth
});
}
this.setData({
selectedYear: year,
selectedMonth: month
});
this.refreshdates(month, year);
}
},
refreshdates: function refreshdates(month, year) {
this.tapTimes = 1;
var _this$data5 = this.data,
selectedYear = _this$data5.selectedYear,
selectedMonth = _this$data5.selectedMonth,
currentDate = _this$data5.currentDate;
var firstDay = getDay(month, year, 1);
var days = getMonthLength(month, year);
var datesArray = [];
var currentDateTimeStamp = +currentDate;
var num = 0;
for (var i = 0; i < firstDay; i++) {
num += 1; // 如果当前选中的是一月份,前一个月是去年的12月
var _year = selectedYear;
var _month = selectedMonth;
if (selectedMonth === 0) {
_year = selectedYear - 1;
_month = LAST_MONTH;
} else {
_year = selectedYear;
_month = selectedMonth - 1;
}
var date = getMonthLength(_month, _year) - i;
datesArray.unshift({
year: _year,
month: _month,
date: date,
isToday: false,
isGray: true,
isSelected: false,
tag: ''
});
}
for (var _i = 0; _i < days; _i++) {
num += 1;
var _date = _i + 1;
var dateTimeStamp = +new Date(selectedYear, selectedMonth, _date);
datesArray.push({
year: selectedYear,
month: selectedMonth,
date: _date,
isToday: dateTimeStamp === currentDateTimeStamp,
isGray: false,
isSelected: dateTimeStamp === currentDateTimeStamp,
tag: ''
});
}
var nextDate = 0;
var daysPerPage = 35;
if (num > 35) {
daysPerPage = 42;
}
for (var _i2 = 0; _i2 < daysPerPage - days - firstDay; _i2++) {
// 如果是12月,下月是第二年的1月份
nextDate += 1;
var _year2 = selectedYear;
var _month2 = selectedMonth;
if (selectedMonth === LAST_MONTH) {
_year2 = selectedYear + 1;
_month2 = FIRST_MONTH;
} else {
_year2 = selectedYear;
_month2 = selectedMonth + 1;
}
datesArray.push({
year: _year2,
month: _month2,
date: nextDate,
isToday: false,
isGray: true,
isSelected: false,
tag: ''
});
}
var blockType = 1;
for (var _i3 = 0; _i3 < datesArray.length; _i3++) {
if (this.hasTag(datesArray[_i3])) {
blockType = 2;
}
}
var dates = [];
var weekDates = [];
for (var _i4 = 0; _i4 < datesArray.length; _i4++) {
weekDates.push(datesArray[_i4]);
if ((_i4 + 1) % DAYS_PER_ROW === 0) {
dates.push([].concat(weekDates));
weekDates = [];
}
}
this.setData({
dates: dates,
blockType: blockType
});
},
hasTag: function hasTag(dateObj) {
var tagData = this.props.tagData; // 去重由调用者处理
if (tagData.length === 0) {
dateObj.tag = '';
return false;
}
return tagData.some(function (item) {
var dateArr = item.date.split('-');
var dateStr = []; // 兼容ios下new Date('2018-1-1')格式返回invalid Date的问题
for (var i = 0; i < dateArr.length; i++) {
dateStr.push(dateArr[i].length > 1 ? dateArr[i] : "0" + dateArr[i]);
}
var date = new Date(dateStr.join('-'));
if (dateObj.year === date.getFullYear() && dateObj.month === date.getMonth() && dateObj.date === date.getDate()) {
dateObj.tag = item.tag;
dateObj.color = COLOR_MAP[item.tagColor];
dateObj.disable = item.disable;
return true;
} else {
dateObj.tag = '';
return false;
}
});
},
getDateGap: function getDateGap(day1, day2) {
var date1 = +new Date(day1.year, prefixNum(day1.month), prefixNum(day1.date));
var date2 = +new Date(day2.year, prefixNum(day2.month), prefixNum(day2.date));
return (date1 - date2) / (24 * 3600 * 1000);
},
makeDate: function makeDate(dateObj) {
return new Date(dateObj.year + "-" + prefixNum(dateObj.month + 1) + "-" + prefixNum(dateObj.date));
},
onDateTap: function onDateTap(event) {
var dates = this.data.dates;
var _event$currentTarget$ = event.currentTarget.dataset,
year = _event$currentTarget$.year,
month = _event$currentTarget$.month,
date = _event$currentTarget$.date;
var type = this.props.type;
if (type === 'range') {
if (this.tapTimes % 2 === 0) {
this.tapTimes += 1;
this.endDate = {
year: year,
month: month,
date: date
};
var dateGap = this.getDateGap(this.startDate, this.endDate);
if (dateGap > 0) {
var _ref = [this.endDate, this.startDate];
this.startDate = _ref[0];
this.endDate = _ref[1];
}
var hasDisable = false;
for (var i = 0; i < dates.length; i++) {
for (var j = 0; j < dates[i].length; j++) {
var dateObj = dates[i][j];
dateObj.isStart = false;
dateObj.isMiddle = false;
dateObj.isEnd = false;
var startDateGap = this.getDateGap(dateObj, this.startDate);
var endDateGap = this.getDateGap(dateObj, this.endDate);
if (dateObj.year === year && dateObj.month === month && dateObj.date === date && dateObj.disable) {
hasDisable = true;
}
if (startDateGap > 0 && endDateGap < 0) {
if (dateObj.disable) {
hasDisable = true;
}
if (dateGap !== 0) {
if (j === 0) {
dateObj.isStart = true;
} else if (j === 6) {
dateObj.isEnd = true;
} else {
dateObj.isMiddle = true;
}
} else {
dateObj.isSelected = true;
}
}
if (this.startDate.year === dateObj.year && this.startDate.month === dateObj.month && this.startDate.date === dateObj.date && dateGap !== 0) {
if (j === 6) {
dateObj.isSelected = true;
} else {
dateObj.isStart = true;
}
}
if (this.endDate.year === dateObj.year && this.endDate.month === dateObj.month && this.endDate.date === dateObj.date && dateGap !== 0) {
if (j === 0) {
dateObj.isSelected = true;
} else {
dateObj.isEnd = true;
}
}
}
}
if (hasDisable) {
this.props.onSelectHasDisableDate([this.makeDate(this.startDate), this.makeDate(this.endDate)]);
return;
}
if (this.props.onSelect) {
this.props.onSelect([this.makeDate(this.startDate), this.makeDate(this.endDate)]);
}
} else {
var isDisable = false;
for (var _i5 = 0; _i5 < dates.length; _i5++) {
for (var _j = 0; _j < dates[_i5].length; _j++) {
var _dateObj = dates[_i5][_j];
if (_dateObj.year === year && _dateObj.month === month && _dateObj.date === date) {
if (_dateObj.disable) {
// console.log(1111);
isDisable = true;
_dateObj.isSelected = false;
} else {
_dateObj.isSelected = true;
}
_dateObj.isStart = false;
_dateObj.isMiddle = false;
_dateObj.isEnd = false;
} else {
_dateObj.isSelected = false;
_dateObj.isStart = false;
_dateObj.isMiddle = false;
_dateObj.isEnd = false;
}
}
}
if (!isDisable) {
this.tapTimes += 1;
}
this.startDate = {
year: year,
month: month,
date: date
};
}
this.setData({
dates: dates
});
} else {
var _isDisable = false;
for (var _i6 = 0; _i6 < dates.length; _i6++) {
for (var _j2 = 0; _j2 < dates[_i6].length; _j2++) {
var _dateObj2 = dates[_i6][_j2];
if (_dateObj2.year === year && _dateObj2.month === month && _dateObj2.date === date) {
_dateObj2.isSelected = true;
if (_dateObj2.disable) {
_isDisable = true;
}
} else {
_dateObj2.isSelected = false;
}
}
}
if (_isDisable) {
return;
}
this.setData({
dates: dates
});
if (this.props.onSelect) {
this.props.onSelect([this.makeDate({
year: year,
month: month,
date: date
}), undefined]);
}
}
}
}
});
})();
/******/ })()
;