yylib-quick-mobile
Version:
yylib-quick-mobile
126 lines (122 loc) • 4.77 kB
JavaScript
var {TableApi,FormApi} = require('./api.all');
var _ = require('lodash');
var {YYToast} = require('../../index');
var formatUtils = require('../../utils/formatUtils');
var ajax = require('../../utils/ajax');
var CURDHandler = {
//绑定通用查询
"icop.select": {
"onClick":function(){
//console.log('icop.select-->click');
var page = this.getPage();
var table = this.findUI('icop.table');
if(table){
if(table.uitype=='YYTable'){
TableApi.loadData({page,table});
}else if(table.api&&table.uitype=='TableWidget'){
table.api.queryData();
}else if(table.api&&table.uitype=='CPListTable'){
table.api.queryData();
}
}
}
},
//绑定通用删除
"icop.delete": {
"onClick":function(){
//console.log('icop.delete-->click');
var page = this.getPage();
var table = this.findUI('icop.table');
if(table){
if(table.uitype=='YYTable'){
TableApi.batchDelete({page,table});
}else if(table.api&&table.uitype=='TableWidget'){
table.api.deleteData();
}else if(table.api&&table.uitype=='CPListTable'){
table.api.deleteData();
}
}
}
},
//绑定通用返回
"icop.goback": {
"onClick":function(){
this.goBack();
}
},
//绑定基础表格
"icop.table":{
onViewWillMount:function(options){
//console.log('icop.table-->onViewWillMount');
//var itemUI = options.item;
var page = this.getPage();
var table = this.findUI('icop.table');
if(table&&table.uitype=='YYTable'){
TableApi.init({page,table});
}
}
,onViewDidMount:function(options){
//var itemUI = options.item;
//console.log('listTable onViewDidMount',!!itemUI);
//console.log('icop.table-->onViewDidMount');
var page = this.getPage();
var table = this.findUI('icop.table');
if(table&&table.uitype=='YYTable') {
TableApi.loadData({page, table});
}
}
},
//绑定通用保存
"icop.save":{
"onClick":function(){
var that = this;
var allForms = this.findUIByType('FormWidget');
if(!_.isArray(allForms)||allForms.length==0)return;
var _getBaseUrl=function(dataprops){
if(dataprops&&dataprops.system&&dataprops.system.baseUrl&&dataprops.system.systemName){
return dataprops.system.baseUrl+dataprops.system.systemName;
}
};
var _getEntityName=function(dataprops){
if(dataprops&&dataprops.entity&&dataprops.entity.entityFullName){
return dataprops.entity.entityFullName;
}
};
var formKeys = [];
var _url;
var _entityName;
_.forEach(allForms,function(form,index){
formKeys.push(form.uikey);
if(!_url){
_url = _getBaseUrl(form.dataprops)?_getBaseUrl(form.dataprops)+"/commons/jpa/update":null;
}
if(!_entityName){
_entityName = _getEntityName(form.dataprops);
}
});
//console.log('icop.save:',_formData);
FormApi.validateForms(this,{formKeys:formKeys,success:function(options){
var allFormValues = options.formValues;
var formValues = {};
_.forEach(allFormValues,function(values,key) {
formValues = _.assign(formValues,values);
});
//TODO 目前只支持单表操作,需完善子表操作
var _parentEntity = {
"entityName": _entityName,
"entityJson": formValues
};
ajax.postJSON(_url, _parentEntity,function (result) {
//java端返回的格式为JsonBackData+Page格式
if (result && result.success) {
YYToast.success('保存成功');
that.goBack();
}else{
YYToast.error(result.backMsg)
}
});
}});
}
}
};
module.exports = CURDHandler;