You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

66 lines
2.4 KiB

4 years ago
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var yfieldsControls_1 = __importDefault(require("../yfieldsControls"));
Component({
properties: {
rules: Object,
bindsubmit: String
4 years ago
},
data: {
form: {},
label: {}
},
relations: {
'../yfieldsControls': {
type: 'descendant',
target: yfieldsControls_1.default,
linked: function (target) {
this.setData({ form: Object.assign(this.data.form, target.dataset) });
var label = {};
var labelName = Object.keys(target.dataset)[0];
var laeblValue = target.data.label;
label[labelName] = laeblValue;
this.setData({ label: Object.assign(this.data.label, label) });
}
}
},
methods: {
validate: function () {
for (var key in this.data.rules) {
// 判断form表单中是否存在这个数据
if (!(key in this.data.form)) {
return false;
}
var formValue = this.data.form[key];
// 判断这个数据是否是required
if (this.data.rules[key].require.value) {
if (formValue == '') {
var errMsg = this.data.rules[key].require.errMsg || this.data.label[key] + "\u4E0D\u80FD\u4E3A\u7A7A";
wx.showToast({ title: errMsg, icon: "none" });
return false;
}
}
// 判断这个数据的其他正则
if (this.data.rules[key].re) {
var re = new RegExp(this.data.rules[key].re.value);
if (!re.test(formValue)) {
var errMsg = this.data.rules[key].re.errMsg || this.data.label[key] + "匹配规则失败,未配置规则错误提示";
wx.showToast({ title: errMsg, icon: "none" });
return false;
}
}
}
return true;
},
onSubmit: function () {
console.log("ddddd");
4 years ago
if (!this.validate())
return;
this.triggerEvent("onSubmit", this.data.form, {});
},
},
});