App.js 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. import React, { Component , Suspense } from 'react';
  2. import ReactDOM from 'react-dom';
  3. import './App.css';
  4. import { Menu, Button } from 'antd';
  5. import { $Axios } from './common/publish';
  6. import { SettingOutlined, DollarCircleOutlined, } from '@ant-design/icons';
  7. import * as Icons from "@ant-design/icons";
  8. import {
  9. MenuUnfoldOutlined,
  10. MenuFoldOutlined,
  11. PieChartOutlined,
  12. } from '@ant-design/icons';
  13. export default class App extends React.Component {
  14. constructor(props) {
  15. super(props)
  16. this.state = {
  17. isLogin: true,
  18. current: 'one',
  19. arr1 : [
  20. { txt : '商户入网' , icon : 'GlobalOutlined' , assembly:'Layout' },
  21. { txt : '商户入网列表' , icon : 'SlidersOutlined', assembly:'center-tab'}
  22. ],
  23. arr2 : [
  24. { txt : '订单查询' , icon : '', assembly:'Finance-orderQuery'},//ok
  25. { txt : '退款查询' , icon : '', assembly:'Refund-inquiry'}, //ok
  26. { txt : '账户概览' , icon : '', assembly:'Account-overview'}, //ok
  27. { txt : '发起提现' , icon : '', assembly:'Cash-initiated'}, //ok
  28. { txt : '提现记录' , icon : '', assembly:'Withdrawal-record'}, //ok
  29. { txt : '分账收益记录' , icon : '', assembly:'Income-record'}, //ok
  30. // { txt : 'demo' , icon : '', assembly:'homePage'},
  31. ],
  32. assembly : 'Layout',
  33. defaultSelectedKeys : 'Layout',
  34. defaultSelectedKeys1 : 'Finance-orderQuery',
  35. assembly_cw : 'Finance-orderQuery',
  36. user_txt : {
  37. userName : 'xxx', //名字
  38. userJur : 'Y1', //权限
  39. userInternet : null, // 用户权限为Y3时 才会出现是否入网字段
  40. }
  41. }
  42. }
  43. componentDidMount() {
  44. this.initJurisdiction()
  45. }
  46. initJurisdiction(){//初始化用户权限
  47. console.log('----------初始化用户权限---------');
  48. console.log(process.env.NODE_ENV == 'development' ? '----------开发测试环境----------' : '----------线上生产环境----------')
  49. this.autoLogin() //登录查询用户信息
  50. let Jur = ['Y1','Y2','Y3'] //Y1为云悦平台权限最高权限 //Y2为商城权限二级权限 // Y3为商户权限属于个人权限
  51. let obj = {
  52. appName : 'com.smrongshengtianxia',
  53. merchantId : '896582034',
  54. id : 2,
  55. pfAppName : 'com.chuangyetong' //包名
  56. }
  57. localStorage.setItem('userData',JSON.stringify(obj))
  58. }
  59. handleClick(e){
  60. this.setState({
  61. current : e.key,
  62. });
  63. this.initassembly()
  64. }
  65. toggleCollapsed(e){
  66. this.setState({
  67. collapsed: !this.state.collapsed,
  68. });
  69. }
  70. toggleNavs(e){
  71. let current = this.state.current;
  72. if(current == 'one'){
  73. this.setState({
  74. assembly: e.key,
  75. });
  76. }else{
  77. this.setState({
  78. assembly_cw : e.key
  79. });
  80. }
  81. }
  82. initassembly(){
  83. let current = this.state.current;
  84. let Assembly = null;
  85. if(current == 'one'){
  86. Assembly = React.lazy(() => import(`./component/${this.state.assembly}/${this.state.assembly}.jsx`));
  87. }else{
  88. Assembly = React.lazy(() => import(`./component/${this.state.assembly_cw}/${this.state.assembly_cw}.jsx`));
  89. }
  90. return <Suspense fallback="" key="dialog"><Assembly refModal={this.state.current} /></Suspense>
  91. }
  92. initIcon(item){
  93. let Icon = item.icon;
  94. return React.createElement(Icons[Icon])
  95. }
  96. autoLogin = () => {
  97. let url = '/payment/merchant.query.groovy'
  98. let param = {
  99. appName : '吕卓',
  100. action : "queryInfo"
  101. }
  102. $Axios('post',url,param,(res) => {
  103. // console.log(res)
  104. })
  105. }
  106. render() {
  107. const { current, arr1, arr2 , user_txt } = this.state;
  108. const { SubMenu } = Menu;
  109. return (
  110. <React.Fragment>
  111. {/* {this.state.isLogin ? <Layout></Layout>} */}
  112. <div className='wrap'>
  113. <div className='header_nav'>
  114. <div className='header_title'>商户入网信息管理平台</div>
  115. <div className='header_menu'>
  116. <div className='head-sj'>
  117. <Button type="primary" onClick={this.toggleCollapsed.bind(this)} style={{ marginBottom: 16 }} style={{height:'100%'}}>
  118. {React.createElement(this.state.collapsed ? MenuUnfoldOutlined : MenuFoldOutlined)}
  119. </Button>
  120. </div>
  121. <Menu onClick={this.handleClick.bind(this)} selectedKeys={[current]} mode="horizontal" className='header_navs'>
  122. <Menu.Item key="one" icon={<SettingOutlined />}>
  123. 高级设置
  124. </Menu.Item>
  125. <Menu.Item key="tow" icon={<DollarCircleOutlined />}>
  126. 财务管理
  127. </Menu.Item>
  128. </Menu>
  129. </div>
  130. <div className='header_user' style={{lineHeight:'60px'}}>
  131. <div style={{width:'50%',lineHeight:'60px',display:'inline-block'}}>用户名 : {user_txt.userName}</div>
  132. <div style={{width:'50%',lineHeight:'60px',display:'inline-block'}}>
  133. <a>修改密码</a>
  134. <a style={{marginLeft:'10px'}}>退出</a>
  135. </div>
  136. </div>
  137. </div>
  138. <div className='main_centers'>
  139. {current === 'one' && <Menu
  140. className='main_left_nav'
  141. defaultSelectedKeys={[this.state.assembly]}
  142. mode="inline"
  143. theme="dark"
  144. inlineCollapsed={this.state.collapsed}
  145. onClick={this.toggleNavs.bind(this)}
  146. >
  147. {current === 'one' && (arr1.map((item,index) =>(
  148. <Menu.Item key={item.assembly} data={item.txt} icon={this.initIcon(item)}>
  149. {item.txt}
  150. </Menu.Item>
  151. )))}
  152. </Menu>}
  153. {current === 'tow' && <Menu
  154. className='main_left_nav'
  155. defaultSelectedKeys={[this.state.assembly_cw]}
  156. mode="inline"
  157. theme="dark"
  158. inlineCollapsed={this.state.collapsed}
  159. onClick={this.toggleNavs.bind(this)}
  160. >
  161. {current === 'tow' && (arr2.map((item,index) =>(
  162. <Menu.Item key={item.assembly} data={item.txt} icon={<DollarCircleOutlined />}>
  163. {item.txt}
  164. </Menu.Item>
  165. )))}
  166. </Menu>}
  167. <div className='main_right_center'>
  168. {
  169. this.initassembly()
  170. }
  171. </div>
  172. </div>
  173. </div>
  174. </React.Fragment>
  175. )
  176. }
  177. }
  178. ReactDOM.render(
  179. <App></App>,
  180. document.getElementById('root')
  181. );