nowrapper
Version:
nowrapper
291 lines (264 loc) • 10.9 kB
JavaScript
(function (global, factory) {
if (typeof define === "function" && define.amd) {
define(["exports", "@babel/runtime/helpers/objectSpread", "@babel/runtime/helpers/classCallCheck", "@babel/runtime/helpers/defineProperty", "react", "moment", "../common/moment", "../common/util", "../common/wrapper"], factory);
} else if (typeof exports !== "undefined") {
factory(exports, require("@babel/runtime/helpers/objectSpread"), require("@babel/runtime/helpers/classCallCheck"), require("@babel/runtime/helpers/defineProperty"), require("react"), require("moment"), require("../common/moment"), require("../common/util"), require("../common/wrapper"));
} else {
var mod = {
exports: {}
};
factory(mod.exports, global.objectSpread, global.classCallCheck, global.defineProperty, global.react, global.moment, global.moment, global.util, global.wrapper);
global.unknown = mod.exports;
}
})(this, function (_exports, _objectSpread2, _classCallCheck2, _defineProperty2, _react, _moment, _moment2, _util, _wrapper) {
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(_exports, "__esModule", {
value: true
});
_exports["default"] = void 0;
_objectSpread2 = _interopRequireDefault(_objectSpread2);
_classCallCheck2 = _interopRequireDefault(_classCallCheck2);
_defineProperty2 = _interopRequireDefault(_defineProperty2);
_react = _interopRequireDefault(_react);
_moment = _interopRequireDefault(_moment);
var fetchFileUrl = '';
var defaultFileUploadProps = {
prefix: 'next-',
listType: 'text',
type: 'file',
value: [],
language: 'zh-cn',
uploadBtnText: '',
fetchFileUrl: fetchFileUrl,
className: '',
limit: 10,
formatter: function formatter(res) {
// 函数里面根据当前服务器返回的响应数据
// 重新拼装符合组件要求的数据格式
return {
code: res.code,
imgURL: fetchFileUrl + res.fs_url,
imgUrl: fetchFileUrl + res.fs_url,
// downloadURL 是提交给后端,后端可能获取这个值,用于兼容
downloadURL: fetchFileUrl + res.fs_url,
// downloadUrl 是针对于上传成功以后的下载链接
downloadUrl: fetchFileUrl + res.fs_url,
fileURL: fetchFileUrl + res.fs_url,
size: res.size,
fileMd5: res.hash,
fs_url: res.fs_url
};
},
beforeUpload: function beforeUpload() {},
onChange: function onChange() {},
onSuccess: function onSuccess() {}
};
var WrapperClass = function WrapperClass(NextSource) {
var _this = this;
(0, _classCallCheck2["default"])(this, WrapperClass);
(0, _defineProperty2["default"])(this, "Input", function (props) {
return (0, _wrapper.Text)(_this.Next.Input, props);
});
(0, _defineProperty2["default"])(this, "TextArea", function (props) {
return (0, _wrapper.Text)(_this.Next.Input.TextArea, props);
});
(0, _defineProperty2["default"])(this, "Select", function (props) {
return (0, _wrapper.Select)(_this.Next.Select, props, {
previewClass: 'next-preview-select'
});
});
(0, _defineProperty2["default"])(this, "CheckboxGroup", function (props) {
return (0, _wrapper.CheckboxGroup)(_this.Next.Checkbox.Group, props);
});
(0, _defineProperty2["default"])(this, "RadioGroup", function (props) {
return (0, _wrapper.RadioGroup)(_this.Next.Radio.Group, props);
});
(0, _defineProperty2["default"])(this, "Checkbox", function (props) {
return (0, _wrapper.Checkbox)(_this.Next.Checkbox, props);
});
(0, _defineProperty2["default"])(this, "Radio", function (props) {
return (0, _wrapper.Radio)(_this.Next.Radio, props);
});
(0, _defineProperty2["default"])(this, "Switch", function (props) {
return (0, _wrapper.Switch)(_this.Next.Switch, props);
});
(0, _defineProperty2["default"])(this, "Range", function (props) {
return (0, _wrapper.Range)(_this.Next.Range, props, {
previewClass: 'next-preview-range'
});
});
(0, _defineProperty2["default"])(this, "NumberPicker", function (props) {
return (0, _wrapper.NumberPicker)(_this.Next.NumberPicker, props);
});
(0, _defineProperty2["default"])(this, "Rating", function (props) {
return (0, _wrapper.Rate)(_this.Next.Rating, props);
});
(0, _defineProperty2["default"])(this, "CascaderSelect", function (props) {
return (0, _wrapper.CascaderSelect)(_this.Next.CascaderSelect, props, {
previewClass: 'next-preview-select'
});
});
(0, _defineProperty2["default"])(this, "AutoComplete", function (props) {
return (0, _wrapper.AutoComplete)(_this.Next.Select.AutoComplete, props, {
previewClass: 'next-preview-select-auto-complete',
previewProps: {
locale: {
autoCompletePlaceHolder: ''
}
}
});
});
(0, _defineProperty2["default"])(this, "DatePicker", function (props) {
var defaultFormat = "YYYY-MM-DD".concat(props.format ? ' HH:mm:ss' : '');
var _props$format = props.format,
_format = _props$format === void 0 ? defaultFormat : _props$format;
var valueProps = (0, _util.getValueProps)(props, {
format: function format(val) {
return !val ? null : (0, _moment2.value2moment)(_moment["default"], val, _format);
}
});
var onChange = function onChange(dateVal) {
var formatDate = (0, _moment2.moment2value)(dateVal, _format);
props.onChange && props.onChange(formatDate);
};
var previewProps = {
locale: {
datetimePlaceholder: '',
placeholder: ''
}
};
return (0, _wrapper.DatePicker)(_this.Next.DatePicker, props, {
valueProps: valueProps,
previewClass: 'next-preview-datepicker',
onChange: onChange,
previewProps: previewProps
});
});
(0, _defineProperty2["default"])(this, "TimePicker", function (props) {
var _props$format2 = props.format,
_format2 = _props$format2 === void 0 ? 'HH:mm:ss' : _props$format2;
var valueProps = (0, _util.getValueProps)(props, {
format: function format(val) {
return !val ? null : (0, _moment2.value2moment)(_moment["default"], val, _format2);
}
});
var onChange = function onChange(dateVal) {
var formatDate = (0, _moment2.moment2value)(dateVal, _format2);
props.onChange && props.onChange(formatDate);
};
var TimeComponent = _this.Next.TimePicker;
return (0, _wrapper.TimePicker)(TimeComponent, props, {
previewClass: 'next-preview-datepicker',
valueProps: valueProps,
onChange: onChange
});
});
(0, _defineProperty2["default"])(this, "Upload", function (props) {
var onChange = function onChange(fileList) {
props.onChange && props.onChange(fileList, {
escape: true
});
};
return (0, _wrapper.Upload)(_this.Next.Upload, props, {
defaultProps: defaultFileUploadProps,
onChange: onChange,
previewClass: 'next-preview-upload'
});
});
(0, _defineProperty2["default"])(this, "SubDatePicker", function (subType, props) {
var showTime = props.showTime,
format = props.format;
var defaultFormat = 'YYYY-MM-DD';
switch (subType) {
case 'RangePicker':
defaultFormat = 'YYYY-MM-DD';
break;
case 'MonthPicker':
defaultFormat = 'YYYY-MM';
break;
case 'YearPicker':
defaultFormat = 'YYYY';
break;
}
var defaultTimeFormat = showTime && showTime.format || 'HH:mm';
var baseFormat = format || defaultFormat;
var ftFormat = baseFormat + (showTime ? " ".concat(defaultTimeFormat) : '');
var valueProps = (0, _util.getValueProps)(props, {
format: function format(val) {
if (!val) return null;
if (Array.isArray(val)) {
return val.map(function (itemValue) {
return (0, _moment2.value2moment)(_moment["default"], itemValue, ftFormat);
});
} else {
return (0, _moment2.value2moment)(_moment["default"], val, ftFormat);
}
}
});
var onChange = function onChange(dateVal) {
var formatDate = undefined;
if (Array.isArray(dateVal)) {
formatDate = dateVal.map(function (itemVal) {
return (0, _moment2.moment2value)(itemVal, ftFormat);
});
} else {
formatDate = (0, _moment2.moment2value)(dateVal, ftFormat);
}
props.onChange && props.onChange(formatDate, {
escape: true
});
};
return (0, _wrapper.SubDatePicker)(_this.Next.DatePicker, subType, props, {
onChange: onChange,
valueProps: valueProps,
prefix: 'next',
format: ftFormat,
previewClass: 'next-preview-datepicker',
previewProps: {
locale: {
datetimePlaceholder: '',
placeholder: '',
monthPlaceholder: '',
yearPlaceholder: '',
startPlaceholder: '',
endPlaceholder: ''
}
}
});
});
(0, _defineProperty2["default"])(this, "format", function () {
var result = ['Input', 'Select', 'Checkbox', 'Radio', 'Switch', 'Range', 'DatePicker', 'TimePicker', 'NumberPicker', 'Rating', 'CascaderSelect', 'Upload'].reduce(function (ret, key) {
_this[key].displayName = "wrapper(".concat(key, ")");
var extraProps = {};
if (_this.Next[key]) {
extraProps = (0, _objectSpread2["default"])({}, _this.Next[key]);
}
var that = _this;
Object.keys(extraProps).forEach(function (extraKey) {
that[key][extraKey] = extraProps[extraKey];
});
ret[key] = _this[key];
return ret;
}, {});
result.Checkbox.Group = _this.CheckboxGroup;
result.Radio.Group = _this.RadioGroup;
result.Input.TextArea = _this.TextArea;
result.Select.AutoComplete = _this.AutoComplete;
result.DatePicker.RangePicker = _this.SubDatePicker.bind(_this, 'RangePicker');
result.DatePicker.MonthPicker = _this.SubDatePicker.bind(_this, 'MonthPicker');
result.DatePicker.YearPicker = _this.SubDatePicker.bind(_this, 'YearPicker');
if (_this.Next.Select) {
result.Select.Option.displayName = 'wrapper(Option)';
}
return (0, _objectSpread2["default"])({}, _this.Next, result);
});
this.Next = NextSource;
};
function wrapper(NextSource) {
var instance = new WrapperClass(NextSource);
return instance.format();
}
var _default = wrapper;
_exports["default"] = _default;
});