UNPKG

yylib-quick-mobile

Version:

yylib-quick-mobile

459 lines (430 loc) 13.5 kB
'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;