| | |
| | | import React, {Component} from 'react' |
| | | import { fromJS } from 'immutable' |
| | | import { Spin, notification, Input, Button, Table, Modal, ConfigProvider, Typography, Row, Col, Tooltip } from 'antd' |
| | | import { Spin, notification, Input, Button, Table, Modal, Typography, Row, Col, Tooltip } from 'antd' |
| | | import { QuestionCircleOutlined } from '@ant-design/icons' |
| | | import moment from 'moment' |
| | | import md5 from 'md5' |
| | | import enUS from 'antd/es/locale/en_US' |
| | | import zhCN from 'antd/es/locale/zh_CN' |
| | | |
| | | import Api from '@/api' |
| | | import Utils from '@/utils/utils.js' |
| | | import { langs } from '@/store/options.js' |
| | | import asyncComponent from '@/utils/asyncComponent' |
| | | import './index.scss' |
| | | |
| | |
| | | const { Paragraph } = Typography |
| | | const { Search } = Input |
| | | |
| | | const _locale = sessionStorage.getItem('lang') !== 'en-US' ? zhCN : enUS |
| | | const Header = asyncComponent(() => import('./header')) |
| | | const MutilForm = asyncComponent(() => import('./mutilform')) |
| | | const TransForm = asyncComponent(() => import('./transform')) |
| | | const ScriptForm = asyncComponent(() => import('./scriptform')) |
| | | const SubMutilForm = asyncComponent(() => import('./submutilform')) |
| | | const TransMenu = asyncComponent(() => import('./transmenu')) |
| | | |
| | | const skinStyle = { |
| | | bg_black_style_blue: {name: '蓝色', color: '#1890ff'}, |
| | |
| | | }) |
| | | |
| | | if (!selectApp && applist[0]) { |
| | | let _href = window.location.href.split('#')[0] + 'app_record' |
| | | let record = localStorage.getItem(_href) |
| | | let record = localStorage.getItem(window.GLOB.sysSign + 'app_record') |
| | | record = record ? JSON.parse(record) : null |
| | | |
| | | if (record && record.dates) { |
| | |
| | | }) |
| | | |
| | | if (reset) { |
| | | localStorage.setItem(_href, JSON.stringify(record)) |
| | | localStorage.setItem(window.GLOB.sysSign + 'app_record', JSON.stringify(record)) |
| | | } |
| | | } |
| | | } |
| | |
| | | jumpApp = (item) => { |
| | | const { selectApp } = this.state |
| | | |
| | | let _href = window.location.href.split('#')[0] + 'app_record' |
| | | let record = localStorage.getItem(_href) |
| | | let record = localStorage.getItem(window.GLOB.sysSign + 'app_record') |
| | | record = record ? JSON.parse(record) : null |
| | | |
| | | if (!record || !record.dates) { |
| | | localStorage.setItem(_href, JSON.stringify({preId: selectApp.ID, activeId: selectApp.ID, dates: {[selectApp.ID]: new Date().getTime()}})) |
| | | localStorage.setItem(window.GLOB.sysSign + 'app_record', JSON.stringify({preId: selectApp.ID, activeId: selectApp.ID, dates: {[selectApp.ID]: new Date().getTime()}})) |
| | | } else { |
| | | if (record.preId === selectApp.ID || record.activeId === selectApp.ID) { |
| | | localStorage.setItem(_href, JSON.stringify({preId: selectApp.ID, activeId: selectApp.ID, dates: {...record.dates, [selectApp.ID]: new Date().getTime()}})) |
| | | localStorage.setItem(window.GLOB.sysSign + 'app_record', JSON.stringify({preId: selectApp.ID, activeId: selectApp.ID, dates: {...record.dates, [selectApp.ID]: new Date().getTime()}})) |
| | | } else { |
| | | localStorage.setItem(_href, JSON.stringify({...record, preId: selectApp.ID})) |
| | | localStorage.setItem(window.GLOB.sysSign + 'app_record', JSON.stringify({...record, preId: selectApp.ID})) |
| | | } |
| | | } |
| | | |
| | |
| | | if (item.typename === 'pc') { |
| | | route = 'pcdesign' |
| | | } |
| | | let param = {...item, kei_no: selectApp.kei_no, remark: selectApp.remark, type: 'app'} |
| | | |
| | | let applangList = [] |
| | | if (item.lang === 'zh-CN') { |
| | | selectApp.sublist.forEach(cell => { |
| | | if (cell.typename === item.typename && cell.lang !== 'zh-CN') { |
| | | applangList.push(cell.lang) |
| | | } |
| | | }) |
| | | } |
| | | if (applangList.length) { |
| | | applangList.unshift('zh-CN') |
| | | applangList = JSON.stringify(applangList) |
| | | } else { |
| | | applangList = '' |
| | | } |
| | | |
| | | let param = {...item, kei_no: selectApp.kei_no, remark: selectApp.remark, applangList, type: 'app'} |
| | | |
| | | window.open(window.location.href.replace(/#.+/ig, `#/${route}/${window.btoa(window.encodeURIComponent(JSON.stringify(param)))}`)) |
| | | } |
| | |
| | | jumpMenu = (item) => { |
| | | const { selectApp } = this.state |
| | | |
| | | window.open(window.location.href.replace(/#.+/ig, `#/role/${window.btoa(window.encodeURIComponent(JSON.stringify({...item, kei_no: selectApp.kei_no, remark: selectApp.remark, type: 'app'})))}`)) |
| | | let applangList = [] |
| | | if (item.lang === 'zh-CN') { |
| | | selectApp.sublist.forEach(cell => { |
| | | if (cell.typename === item.typename && cell.lang !== 'zh-CN') { |
| | | applangList.push(cell.lang) |
| | | } |
| | | }) |
| | | } |
| | | if (applangList.length) { |
| | | applangList.unshift('zh-CN') |
| | | applangList = JSON.stringify(applangList) |
| | | } else { |
| | | applangList = '' |
| | | } |
| | | |
| | | window.open(window.location.href.replace(/#.+/ig, `#/role/${window.btoa(window.encodeURIComponent(JSON.stringify({...item, kei_no: selectApp.kei_no, remark: selectApp.remark, applangList, type: 'app'})))}`)) |
| | | } |
| | | |
| | | onSelectChange = selectedRowKeys => { |
| | |
| | | ID = selectApp.ID |
| | | } else { |
| | | let lowerKei = res.kei_no.toLowerCase() |
| | | if (lowerKei === 'mob') { |
| | | if (['mob', 'pad', 'pc', 'admin'].includes(lowerKei)) { |
| | | notification.warning({ |
| | | top: 92, |
| | | message: '应用编码不允许使用mob!', |
| | | message: '应用编码不允许使用mob、pad、pc、admin!', |
| | | duration: 3 |
| | | }) |
| | | return |
| | |
| | | |
| | | return ( |
| | | <div className="mk-app-manage"> |
| | | <ConfigProvider locale={_locale}> |
| | | <Header view="manage" /> |
| | | {loading ? |
| | | <div className="loading-mask"> |
| | |
| | | <Col span={12}> |
| | | <div className="app-item"> |
| | | <div className="label">语言:</div> |
| | | <div className="content" style={{textDecoration: 'underline'}}>{item.lang === 'en-US' ? '英文' : '中文'}</div> |
| | | <div className="content" style={{textDecoration: 'underline'}}>{langs[item.lang]}</div> |
| | | </div> |
| | | </Col> |
| | | <Col span={12}> |
| | |
| | | </Col> |
| | | </Row> |
| | | <div className="action"> |
| | | {item.lang !== 'zh-CN' ? <TransMenu app={item} supApp={selectApp} /> : null} |
| | | <Button type="link" onClick={() => this.jumpMenu(item)} style={{color: 'rgba(30, 228, 224, 1)'}}>菜单&权限</Button> |
| | | <Button type="link" onClick={() => this.setState({ selectSubApp: item, subVisible: 'edit' })} style={{color: '#8E44AD'}}>修改</Button> |
| | | <Button type="link" onClick={() => this.deleteSubApp(item)} style={{color: '#ff4d4f'}}>删除</Button> |
| | |
| | | > |
| | | <SubMutilForm type={subVisible} card={subVisible === 'edit' ? selectSubApp : ''} wrappedComponentRef={(inst) => this.submobcardRef = inst} inputSubmit={this.submitSubCard} /> |
| | | </Modal> |
| | | </ConfigProvider> |
| | | </div> |
| | | ) |
| | | } |