UNPKG

yylib-quick-mobile

Version:

yylib-quick-mobile

151 lines (138 loc) 5.74 kB
'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;