yylib-quick-mobile
Version:
yylib-quick-mobile
151 lines (138 loc) • 5.74 kB
JavaScript
'use strict';
var React = require('react');
var _require = require('../../index'),
YYMessage = _require.YYMessage,
YYModal = _require.YYModal;
var _ = require('lodash');
var ajax = require('../../utils/ajax');
var formatUtils = require('../../utils/formatUtils');
var EsStore = require('./api.esstore');
var ApiForm = {};
ApiForm.validateForms = function (page, options) {
var _$assign = _.assign({ formKeys: [], index: 0, formValues: {}, formErrors: {}, success: null, error: null }, options),
formKeys = _$assign.formKeys,
index = _$assign.index,
formValues = _$assign.formValues,
formErrors = _$assign.formErrors,
success = _$assign.success,
error = _$assign.error;
var formKey = formKeys[index];
var form = page.findUI(formKey);
if (form && form.api && form.api.validateFields) {
form.api.validateFieldsAndScroll(function (errors, values) {
formErrors[formKey] = errors;
formValues[formKey] = values;
if (!!errors) {
if (_.isFunction(error)) {
error({ formErrors: formErrors, formValues: formValues, formKey: formKey, index: index });
}
return;
} else {
if (formKeys.length == index + 1) {
if (_.isFunction(success)) {
success({ formValues: formValues });
}
} else {
ApiForm.validateForms(page, _.assign(options, { formValues: formValues, formErrors: formErrors, index: index + 1 }));
}
}
});
}
};
ApiForm.saveData = function (page, options) {
var storeKey = options.storeKey;
var allForms = page.findUIByType('FormWidget');
if (!_.isArray(allForms) || allForms.length == 0) return;
var formKeys = [];
_.forEach(allForms, function (form, index) {
formKeys.push(form.uikey);
});
ApiForm.validateForms(page, { formKeys: formKeys, success: function success(options) {
var allFormValues = {};
_.forEach(options.formValues, function (values, formKey) {
if (!_.isEmpty(values)) {
var inputValues = {};
_.forEach(values, function (val, fieldKey) {
if (val !== undefined) {
if (val instanceof Date) {
var dateField = page.findUI(fieldKey);
inputValues[fieldKey] = formatUtils.formatDate(val, dateField.format ? dateField.format : 'yyyy-MM-dd');
} else {
inputValues[fieldKey] = val;
}
}
});
allFormValues[formKey] = inputValues;
}
});
var allEditTable = page.findUIByType('EditTableWidget');
var allEditTableValues = {};
for (var editTableIndex = 0; editTableIndex < allEditTable.length; editTableIndex++) {
var editTable = allEditTable[editTableIndex];
if (editTable && editTable.api) {
allEditTableValues[editTable.uikey] = editTable.api.getRowData({ clearDel: true });
var editTableErrors = editTable.api.validate();
if (editTableErrors !== true) {
YYMessage.error("请检查[" + editTable.uititle + "]数据内容是否正确!");
return;
}
}
};
var formData = _.assign({}, allFormValues, allEditTableValues);
console.log('提交表单数据:', formData);
var storeName = page.getAppCode().toLowerCase() + "_" + storeKey;
EsStore.save({
index: storeName,
type: storeName,
data: formData,
success: function success(result) {
for (var i = 0; i < allForms.length; i++) {
var form = allForms[i];
for (var ii = 0; ii < form.children.length; ii++) {
var formitem = form.children[ii];
if (formitem.uikey == "id") {
form.api.setFieldsValue({ id: result.backData.id });
return;
}
};
};
},
error: function error() {}
});
} });
};
ApiForm.deleteData = function (page, options) {
var storeKey = options.storeKey;
var allForms = page.findUIByType('FormWidget');
var deleteId = '';
for (var i = 0; i < allForms.length; i++) {
var form = allForms[i];
var formValues = form.api.getFieldsValue();
if (formValues.id) {
deleteId = formValues.id;
break;
}
}
if (!deleteId) {
YYMessage.warning("当前没有可删除数据");
return;
}
var storeName = page.getAppCode().toLowerCase() + "_" + storeKey;
YYModal.confirm({
title: "删除确认",
content: "您是否确认要删除该条数据?",
onOk: function onOk() {
EsStore.deleteOne({
index: storeName,
type: storeName,
id: deleteId,
success: function success(result) {
page.goBack();
},
error: function error() {}
});
},
onCancel: function onCancel() {}
});
};
module.exports = ApiForm;