@power-xa/m-ui 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -11,7 +11,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
11
11
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
12
12
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
13
13
  import React, { cloneElement, forwardRef, Fragment, useCallback, useEffect, useImperativeHandle, useState } from "react";
14
- import { getWindowInfo, showToast, showLoading } from "@tarojs/taro";
14
+ import { getWindowInfo, showToast } from "@tarojs/taro";
15
15
  import { ScrollView, Text, View } from "@tarojs/components";
16
16
  import { Button, ActionSheet, getObjectPathValue, setObjectPathValue } from "../..";
17
17
  import "./index.less";
@@ -90,61 +90,84 @@ var ProForm = function ProForm(_ref, ref) {
90
90
  }));
91
91
  }).flat();
92
92
  }, [form]);
93
- var saveForm = useCallback(function () {
94
- var controlList = getControlsList(children instanceof Array ? children : [children]);
93
+ var validFormRequired = useCallback(function (formList) {
95
94
  /* 必填校验 */
96
- var requiredList = controlList.filter(function (item) {
97
- var _item$props$rules;
98
- return item.props.name && !item.props.hidden && (item.props.required || ((_item$props$rules = item.props.rules) === null || _item$props$rules === void 0 ? void 0 : _item$props$rules.some(function (r) {
99
- return r.required;
100
- })));
101
- });
102
- var condition = function condition(e) {
103
- return [undefined, null, ""].includes(e.props.value) || e.props.value instanceof Array && !e.props.value.length;
104
- };
105
- if (requiredList.some(condition)) {
106
- var _e$props$rules;
107
- var e = requiredList.find(condition);
108
- return showToast({
109
- title: (e === null || e === void 0 || (_e$props$rules = e.props.rules) === null || _e$props$rules === void 0 || (_e$props$rules = _e$props$rules.find(function (r) {
95
+ return new Promise(function (resolve, reject) {
96
+ var requiredList = formList.filter(function (item) {
97
+ var _item$rules;
98
+ return (((_item$rules = item.rules) === null || _item$rules === void 0 ? void 0 : _item$rules.some(function (r) {
110
99
  return r.required;
111
- })) === null || _e$props$rules === void 0 ? void 0 : _e$props$rules.message) || (e === null || e === void 0 ? void 0 : e.props.label) + "必填",
112
- icon: "none"
100
+ })) || item.required) && !item.hidden && item.name;
113
101
  });
114
- }
115
- /* 正则校验 */
116
- var patternControlList = controlList.filter(function (item) {
117
- var _item$props$rules2;
118
- return item.props.name && item.props.value && !item.props.hidden && ((_item$props$rules2 = item.props.rules) === null || _item$props$rules2 === void 0 ? void 0 : _item$props$rules2.some(function (r) {
119
- return r.pattern;
120
- }));
102
+ var condition = function condition(item) {
103
+ return [undefined, null, ""].includes(item.value) || item.value instanceof Array && !item.value.length;
104
+ };
105
+ if (requiredList.some(condition)) {
106
+ var _form = requiredList.find(condition);
107
+ if (_form) {
108
+ var _form$rules;
109
+ var message = ((_form$rules = _form.rules) === null || _form$rules === void 0 || (_form$rules = _form$rules.find(function (r) {
110
+ return r.required;
111
+ })) === null || _form$rules === void 0 ? void 0 : _form$rules.message) || _form.label + "必填";
112
+ showToast({
113
+ title: message,
114
+ icon: "none"
115
+ });
116
+ reject(message);
117
+ }
118
+ } else {
119
+ resolve();
120
+ }
121
121
  });
122
- var patternCondition = function patternCondition(e) {
123
- var patternList = e.props.rules.filter(function (r) {
124
- return r.pattern;
125
- }).map(function (p) {
126
- return p.pattern;
127
- });
128
- if (patternList.some(function (p) {
129
- return !p.test(e.props.value);
130
- })) return true;
131
- return false;
132
- };
133
- if (patternControlList.some(patternCondition)) {
134
- var _e$props$rules2;
135
- var _e = patternControlList.find(patternCondition);
136
- if (_e) return showToast({
137
- title: (_e === null || _e === void 0 || (_e$props$rules2 = _e.props.rules) === null || _e$props$rules2 === void 0 || (_e$props$rules2 = _e$props$rules2.find(function (r) {
122
+ }, []);
123
+ var validFormRegExp = useCallback(function (formList) {
124
+ /* 正则校验 */
125
+ return new Promise(function (resolve, reject) {
126
+ var patternList = formList.filter(function (item) {
127
+ var _item$rules2;
128
+ return ((_item$rules2 = item.rules) === null || _item$rules2 === void 0 ? void 0 : _item$rules2.some(function (r) {
138
129
  return r.pattern;
139
- })) === null || _e$props$rules2 === void 0 ? void 0 : _e$props$rules2.message) || (_e === null || _e === void 0 ? void 0 : _e.props.label) + "格式有误",
140
- icon: "none"
130
+ })) && item.name && !item.hidden && item.value;
141
131
  });
142
- }
143
- showLoading({
144
- title: "保存中",
145
- mask: true
132
+ var condition = function condition(item) {
133
+ var _item$rules3;
134
+ var list = (_item$rules3 = item.rules) === null || _item$rules3 === void 0 ? void 0 : _item$rules3.filter(function (r) {
135
+ return r.pattern;
136
+ }).map(function (r) {
137
+ r.pattern.lastIndex = 0;
138
+ return r.pattern;
139
+ });
140
+ return list === null || list === void 0 ? void 0 : list.some(function (p) {
141
+ return !(p !== null && p !== void 0 && p.test(item.value));
142
+ });
143
+ };
144
+ if (patternList.some(condition)) {
145
+ var _form2 = patternList.find(condition);
146
+ if (_form2) {
147
+ var _form2$rules;
148
+ var message = (_form2 === null || _form2 === void 0 || (_form2$rules = _form2.rules) === null || _form2$rules === void 0 || (_form2$rules = _form2$rules.find(function (r) {
149
+ return r.pattern;
150
+ })) === null || _form2$rules === void 0 ? void 0 : _form2$rules.message) || _form2.label + "格式有误";
151
+ showToast({
152
+ title: message,
153
+ icon: "none"
154
+ });
155
+ reject(message);
156
+ }
157
+ } else {
158
+ resolve();
159
+ }
160
+ });
161
+ }, []);
162
+ var saveForm = useCallback(function () {
163
+ var formList = getControlsList(children instanceof Array ? children : [children]).map(function (item) {
164
+ return item.props;
165
+ });
166
+ validFormRequired(formList);
167
+ validFormRegExp(formList);
168
+ Promise.all([validFormRequired(formList), validFormRegExp(formList)]).then(function () {
169
+ return onOk === null || onOk === void 0 ? void 0 : onOk(form);
146
170
  });
147
- onOk === null || onOk === void 0 || onOk(form);
148
171
  }, [form]);
149
172
  var renderContent = useCallback(function () {
150
173
  var elementList = children instanceof Array ? children : [children];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@power-xa/m-ui",
3
- "version": "0.0.2",
3
+ "version": "0.0.3",
4
4
  "description": "power-mobile系列公共组件库",
5
5
  "module": "dist/index.js",
6
6
  "types": "dist/index.d.ts",