import Ember from 'ember'; import BaseComponent from './base-component'; export default BaseComponent.extend({ allowBlank: true, actions: { doEdit() { var me = this; me.set('oldValue', me.getFieldValue()); me.set('isEditing', true) Ember.run.later(() => { Ember.$('input[type="text"][name="' + me.get('model.id') + '"]').focus(); }, 128); }, doUpdate() { let me = this; if (me.get('isUpdating')) { Ember.Logger.info('Cell Is Updating, Ignore.'); return; } me.set('isUpdating', true); let newValue = me.getFieldValue(); if (me.get('oldValue') !== newValue) { if (!me.get('allowBlank') && !newValue) { me.get('message').warn('属性不能为空'); // reset field value me.resetValue(); me.set('isUpdating', false); } else { let service = me.get('service'); let model = me.get('model'); let vr = service.updateValidate(model); if (vr) { Ember.Logger.info('Validate Result: ', vr); me.get('message').warn(Object.keys(vr).map((e)=> { return vr[e]; }).reduce((msg, e)=> { return (msg ? msg + '
' : '') + e.join('
'); }, '')); // reset field value me.resetValue(); me.set('isUpdating', false); } else { me.dialog.confirm('确认要更新吗?', () => { service.update(model, true); me.set('isUpdating', false); }, () => { // reset field value me.resetValue(); me.set('isUpdating', false); }); } } } else { Ember.Logger.info('Field Value Not Changed.') me.set('isUpdating', false); } me.set('isEditing', false); } }, getFieldValue() { return this.get('model.' + this.get('field')); }, resetValue() { let me = this; me.set('model.' + me.get('field'), me.get('oldValue')); } });