yylib-quick-mobile
Version:
yylib-quick-mobile
459 lines (430 loc) • 13.5 kB
JavaScript
'use strict';
var _modal = require('antd-mobile/lib/modal');
var _modal2 = _interopRequireDefault(_modal);
require('antd-mobile/lib/modal/style/css');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var COMP_DATA_LIST = 'YYList';
var COMP_DATA_REPEATER = 'YYRepeater';
var COMP_QUERY_PLAN = 'YYQueryPlan';
var PubConstants = {
DEFAULT_PK_FIELD_VALUE: "id" };
var COMP_APPROVE_HISTORY_MODAL = 'YYApproveHistoryModal';
var COMP_APPROVE_HISTORY = 'YYApproveHistory';
var ajax = window.YYUtils.Ajax;
var AuthToken = window.YYUtils.AuthToken;
var ListEventHandler = {};
var _ = require('lodash');
var _require = require('yylib-antd-mobile'),
YYToast = _require.YYToast,
YYApproveHistory = _require.YYApproveHistory;
var getDefaultTemplateUrl = window.EnvConfig.ADDR + '/icop-support-web/searchTemplate/getDefaultTemplate';
ListEventHandler.assign = function (obj1, obj2) {
return _.merge(obj1, obj2);
};
ListEventHandler.init = function (page, urls) {
if (!urls) {
console.error("初始化列表界面失败:urls未定义");
return;
}
this.urls = urls;
var listData = [];
var list = this.getDataList(page);
this.offline = list && list.api && list.api.props && list.api.props.offline;
var queryPlan = this.getQueryPlan(page);
var _self = this;
if (queryPlan) {
var billType = queryPlan.billType && queryPlan.billType.code;
if (!billType) {
YYToast.fail('查询方案未设置billType', 1);
} else {
var params = {
userId: AuthToken.getUserId(),
billType: billType,
orgId: AuthToken.getOrgaId(),
roleId: AuthToken.getCurrentRoleId()
};
this.getDefaultTemplate(page, getDefaultTemplateUrl, params, function (data) {
var condition = data && data.filter && JSON.parse(data.filter);
var tplId = data && data.id;
var select = data && data.id;
_self.condition = condition;
_self.tplId = tplId;
_self.billType = billType;
queryPlan.select = select;
if (list) {
var postParam = {
billType: billType,
entityName: list.dataprops && list.dataprops.entity ? list.dataprops.entity.entityFullName : null,
pageNumber: 0,
condition: condition,
pageSize: 10,
tplId: tplId,
pagination: true
};
_self.getListData(_self.urls.QUERY_LIST, postParam, list, function (listData, last) {
if (list && list.api) {
list.api.setData(listData);
if (!last) {
_self.pageNumber = 1;
_self.noPagination = false;
} else {
_self.noPagination = true;
}
page.refresh();
}
}, _self.offline);
}
}, _self.offline);
}
} else {
if (list) {
var postParam = {
entityName: list.dataprops && list.dataprops.entity ? list.dataprops.entity.entityFullName : null,
pageNumber: 0,
pageSize: 10,
pagination: true
};
this.getListData(this.urls.QUERY_LIST, postParam, list, function (listData, last) {
if (list && list.api) {
list.api.setData(listData);
if (!last) {
_self.pageNumber = 1;
_self.noPagination = false;
} else {
_self.noPagination = true;
}
page.refresh();
}
}, _self.offline);
}
}
};
ListEventHandler.getDefaultTemplate = function (page, url, params, callback, offline) {
var backData = null;
var getJSON = offline ? ajax.getJSONOffLine : ajax.getJSON;
getJSON.call(ajax, url, params, function (msg) {
if (msg["success"]) {
backData = msg["backData"];
callback(backData);
} else {
YYToast.fail('查询默认查询方案失败', 1);
ListEventHandler.onListRefresh(page);
}
});
};
ListEventHandler.getListData = function (url, param, list, callback, offline) {
var postJSON = offline ? ajax.postJSONOffLine : ajax.postJSON;
var listData = [];
var templistData = [];
if (offline) {
ListEventHandler.queryTempBillListData({ billTypeCode: param.billType }, function (data) {
templistData = data;
});
}
postJSON.call(ajax, url, param, function (msg) {
var backData = msg["backData"];
if (msg["success"]) {
listData = backData["content"];
if (templistData.length) {
templistData.map(function (item, index) {
item.id = item.billId;
item.isOffline = true;
});
listData = templistData.concat(listData);
var result = [];
var obj = {};
for (var i = 0; i < listData.length; i++) {
if (!obj[listData[i].id]) {
result.push(listData[i]);
obj[listData[i].id] = true;
}
}
listData = result;
listData.map(function (item, index) {
if (item.billId) {
delete item.id;
}
});
}
callback(listData, backData['last']);
} else {
YYToast.fail('查询列表数据失败', 1);
callback(templistData);
}
}, function (error) {
YYToast.fail('查询列表数据失败', 1);
callback(templistData);
});
};
ListEventHandler.queryTempBillListData = function (params, callback) {
ajax.offLineQueryData(params, function (res) {
callback(res);
}, function (error) {
YYToast.fail(error['msg']);
});
};
ListEventHandler.getDataList = function (page) {
var dataListKey = this.getDataListKey(page);
return page.findUI(dataListKey);
};
ListEventHandler.getDataListKey = function (page) {
var comp = page.findUIByType(COMP_DATA_LIST);
if (!comp || comp.length === 0) {
comp = page.findUIByType(COMP_DATA_REPEATER);
if (!comp || comp.length === 0) {
console.error("未定义数据列表组件");
return null;
}
}
return comp[0].uikey;
};
ListEventHandler.getQueryPlan = function (page) {
var queryPlanKey = this.getQueryPlanKey(page);
return page.findUI(queryPlanKey);
};
ListEventHandler.getQueryPlanKey = function (page) {
var comp = page.findUIByType(COMP_QUERY_PLAN);
if (!comp || comp.length === 0) {
console.error("未定义查询方案组件");
return null;
}
return comp[0].uikey;
};
ListEventHandler.onListRefresh = function (page, value) {
var list = this.getDataList(page);
var _self = this;
_self.value = value;
if (list) {
var postParam = {
entityName: list.dataprops && list.dataprops.entity ? list.dataprops.entity.entityFullName : null,
pageNumber: 0,
pageSize: 10,
pagination: true,
condition: this.condition,
tplId: this.tplId,
billType: this.billType,
searchText: this.value
};
this.getListData(this.urls.QUERY_LIST, postParam, list, function (listData, last) {
if (list && list.api) {
list.api.setData(listData);
if (!last) {
_self.pageNumber = 1;
_self.noPagination = false;
} else {
_self.noPagination = true;
}
}
}, _self.offline);
}
};
ListEventHandler.onListEndReached = function (page, event) {
var list = this.getDataList(page);
var _self = this;
if (list) {
var postParam = {
entityName: list.dataprops && list.dataprops.entity ? list.dataprops.entity.entityFullName : null,
pageNumber: this.pageNumber,
pageSize: 10,
pagination: true,
condition: this.condition,
tplId: this.tplId,
billType: this.billType,
searchText: this.value
};
if (!this.noPagination) {
this.getListData(this.urls.QUERY_LIST, postParam, list, function (listData, last) {
if (list && list.api) {
list.api.setAppendData(listData);
if (last) {
_self.noPagination = true;
} else {
_self.noPagination = false;
_self.pageNumber = _self.pageNumber + 1;
}
}
}, _self.offline);
} else {
if (list && list.api) {
list.api.setIsLoading(false);
}
return;
}
}
};
ListEventHandler.queryData = function (page, row) {
var primaryField = this.getPrimaryField(page);
var pk = row[primaryField];
var cardRoute = this.urls.CARD_ROUTE;
if (cardRoute) {
var params = {};
params['' + primaryField] = pk;
if (this.offline) {
params['billId'] = row['billId'];
}
page.routeTo(cardRoute, params, params);
}
};
ListEventHandler.getPrimaryField = function (page) {
return this.getDataList(page).rowKey || PubConstants.DEFAULT_PK_FIELD_VALUE;
};
ListEventHandler.deleteData = function (page, row) {
_modal2.default.alert("确认", "是否确定删除单据?", [{
text: '确认',
onPress: function onOk() {
ListEventHandler.delete(page, row);
}
}, { text: '取消' }]);
};
ListEventHandler.delete = function (page, row) {
var param = [{ id: row.id, ts: row.ts }];
var postJSON = this.offline ? ajax.postJSONOffLine : ajax.postJSON;
if (!row.billState || row.billState === 0) {
if (this.offline) {
if (row.billId) {
var delParam = {
billId: row.billId,
delSubmit: '1'
};
ajax.delBillData(delParam, function (msg) {
YYToast.info('缓存数据删除成功', 1);
ListEventHandler.onListRefresh(page);
}, function (error) {
YYToast.fail(error, 1);
});
} else {
ajax.postJSON(this.urls.DELETE, param, function (msg) {
var backData = msg["backData"];
if (msg["success"]) {
YYToast.info(msg["backMsg"], 1);
ListEventHandler.onListRefresh(page);
} else {
YYToast.info(msg["backMsg"], 1);
}
});
}
} else {
ajax.postJSON(this.urls.DELETE, param, function (msg) {
var backData = msg["backData"];
if (msg["success"]) {
YYToast.info(msg["backMsg"], 1);
ListEventHandler.onListRefresh(page);
} else {
YYToast.info(msg["backMsg"], 1);
}
});
}
} else {
YYToast.fail('不能删除非自由态的单据', 1);
}
};
ListEventHandler.onYYQueryPlanClick = function (page, item) {
var list = this.getDataList(page);
var _self = this;
var condition = item && item.filter && JSON.parse(item.filter);
var tplId = item && item.tplId;
this.condition = condition;
this.tplId = tplId;
if (list) {
var postParam = {
entityName: list.dataprops && list.dataprops.entity ? list.dataprops.entity.entityFullName : null,
pageNumber: 0,
condition: condition,
pageSize: 10,
tplId: tplId,
pagination: true,
billType: this.billType,
searchText: this.value
};
this.getListData(this.urls.QUERY_LIST, postParam, list, function (listData, last) {
if (list && list.api) {
list.api.setData(listData);
if (!last) {
_self.pageNumber = 1;
_self.noPagination = false;
} else {
_self.noPagination = true;
}
}
}, _self.offline);
}
};
ListEventHandler.addData = function (page) {
page.routeTo(ListEventHandler.urls.CARD_ROUTE);
};
ListEventHandler.openApproveHistory = function (page, item) {
if (!page.findUI(COMP_APPROVE_HISTORY_MODAL)) {
YYToast.info('请添加审批历史弹层', 1);
return;
}
page.findUI(COMP_APPROVE_HISTORY_MODAL).visible = true;
if (AuthToken.getUserId() && item && item.id) {
page.findUI(COMP_APPROVE_HISTORY).userId = AuthToken.getUserId();
page.findUI(COMP_APPROVE_HISTORY).billId = item.id;
}
page.refresh();
};
ListEventHandler.yyApproveHistoryModalClose = function (page) {
page.findUI(COMP_APPROVE_HISTORY_MODAL).visible = false;
page.refresh();
};
ListEventHandler.goBack = function (page) {
page.goBack();
};
ListEventHandler.API = {
"addBtn": {
onClick: function onClick() {
ListEventHandler.addData(this);
}
},
"YYApproveHistoryModal": {
onClose: function onClose(options) {
ListEventHandler.yyApproveHistoryModalClose(this);
}
},
"YYRepeater": {
onEndReached: function onEndReached(event) {
ListEventHandler.onListEndReached(this, event);
},
onRefresh: function onRefresh() {
ListEventHandler.onListRefresh(this);
},
onClick: function onClick(row) {
ListEventHandler.queryData(this, row);
}
},
"YYList": {
onEndReached: function onEndReached(event) {
ListEventHandler.onListEndReached(this, event);
},
onRefresh: function onRefresh() {
ListEventHandler.onListRefresh(this);
},
onClick: function onClick(row) {
ListEventHandler.queryData(this, row);
},
firstPress: function firstPress(options) {
ListEventHandler.openApproveHistory(this, options);
},
secondPress: function secondPress(options) {
ListEventHandler.deleteData(this, options);
}
},
"YYQueryPlan": {
onLeftClick: function onLeftClick(options) {
ListEventHandler.goBack(this);
},
onSelect: function onSelect(options) {
ListEventHandler.onYYQueryPlanClick(this, options);
}
},
"YYSearchBar": {
onSubmit: function onSubmit(options) {
ListEventHandler.onListRefresh(this, options);
},
onCancel: function onCancel(options) {
ListEventHandler.onListRefresh(this, "");
}
}
};
module.exports = ListEventHandler;