UNPKG

21.9 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.default = undefined;
7
8var _localeProvider = require('jdcloudui/lib/locale-provider');
9
10var _localeProvider2 = _interopRequireDefault(_localeProvider);
11
12var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
13
14var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
15
16var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
17
18var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
19
20var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
21
22var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
23
24var _createClass2 = require('babel-runtime/helpers/createClass');
25
26var _createClass3 = _interopRequireDefault(_createClass2);
27
28var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
29
30var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
31
32var _inherits2 = require('babel-runtime/helpers/inherits');
33
34var _inherits3 = _interopRequireDefault(_inherits2);
35
36var _class, _temp; //链接跳转,相当于a标签
37
38
39// 国际化中文
40
41
42require('jdcloudui/lib/locale-provider/style');
43
44var _react = require('react');
45
46var _react2 = _interopRequireDefault(_react);
47
48var _propTypes = require('prop-types');
49
50var _propTypes2 = _interopRequireDefault(_propTypes);
51
52var _reactRouter = require('react-router');
53
54var _Header = require('./Header/Header');
55
56var _Header2 = _interopRequireDefault(_Header);
57
58var _Sider = require('./Sider/Sider');
59
60var _Sider2 = _interopRequireDefault(_Sider);
61
62require('./style/buyer.css');
63
64var _TopTools = require('../TopTools/TopTools');
65
66var _TopTools2 = _interopRequireDefault(_TopTools);
67
68var _ApiClient = require('../../apiClient/ApiClient');
69
70var _ApiClient2 = _interopRequireDefault(_ApiClient);
71
72var _reactHelmet = require('react-helmet');
73
74var _reactHelmet2 = _interopRequireDefault(_reactHelmet);
75
76var _zh_CN = require('jdcloudui/lib/locale-provider/zh_CN');
77
78var _zh_CN2 = _interopRequireDefault(_zh_CN);
79
80var _moment = require('moment');
81
82var _moment2 = _interopRequireDefault(_moment);
83
84function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
85
86_moment2.default.locale('zh-cn');
87
88var ms = [{
89 id: 1,
90 name: "首页",
91 href: "http://buyer.hnc.jcloudec.com/buyer-view/homepage",
92 target: "_self"
93}, {
94 id: 2,
95 name: "账号管理",
96 children: [{
97 id: 21,
98 name: "账号管理",
99 icon: "cgs",
100 children: [{
101 id: 211,
102 name: "账号信息",
103 href: "http://buyer.hnc.jcloudec.com/user-buyer-view/accountmanage/accountInfo",
104 target: "_self"
105 }, {
106 id: 212,
107 name: "账号安全",
108 href: "http://buyer.hnc.jcloudec.com/user-buyer-view/accountmanage/accountSecurity",
109 target: "_self"
110 }, {
111 id: 213,
112 name: "账号绑定",
113 href: "http://buyer.hnc.jcloudec.com/user-buyer-view/accountmanage/bindingThirdPartyAccount",
114 target: "_self"
115 }, {
116 id: 214,
117 name: "收货地址",
118 href: "http://buyer.hnc.jcloudec.com/user-buyer-view/buyer/address",
119 target: "_self"
120 }, {
121 id: 215,
122 name: "我的级别",
123 href: "http://buyer.hnc.jcloudec.com/member-buyer-view/mylevel",
124 target: "_self"
125 }, {
126 id: 216,
127 name: "我的积分",
128 href: "http://buyer.hnc.jcloudec.com/member-buyer-view/memberintegral",
129 target: "_self"
130 }, {
131 id: 217,
132 name: "子账号管理",
133 href: "http://buyer.hnc.jcloudec.com/subaccount-buyer-view/subaccountmanage",
134 target: "_self"
135 }, {
136 id: 218,
137 name: "角色管理",
138 href: "http://buyer.hnc.jcloudec.com/subaccount-buyer-view/rolemanage",
139 target: "_self"
140 }]
141 }]
142}, {
143 id: 3,
144 name: "订单管理",
145 children: [{
146 id: 31,
147 name: "订单管理",
148 icon: "xx",
149 children: [{
150 id: 311,
151 name: "订单管理",
152 href: "http://buyer.hnc.jcloudec.com/order-buyer-view/purchaserback/ordermanagement",
153 target: "_self"
154 }, {
155 id: 315,
156 name: "询价单管理",
157 href: "http://buyer.hnc.jcloudec.com/order-buyer-view/inquirysheet-manage/grid",
158 target: "_self"
159 }, {
160 id: 312,
161 name: "报价单管理",
162 href: "http://buyer.hnc.jcloudec.com/order-buyer-view/quotation-manage/quotation-list",
163 target: "_self"
164 }, {
165 id: 313,
166 name: "退款/售后管理",
167 href: "http://buyer.hnc.jcloudec.com/customer-service-buyer-view/refund/grid",
168 target: "_self"
169 }, {
170 id: 314,
171 name: "评价管理",
172 href: "http://buyer.hnc.jcloudec.com/remark-buyer-view/evaluation",
173 target: "_self"
174 }, {
175 id: 316,
176 name: "商品确认管理",
177 href: "http://buyer.hnc.jcloudec.com/order-buyer-view/share-order/list",
178 target: "_self"
179 }, {
180 id: 317,
181 name: "商品确认",
182 href: "http://buyer.hnc.jcloudec.com/order-buyer-view/shared-order/list",
183 target: "_self"
184 }, {
185 id: 318,
186 name: "已购商品列表",
187 href: "http://buyer.hnc.jcloudec.com/order-buyer-view/purchasedlist",
188 target: "_self"
189 }]
190 }]
191}, {
192 id: 4,
193 name: "财务管理",
194 children: [{
195 id: 41,
196 name: "财务管理",
197 icon: "xx",
198 children: [{
199 id: 411,
200 name: "卡券管理",
201 href: "http://buyer.hnc.jcloudec.com/promotion-buyer-view/coupon/grid",
202 target: "_self"
203 }]
204 }]
205}, {
206 id: 5,
207 name: "采购管理",
208 children: [{
209 id: 51,
210 name: "采购管理",
211 icon: "xx",
212 children: [{
213 id: 511,
214 name: "商品需求",
215 href: "http://buyer.hnc.jcloudec.com/purchase-buyer-view/management",
216 target: "_self"
217 }, {
218 id: 512,
219 name: "解决方案征询",
220 href: "http://buyer.hnc.jcloudec.com/purchase-buyer-view/solution",
221 target: "_self"
222 }]
223 }]
224}, {
225 id: 6,
226 name: "发票管理",
227 children: [{
228 id: 61,
229 name: "发票管理",
230 href: "http://buyer.hnc.jcloudec.com/invoice-buyer-view/invoice",
231 target: "_self",
232 icon: "xx"
233 }, {
234 id: 62,
235 name: "资质管理",
236 href: "http://buyer.hnc.jcloudec.com/invoice-buyer-view/qualification",
237 target: "_self",
238 icon: "xx"
239 }]
240
241}, {
242 id: 7,
243 name: "账期管理",
244 children: [{
245 id: 71,
246 name: "账期管理",
247 href: "http://buyer.hnc.jcloudec.com/bill-buyer-view/accountapplication",
248 target: "_self"
249 }]
250}, {
251 id: 8,
252 name: "关注中心",
253 children: [{
254 id: 81,
255 name: "关注中心",
256 icon: "xx",
257 children: [{
258 id: 811,
259 name: "我的收藏",
260 href: "http://buyer.hnc.jcloudec.com/buyer-view/attention-center/collection",
261 target: "_self"
262 }, {
263 id: 812,
264 name: "浏览历史",
265 href: "http://buyer.hnc.jcloudec.com/buyer-view/attention-center/history",
266 target: "_self"
267 }]
268 }]
269}];
270var Buyer = (_temp = _class = function (_Component) {
271 (0, _inherits3.default)(Buyer, _Component);
272
273 function Buyer(props, context) {
274 (0, _classCallCheck3.default)(this, Buyer);
275
276 var _this = (0, _possibleConstructorReturn3.default)(this, (Buyer.__proto__ || (0, _getPrototypeOf2.default)(Buyer)).call(this, props, context));
277
278 _this.state = {
279 menus: [],
280 icon: "",
281 logo: ''
282 };
283 return _this;
284 }
285
286 //------------------动态获取菜单begin-------------------------------------
287
288
289 (0, _createClass3.default)(Buyer, [{
290 key: 'buyerMenuSearch',
291 value: function buyerMenuSearch() {
292 var _this2 = this;
293
294 var client = new _ApiClient2.default();
295 var form = null;
296 var url = '/authority-service/mall/resource/queryResourceMenuByBuyId';
297 var menuType = this.props.menuType || this.props.children && this.props.children.props && this.props.children.props.route && this.props.children.props.route.menuType;
298 if (menuType && menuType == 'companymanage') {
299 url = '/authority-service/mall/resource/queryResourceMenuByCompanyId';
300 }
301 client.get(url, { params: form }).then(function (res) {
302 if (res.code == 0 && res.data) {
303 var tmp = res.data;
304 var result = _this2.reformData(tmp);
305 _this2.setState({
306 menus: result
307 });
308 }
309 }, function (err) {});
310 }
311 }, {
312 key: 'reformData',
313 value: function reformData(data) {
314 var result = [];
315 if (data && data.length) {
316 for (var ia = 0; ia < data.length; ++ia) {
317 result.push(this.reformUnit(data[ia]));
318 }
319 } else {}
320 return result;
321 }
322 }, {
323 key: 'reformUnit',
324 value: function reformUnit(data) {
325 var unit = { id: '', name: '', href: '', target: '', children: [] };
326 unit.id = data.id + '';
327 unit.name = data.name;
328 unit.href = data.url;
329 unit.target = data.target ? data.target : '_self';
330 unit.icon = data.icon;
331 if (data && data.url && data.url == '/subaccount-buyer-view/subaccountmanage') {
332 if (data && data.children && data.children.length > 0) {
333 unit.href = data.children[0].url;
334 }
335 unit.target = '_blank';
336 delete unit['children'];
337 return unit;
338 }
339 if (data && data.children && data.children.length > 0) {
340 for (var ib = 0; ib < data.children.length; ++ib) {
341 unit.children.push(this.reformUnit(data.children[ib]));
342 }
343 } else {
344 delete unit['children'];
345 }
346 return unit;
347 }
348 //------------------动态获取菜单end-------------------------------------
349
350 }, {
351 key: 'componentWillMount',
352 value: function componentWillMount() {
353 this.buyerMenuSearch();
354 this.getWebsiteConfig();
355 this.minHeight = typeof window !== 'undefined' ? document.body.clientHeight - 64 : 580;
356 this.location = typeof window !== 'undefined' ? window.location.href : "";
357 this.referer = typeof document !== 'undefined' ? document.referrer : "";
358 }
359 //------------------获取ICON--------------------------------------------
360
361 }, {
362 key: 'getWebsiteConfig',
363 value: function getWebsiteConfig() {
364 var _this3 = this;
365
366 var client = new _ApiClient2.default();
367 client.get('/platform-service/mallInfo/getMallInfo').then(function (res) {
368 if (res.code == 0 && res.data) {
369 _this3.setState({ icon: res.data.icon, logo: res.data.userLogo });
370 }
371 }, function (err) {});
372 }
373 //----------------------------------------------------------------------
374
375 }, {
376 key: 'getHref',
377 value: function getHref(o) {
378 if (o && o.length) {
379 for (var i = 0; i < o.length; i++) {
380 var menu = o[i];
381 if (menu.href && menu.href != "") {
382 return menu.href;
383 } else if (menu.children && menu.children.length) {
384 return this.getHref(menu.children);
385 } else {
386 return "";
387 }
388 }
389 } else {}
390 return "";
391 }
392 }, {
393 key: 'horizontalMenu',
394 value: function horizontalMenu(o) {
395 var _this4 = this;
396
397 var horizontalMenu = [];
398 if (o && o.length && o.length > 0) {
399 o.map(function (menu) {
400 var children = menu.children,
401 rest = (0, _objectWithoutProperties3.default)(menu, ['children']);
402
403 rest.href = rest.href && rest.href != "" ? rest.href : _this4.getHref(children);
404 horizontalMenu.push(rest);
405 });
406 }
407 return horizontalMenu;
408 }
409 }, {
410 key: 'urlMatch',
411 value: function urlMatch(location, href) {
412 //href: 接口返回的全路径
413 //location: menuUrl
414 //menuUrl优先匹配
415 if (location != '' && href && href != '') {
416 if (href.indexOf('//') > 0) {
417 if (location == href.substring(href.replace('//', '~%').indexOf('/'))) {
418 return true;
419 }
420 } else {
421 if (location == href) {
422 return true;
423 }
424 }
425 }
426 var finalLocation = '';
427 if (location) {
428 var result = String(location).split('.com');
429 if (result && result.length && result[1]) {
430 var path = result[1];
431 var tmp = path.split('?');
432 if (tmp && tmp[0]) {
433 finalLocation = tmp[0];
434 if (finalLocation == href) {
435 return true;
436 }
437 }
438 }
439 }
440 return false;
441 }
442 }, {
443 key: 'verticalMenu',
444 value: function verticalMenu(o, location) {
445 var subMenu = [];
446 var hKey = 0;
447 var vKey = 0;
448 var openKey = [];
449 var vName = "";
450 if (o && o.length && o.length > 0) {
451 for (var i = 0; i < o.length; i++) {
452 var menu = o[i];
453 if (menu.href && menu.href != "" && this.urlMatch(location, menu.href)) {
454 subMenu = menu.children;
455 hKey = menu.id;
456 var tmpOpenKey = [];
457 for (var q in menu.children) {
458 tmpOpenKey.push(menu.children[q].id + '');
459 }
460 openKey = tmpOpenKey;
461 } else if (menu.children && menu.children.length) {
462 for (var j = 0; j < menu.children.length; j++) {
463 var vMenu = menu.children[j];
464 if (vMenu.href && vMenu.href != "" && this.urlMatch(location, vMenu.href)) {
465 subMenu = menu.children;
466 hKey = menu.id;
467 vKey = vMenu.id;
468 vName = vMenu.name;
469 } else if (vMenu.children && vMenu.children.length) {
470 for (var n = 0; n < vMenu.children.length; n++) {
471 var sMenu = vMenu.children[n];
472 if (sMenu.href && sMenu.href != "" && this.urlMatch(location, sMenu.href)) {
473 subMenu = menu.children;
474 hKey = menu.id;
475 vKey = sMenu.id;
476 vName = sMenu.name;
477 openKey.push(vMenu.id);
478 }
479 }
480 }
481 }
482 }
483 }
484 }
485 return { subMenu: subMenu, hKey: hKey, openKey: openKey, vKey: vKey, vName: vName };
486 }
487 /*verticalMenu(o,location) {
488 var subMenu = [];
489 var hKey = 0;
490 var vKey = 0;
491 var openKey = 0;
492 for(var i = 0; i < o.length; i++) {
493 var menu = o[i];
494 if(menu.href&&menu.href!=""&&location.indexOf(menu.href)!=-1) {
495 subMenu=[];
496 hKey = menu.id;
497 }else if(menu.children&&menu.children.length){
498 for(var j = 0; j < menu.children.length; j++) {
499 var vMenu = menu.children[j];
500 if(vMenu.href&&vMenu.href!=""&&location.indexOf(vMenu.href)!=-1) {
501 subMenu = menu.children;
502 hKey = menu.id;
503 }else if(vMenu.children&&vMenu.children.length) {
504 for(var n = 0; n < vMenu.children.length; n++) {
505 var sMenu = vMenu.children[n];
506 if(sMenu.href&&sMenu.href!=""&&location.indexOf(sMenu.href)!=-1) {
507 subMenu = menu.children;
508 hKey = menu.id;
509 vKey = sMenu.id;
510 openKey=vMenu.id;
511 }
512 }
513 }
514 }
515 }
516 }
517 return {subMenu,hKey,openKey,vKey}
518 }*/
519
520 }, {
521 key: 'render',
522 value: function render() {
523 var _props$menus = this.props.menus,
524 menus = _props$menus === undefined ? ms : _props$menus;
525
526 var horizontalMenu = this.horizontalMenu(this.state.menus);
527 // 菜单选中
528 var menuUrl = this.props.menuUrl || this.props.children && this.props.children.props && this.props.children.props.route && this.props.children.props.route.menuUrl;
529 // 左侧菜单是否展示
530 var siderNoRequest = this.props.siderNoRequest || this.props.children && this.props.children.props && this.props.children.props.route && this.props.children.props.route.siderNoRequest;
531 // 头部名称
532 var titleName = this.props.titleName || this.props.children && this.props.children.props && this.props.children.props.route && this.props.children.props.route.titleName;
533 // 一级菜单是否展示
534 var noFirstLevelMenu = this.props.noFirstLevelMenu || this.props.children && this.props.children.props && this.props.children.props.route && this.props.children.props.route.noFirstLevelMenu;
535 var menuType = this.props.menuType || this.props.children && this.props.children.props && this.props.children.props.route && this.props.children.props.route.menuType;
536 var headerClassName = siderNoRequest ? 'buyer-framework-body-container-right-nosider' : 'buyer-framework-body-container-right';
537 var verticalMenu = { subMenu: [], hKey: '0', openKey: '0', vKey: [] };
538 if (menuUrl) {
539 verticalMenu = this.verticalMenu(this.state.menus, menuUrl);
540 } else {
541 verticalMenu = this.verticalMenu(this.state.menus, this.location);
542 }
543 if (verticalMenu.subMenu && verticalMenu.subMenu.length && verticalMenu.subMenu.length == 0) {
544 verticalMenu = this.verticalMenu(this.state.menus, this.referer || "");
545 }
546 var _verticalMenu = verticalMenu,
547 hKey = _verticalMenu.hKey,
548 vName = _verticalMenu.vName,
549 rest = (0, _objectWithoutProperties3.default)(_verticalMenu, ['hKey', 'vName']);
550
551 return _react2.default.createElement(
552 _localeProvider2.default,
553 { locale: _zh_CN2.default },
554 _react2.default.createElement(
555 'div',
556 null,
557 _react2.default.createElement(
558 _reactHelmet2.default,
559 null,
560 _react2.default.createElement(
561 'title',
562 null,
563 vName
564 ),
565 _react2.default.createElement('link', { rel: 'icon', href: this.state.icon, mce_href: this.state.icon, type: 'image/x-icon' })
566 ),
567 _react2.default.createElement(_TopTools2.default, null),
568 _react2.default.createElement(_Header2.default, { menus: horizontalMenu, selectKey: hKey, logo: this.state.logo, typeKey: this.props.typeKey, titleName: titleName, noFirstLevelMenu: noFirstLevelMenu, menuType: menuType }),
569 _react2.default.createElement(
570 'div',
571 { className: 'buyer-framework-body-container' },
572 !siderNoRequest && _react2.default.createElement(
573 'div',
574 { className: 'buyer-framework-body-container-left' },
575 _react2.default.createElement(_Sider2.default, rest)
576 ),
577 _react2.default.createElement(
578 'div',
579 { className: headerClassName, style: { minHeight: this.minHeight + "px" } },
580 this.props.children
581 )
582 )
583 )
584 );
585 }
586 }]);
587 return Buyer;
588}(_react.Component), _class.propTypes = {
589 children: _propTypes2.default.object.isRequired
590}, _temp);
591exports.default = Buyer;
592module.exports = exports['default'];
593//# sourceMappingURL=Buyer.js.map
\No newline at end of file