| | |
| | | import React, {Component} from 'react' |
| | | import PropTypes from 'prop-types' |
| | | import { is, fromJS } from 'immutable' |
| | | // import { Button, Select, Input, DatePicker } from 'antd' |
| | | // import { EditOutlined, ToolOutlined, DeleteOutlined, FontColorsOutlined } from '@ant-design/icons' |
| | | import { notification, Select, Divider, Modal } from 'antd' |
| | | import { PlusOutlined } from '@ant-design/icons' |
| | | import moment from 'moment' |
| | | |
| | | import Api from '@/api' |
| | | // import MKEmitter from '@/utils/events.js' |
| | | import Utils from '@/utils/utils.js' |
| | | import MKEmitter from '@/utils/events.js' |
| | | import './index.scss' |
| | | |
| | | const { Option } = Select |
| | | const { confirm } = Modal |
| | | |
| | | class AccountModule extends Component { |
| | | static propTpyes = { |
| | |
| | | } |
| | | |
| | | state = { |
| | | BID: '', |
| | | type: '', |
| | | config: null |
| | | } |
| | | |
| | | UNSAFE_componentWillMount () { |
| | | const { config } = this.props |
| | | |
| | | let BID = '' |
| | | let BData = '' |
| | | |
| | | if (config.wrap.supModule) { |
| | | BData = window.GLOB.CacheData.get(config.wrap.supModule) |
| | | } else { |
| | | BData = window.GLOB.CacheData.get(config.$pageId) |
| | | } |
| | | if (BData) { |
| | | BID = BData.$BID || '' |
| | | } |
| | | |
| | | this.setState({ |
| | | config: fromJS(config).toJS(), |
| | | BID: BID || '', |
| | | type: config.wrap.type |
| | | }, () => { |
| | | this.loadData() |
| | | }) |
| | | activeItem: null, |
| | | books: [] |
| | | } |
| | | |
| | | componentDidMount () { |
| | | |
| | | this.loadData() |
| | | } |
| | | |
| | | shouldComponentUpdate (nextProps, nextState) { |
| | |
| | | |
| | | loadData = () => { |
| | | let param = { |
| | | func: 's_get_fcc_account_data' |
| | | func: 's_get_fcc_book_data', |
| | | dataM: sessionStorage.getItem('dataM') === 'true' ? 'Y' : '', |
| | | mk_organization: sessionStorage.getItem('organization') || '' |
| | | } |
| | | Api.genericInterface(param) |
| | | |
| | | let _param = { |
| | | func: 's_get_fcc_book_data' |
| | | Api.genericInterface(param).then(res => { |
| | | if (!res.status) { |
| | | notification.warning({ |
| | | top: 92, |
| | | message: res.message, |
| | | duration: 5 |
| | | }) |
| | | return |
| | | } |
| | | |
| | | let books = res.book || [] |
| | | let activeItem = null |
| | | let map = new Map() |
| | | books = books.filter(item => { |
| | | if (!item.id) return false |
| | | if (map.has(item.id)) return false |
| | | map.set(item.id, true) |
| | | |
| | | if (item.selected === 'true' && !activeItem) { |
| | | activeItem = item |
| | | } |
| | | if (item.months) { |
| | | item.date = item.months.replace('-', '年') + '月' |
| | | } |
| | | return true |
| | | }) |
| | | |
| | | this.setState({books, activeItem}) |
| | | |
| | | if (activeItem) { |
| | | MKEmitter.emit('resetSelectLine', this.props.config.uuid, activeItem.id, activeItem) |
| | | } |
| | | }) |
| | | } |
| | | |
| | | changeBook = (value) => { |
| | | const { books, activeItem } = this.state |
| | | |
| | | let Item = books.filter(item => item.id === value)[0] |
| | | |
| | | if (!activeItem && Item) { |
| | | this.setBook(Item) |
| | | } else if (Item) { |
| | | const that = this |
| | | confirm({ |
| | | title: '确定切换账套吗?', |
| | | content: '切换账套时系统需要刷新。', |
| | | onOk() { |
| | | return new Promise(resolve => { |
| | | that.setBook(Item, resolve) |
| | | }) |
| | | }, |
| | | onCancel() {} |
| | | }) |
| | | } |
| | | Api.genericInterface(_param) |
| | | } |
| | | |
| | | setBook = (item, resolve) => { |
| | | if (!resolve) { |
| | | this.setState({activeItem: item}) |
| | | |
| | | MKEmitter.emit('resetSelectLine', this.props.config.uuid, item.id, item) |
| | | } |
| | | |
| | | let userid = sessionStorage.getItem('UserID') || '' |
| | | let sid = localStorage.getItem('SessionUid') || '' |
| | | let param = { |
| | | func: 'sPC_TableData_InUpDe', |
| | | LText: `delete tmp_session_show_key where createuserid='${userid}' and key_type='fcc_years' |
| | | insert into tmp_session_show_key ( key_id,key_type,createuserid,CreateUser,CreateStaff) |
| | | select '${item.id}','fcc_years','${userid}','${sid}','${sessionStorage.getItem('Full_Name') || ''}'`, |
| | | exec_type: 'y' |
| | | } |
| | | |
| | | param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') |
| | | param.secretkey = Utils.encrypt('', param.timestamp) |
| | | param.LText = Utils.formatOptions(param.LText) |
| | | |
| | | Api.genericInterface(param).then(res => { |
| | | if (!res.status) { |
| | | notification.warning({ |
| | | top: 92, |
| | | message: res.message, |
| | | duration: 5 |
| | | }) |
| | | resolve && resolve() |
| | | return |
| | | } |
| | | |
| | | if (resolve) { |
| | | window.location.reload() |
| | | } |
| | | }) |
| | | } |
| | | |
| | | addBook = () => { |
| | | const { config } = this.props |
| | | |
| | | let menuId = config.wrap.MenuID |
| | | let menu = window.GLOB.mkThdMenus.filter(m => m.MenuID === menuId)[0] |
| | | |
| | | if (!menu && config.wrap.MenuNo) { |
| | | menu = { |
| | | MenuID: menuId, |
| | | MenuName: config.wrap.MenuName, |
| | | MenuNo: config.wrap.MenuNo || '', |
| | | type: config.wrap.tabType |
| | | } |
| | | } |
| | | |
| | | let newtab = { |
| | | ...menu, |
| | | param: {} |
| | | } |
| | | |
| | | MKEmitter.emit('modifyTabs', newtab, true) |
| | | } |
| | | |
| | | render() { |
| | | const { config } = this.state |
| | | const { config } = this.props |
| | | const { activeItem, books } = this.state |
| | | |
| | | return ( |
| | | <div className="menu-account-wrap" style={config.style}> |
| | | |
| | | {config.wrap.MenuID ? <Select value={activeItem ? activeItem.id : ''} placeholder="请选择账套" onChange={this.changeBook} dropdownRender={menu => ( |
| | | <div> |
| | | {menu} |
| | | <Divider style={{ margin: '4px 0' }} /> |
| | | <div className="mk-add-book" onMouseDown={this.addBook}> |
| | | <PlusOutlined /> 点击新增账套 |
| | | </div> |
| | | </div> |
| | | )}> |
| | | {books.map(item => ( |
| | | <Option disabled={!item.months} key={item.id}>{item.account_name}</Option> |
| | | ))} |
| | | </Select> : <Select value={activeItem ? activeItem.id : ''} disabled={config.wrap.readonly === 'true'} placeholder="请选择账套" onChange={this.changeBook}> |
| | | {books.map(item => ( |
| | | <Option disabled={!item.months} key={item.id}>{item.account_name}</Option> |
| | | ))} |
| | | </Select>} |
| | | {activeItem ? <span className="date">{activeItem.date}</span> : null} |
| | | </div> |
| | | ) |
| | | } |