@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.
- package/dist/ProForm/Form/index.js +72 -49
- package/package.json +1 -1
|
@@ -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
|
|
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
|
|
94
|
-
var controlList = getControlsList(children instanceof Array ? children : [children]);
|
|
93
|
+
var validFormRequired = useCallback(function (formList) {
|
|
95
94
|
/* 必填校验 */
|
|
96
|
-
|
|
97
|
-
var
|
|
98
|
-
|
|
99
|
-
return r
|
|
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
|
-
}))
|
|
112
|
-
icon: "none"
|
|
100
|
+
})) || item.required) && !item.hidden && item.name;
|
|
113
101
|
});
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
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
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
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
|
-
}))
|
|
140
|
-
icon: "none"
|
|
130
|
+
})) && item.name && !item.hidden && item.value;
|
|
141
131
|
});
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
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];
|