| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 |
- "use strict";
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
- exports.__esModule = true;
- exports["default"] = void 0;
- var _utils = require("../../utils");
- var _cell = _interopRequireDefault(require("../../cell"));
- var _cellGroup = _interopRequireDefault(require("../../cell-group"));
- var _field = _interopRequireDefault(require("../../field"));
- var _email = require("../../utils/validate/email");
- var _number = require("../../utils/validate/number");
- var _SkuImgUploader = _interopRequireDefault(require("./SkuImgUploader"));
- var _use = (0, _utils.use)('sku-messages'),
- sfc = _use[0],
- bem = _use[1];
- var PLACEHOLDER = {
- id_no: '输入身份证号码',
- text: '输入文本',
- tel: '输入数字',
- email: '输入邮箱',
- date: '点击选择日期',
- time: '点击选择时间',
- textarea: '点击填写段落文本',
- mobile: '输入手机号码'
- };
- var _default = sfc({
- props: {
- messages: Array,
- messageConfig: Object,
- goodsId: [Number, String]
- },
- data: function data() {
- return {
- messageValues: this.resetMessageValues(this.messages)
- };
- },
- watch: {
- messages: function messages(val) {
- this.messageValues = this.resetMessageValues(val);
- }
- },
- methods: {
- resetMessageValues: function resetMessageValues(messages) {
- return (messages || []).map(function () {
- return {
- value: ''
- };
- });
- },
- getType: function getType(message) {
- if (+message.multiple === 1) {
- return 'textarea';
- }
- if (message.type === 'id_no') {
- return 'text';
- }
- return message.datetime > 0 ? 'datetime-local' : message.type;
- },
- getMessages: function getMessages() {
- var _this = this;
- var messages = {};
- this.messageValues.forEach(function (item, index) {
- var value = item.value;
- if (_this.messages[index].datetime > 0) {
- value = value.replace(/T/g, ' ');
- }
- messages["message_" + index] = value;
- });
- return messages;
- },
- getCartMessages: function getCartMessages() {
- var _this2 = this;
- var messages = {};
- this.messageValues.forEach(function (item, index) {
- var value = item.value;
- var message = _this2.messages[index];
- if (message.datetime > 0) {
- value = value.replace(/T/g, ' ');
- }
- messages[message.name] = value;
- });
- return messages;
- },
- getPlaceholder: function getPlaceholder(message) {
- var type = +message.multiple === 1 ? 'textarea' : message.type;
- var map = this.messageConfig.placeholderMap || {};
- return map[type] || PLACEHOLDER[type];
- },
- validateMessages: function validateMessages() {
- var values = this.messageValues;
- for (var i = 0; i < values.length; i++) {
- var value = values[i].value;
- var message = this.messages[i];
- if (value === '') {
- // 必填字段的校验
- if (String(message.required) === '1') {
- // eslint-disable-line
- var textType = message.type === 'image' ? '请上传' : '请填写';
- return textType + message.name;
- }
- } else {
- if (message.type === 'tel' && !(0, _number.isNumber)(value)) {
- return '请填写正确的数字格式留言';
- }
- if (message.type === 'mobile' && !/^\d{6,20}$/.test(value)) {
- return '手机号长度为6-20位数字';
- }
- if (message.type === 'email' && !(0, _email.isEmail)(value)) {
- return '请填写正确的邮箱';
- }
- if (message.type === 'id_no' && (value.length < 15 || value.length > 18)) {
- return '请填写正确的身份证号码';
- }
- }
- }
- }
- },
- render: function render(h) {
- var _this3 = this;
- return h(_cellGroup["default"], {
- "class": bem()
- }, [this.messages.map(function (message, index) {
- return message.type === 'image' ? h(_cell["default"], {
- "class": bem('image-cell'),
- "attrs": {
- "label": "仅限一张",
- "title": message.name,
- "required": String(message.required) === '1'
- },
- "key": _this3.goodsId + "-" + index
- }, [h(_SkuImgUploader["default"], {
- "attrs": {
- "uploadImg": _this3.messageConfig.uploadImg,
- "maxSize": _this3.messageConfig.uploadMaxSize
- },
- "model": {
- value: _this3.messageValues[index].value,
- callback: function callback($$v) {
- _this3.messageValues[index].value = $$v;
- }
- }
- })]) : h(_field["default"], {
- "attrs": {
- "maxlength": "200",
- "label": message.name,
- "required": String(message.required) === '1',
- "placeholder": _this3.getPlaceholder(message),
- "type": _this3.getType(message)
- },
- "key": _this3.goodsId + "-" + index,
- "model": {
- value: _this3.messageValues[index].value,
- callback: function callback($$v) {
- _this3.messageValues[index].value = $$v;
- }
- }
- });
- })]);
- }
- });
- exports["default"] = _default;
|