ming-demo3
Version:
mdf metaui web
309 lines (259 loc) • 8.16 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.tree = tree;
exports.getMenuTree = getMenuTree;
exports.clearMenu = clearMenu;
exports.treeload = treeload;
exports.TreeNodeLoad = TreeNodeLoad;
exports.setHandler = setHandler;
exports.execHandler = execHandler;
exports.moreButtonHandler = moreButtonHandler;
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _immutable = _interopRequireDefault(require("immutable"));
var _env = _interopRequireDefault(require("../helpers/env"));
var _util = require("@mdf/cube/lib/helpers/util");
var id = 1;
var $$initialState = _immutable["default"].fromJS({
id: id,
TreeData: []
});
function tree() {
var $$state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : $$initialState;
var action = arguments.length > 1 ? arguments[1] : undefined;
var status, account;
switch (action.type) {
case 'PLATFORM_UI_TREE_LOAD':
return $$state.merge({
id: id++,
TreeData: action.TreeData
});
break;
case 'PLATFORM_UI_TREE_NODE_LOAD':
return $$state.merge({
TreeNode: action.TreeNode
});
break;
default:
return $$state;
}
}
function getMenuTree(_x) {
return _getMenuTree.apply(this, arguments);
}
function _getMenuTree() {
_getMenuTree = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(dispatch) {
var _ref,
_ref$cacheData,
cacheData,
_ref$cacheDBData,
cacheDBData,
config,
json,
orgMenus,
storeMenus,
showOptions,
_args = arguments;
return _regenerator["default"].wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_ref = _args.length > 1 && _args[1] !== undefined ? _args[1] : {}, _ref$cacheData = _ref.cacheData, cacheData = _ref$cacheData === void 0 ? null : _ref$cacheData, _ref$cacheDBData = _ref.cacheDBData, cacheDBData = _ref$cacheDBData === void 0 ? null : _ref$cacheDBData;
config = {
url: "getMenuTree",
method: 'POST',
options: {
uniform: false
}
};
if (!cacheData) {
_context.next = 6;
break;
}
_context.t0 = cacheData;
_context.next = 9;
break;
case 6:
_context.next = 8;
return (0, _util.proxy)(config);
case 8:
_context.t0 = _context.sent;
case 9:
json = _context.t0;
cacheDBData ? cacheDBData.MenuTreeData = json : '';
if (!(json.code !== 200)) {
_context.next = 14;
break;
}
cb.utils.alert(json.message, 'error');
return _context.abrupt("return");
case 14:
json.data = json.data || [];
orgMenus = [], storeMenus = [];
console.error(_env["default"].INTERACTIVE_MODE);
(0, _util.rebuildTreeData)(json.data, orgMenus, storeMenus);
dispatch({
type: 'PLATFORM_UI_TREE_LOAD',
TreeData: json.data
});
showOptions = {
showOrg: orgMenus.length ? true : false,
showStore: storeMenus.length ? true : false
};
if (showOptions.showStore) {
showOptions.canBilling = storeMenus.find(function (item) {
return item.code.indexOf('RM0101') > -1;
}) ? true : false;
}
dispatch((0, _util.genAction)('PLATFORM_DATA_USER_ACCOUNT_MERGE_INFO', showOptions));
return _context.abrupt("return", showOptions);
case 23:
case "end":
return _context.stop();
}
}
}, _callee);
}));
return _getMenuTree.apply(this, arguments);
}
function clearMenu() {
return {
type: 'PLATFORM_UI_TREE_LOAD',
TreeData: []
};
}
function treeload(callback) {
return function (dispatch, getState) {
var options = (0, _util.genFetchOptions)('post');
fetch('/getMenuTree?token=' + getState().user.get('token'), options).then(function (response) {
if (response.status >= 400) {
throw new Error("Bad response from server");
}
return response.json();
}).then(function (json) {
return (0, _util.auth)(json, dispatch);
}).then(function (json) {
if (!json) return;
callback();
var orgMenus = [],
storeMenus = [];
(0, _util.rebuildTreeData)(json.data, orgMenus, storeMenus);
dispatch({
type: 'PLATFORM_UI_TREE_LOAD',
TreeData: json.data
});
dispatch((0, _util.genAction)('PLATFORM_DATA_USER_ACCOUNT_MERGE_INFO', {
showOrg: orgMenus.length ? true : false,
showStore: storeMenus.length ? true : false
}));
});
};
}
function TreeNodeLoad(value, CallBack) {
var options = {
method: 'post',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
type: 'bill',
billNo: value
})
};
return function (dispatch) {
fetch('/meta', options).then(function (response) {
if (response.status >= 400) {
throw new Error("Bad response from server");
}
return response.json();
}).then(function (json) {
dispatch({
type: 'PLATFORM_UI_TREE_NODE_LOAD'
});
CallBack();
});
};
}
var handler = null;
function setHandler(data) {
return function (dispatch) {
handler = data;
};
}
var recursiveFind = function recursiveFind(list, code, data) {
if (!list.length) return;
list.forEach(function (item) {
if (item.children) {
recursiveFind(item.children, code, data);
} else {
if (item.code !== code) return;
data.push(item);
}
});
};
var doCommonVisit = function doCommonVisit(menuCode) {
var config = {
url: 'commonfuctions/visits',
method: 'GET',
params: {
menuCode: menuCode
}
};
(0, _util.proxy)(config);
};
function execHandler(menuCode, carryData, callback) {
return function (dispatch, getState) {
var portalTreeData = getState().tree.toJS().TreeData;
if (!portalTreeData) return;
try {
menuCode = JSON.parse(menuCode);
} catch (e) {}
var returnData = [];
if ((0, _typeof2["default"])(menuCode) === 'object') {
returnData.push(menuCode);
menuCode = menuCode.code;
} else {
recursiveFind(portalTreeData, menuCode, returnData);
if (returnData.length !== 1) {
cb.utils.alert("\u6CA1\u6709\u627E\u7740\u7F16\u7801\u4E3A".concat(menuCode, "\u7684\u83DC\u5355"), 'error');
return;
}
doCommonVisit(menuCode);
}
var menuData = returnData[0];
var filterCondition = null;
if (carryData) {
var query = carryData.query,
title = carryData.title,
condition = carryData.condition;
if (condition) {
filterCondition = condition;
if (query) {
menuCode += '_' + query;
menuData.key = menuCode;
}
if (title) menuData.name = title;
} else {
var key = query.key,
value = query.value;
menuCode += '_' + value;
var menuUrl = "?".concat(key, "=").concat(value);
menuData.key = menuCode;
if (title) menuData.name = title;
menuData.menuUrl = menuUrl;
}
}
handler(menuCode, menuData, filterCondition, callback);
};
}
function moreButtonHandler(menuCode, menuData, filterCondition) {
return function (dispatch) {
handler(menuCode, menuData, filterCondition);
};
}
//# sourceMappingURL=tree.js.map
;