| | |
| | | import PropTypes from 'prop-types' |
| | | import { is, fromJS } from 'immutable' |
| | | import { notification, Spin, Row, Col, Modal } from 'antd' |
| | | import moment from 'moment' |
| | | |
| | | import Api from '@/api' |
| | | import Utils from '@/utils/utils.js' |
| | |
| | | const AntvX6 = asyncComponent(() => import('./components/chart/antv-X6')) |
| | | const Voucher = asyncComponent(() => import('./components/module/voucher')) |
| | | const Account = asyncComponent(() => import('./components/module/account')) |
| | | const Invoice = asyncComponent(() => import('./components/module/invoice')) |
| | | const Iframe = asyncComponent(() => import('./components/iframe')) |
| | | const Calendar = asyncComponent(() => import('./components/calendar')) |
| | | const DebugTable = asyncComponent(() => import('@/tabviews/debugtable')) |
| | |
| | | * @description 获取页面配置信息 |
| | | */ |
| | | async loadconfig () { |
| | | const { MenuID, MenuName } = this.props |
| | | const { MenuID, MenuName, param } = this.props |
| | | |
| | | let _param = { |
| | | func: 'sPC_Get_LongParam', |
| | |
| | | try { // 配置信息解析 |
| | | let userConfig = JSON.parse(window.decodeURIComponent(window.atob(result.LongParamUser))) |
| | | if (userConfig) { |
| | | shortcuts = userConfig.action |
| | | userConfig.printers.forEach(item => { |
| | | shortcuts = userConfig.action || [] |
| | | userConfig.printers && userConfig.printers.forEach(item => { |
| | | window.GLOB.UserCacheMap.set(item.parentId + item.uuid, item) |
| | | }) |
| | | } |
| | |
| | | let roleId = sessionStorage.getItem('role_id') || '' // 角色ID |
| | | let balMap = new Map() |
| | | let skip = config.permission === 'false' || window.GLOB.mkHS |
| | | let param = this.props.param || {} // url参数 |
| | | let urlparam = {} // url参数 |
| | | if (param) { |
| | | Object.keys(param).forEach(key => { |
| | | if (/^\$/.test(key)) { |
| | | urlparam[key] = param[key] |
| | | } else { |
| | | urlparam[key.toLowerCase()] = param[key] |
| | | } |
| | | }) |
| | | } |
| | | |
| | | window.GLOB.CacheData.set(MenuID, param) |
| | | window.GLOB.CacheData.set(MenuID, urlparam) |
| | | |
| | | let userName = sessionStorage.getItem('User_Name') || '' |
| | | let fullName = sessionStorage.getItem('Full_Name') || '' |
| | |
| | | } |
| | | if (config.urlFields) { |
| | | config.urlFields.forEach(field => { |
| | | let val = `'${param[field] || ''}'` |
| | | let val = `'${urlparam[field.toLowerCase()] || ''}'` |
| | | regs.push({ |
| | | reg: new RegExp('@' + field + '@', 'ig'), |
| | | value: val |
| | |
| | | let initInters = [] |
| | | |
| | | config.interfaces = this.formatInterSetting(config.interfaces, regs, MenuID, initInters, config.MenuName) |
| | | config.components = this.filterComponent(config.components, roleId, window.GLOB.mkActions, balMap, skip, param, MenuID, config.interfaces, config.$cache, config.$time, config.MenuName, MenuID, MenuID, config.process === 'true') |
| | | config.components = this.filterComponent(config.components, roleId, window.GLOB.mkActions, balMap, skip, urlparam, MenuID, config.interfaces, config.$cache, config.$time, config.MenuName, MenuID, MenuID, config.process === 'true') |
| | | |
| | | let params = [] |
| | | let BID = param.$BID || '' |
| | | let BID = urlparam.$BID || '' |
| | | let inherit = {} |
| | | |
| | | if (config.cacheUseful === 'true') { // 缓存继承 |
| | |
| | | // 字段透视 |
| | | config.components.forEach(component => { |
| | | if (component.type !== 'search') return |
| | | |
| | | if (param.$searchkey) { |
| | | component.search = component.search.map(item => { |
| | | if (['text', 'select', 'link', 'checkcard'].includes(item.type) && param.$searchkey === item.field) { |
| | | item.initval = param.$searchval |
| | | } |
| | | |
| | | return item |
| | | }) |
| | | |
| | | component.$searches = Utils.initMainSearch(component.search) |
| | | } |
| | | |
| | | window.GLOB.SearchBox.set(MenuID, component.$searches) |
| | | |
| | |
| | | |
| | | if (item.setting.supModule === 'preview') { |
| | | item.setting.supModule = '' |
| | | let val = '' |
| | | Object.keys(urlparam).forEach(key => { |
| | | if (key.toLowerCase() === item.setting.controlField) { |
| | | val = urlparam[key] |
| | | } |
| | | }) |
| | | let val = urlparam[item.setting.controlField] || '' |
| | | |
| | | item.subtabs = item.subtabs.filter(tab => { |
| | | if (tab.$pass) return true |
| | |
| | | if (item.setting.selectField) { |
| | | item.setting.selectField = item.setting.selectField.toLowerCase() |
| | | |
| | | let val = '' |
| | | Object.keys(urlparam).forEach(key => { |
| | | if (key.toLowerCase() === item.setting.selectField) { |
| | | val = urlparam[key] |
| | | } |
| | | }) |
| | | let val = urlparam[item.setting.selectField] || '' |
| | | |
| | | let activeKey = '' |
| | | |
| | |
| | | item.type = 'card' |
| | | } |
| | | |
| | | if (item.wrap && item.wrap.supType === 'multi') { // 数据卡多上级组件 |
| | | item.setting.supModule = item.supNodes[0].componentId |
| | | if (item.wrap && item.wrap.supType === 'multi') { // 数据卡、table多上级组件 |
| | | item.supNodes = item.supNodes.map(node => node.componentId) |
| | | if (item.supNodes[0]) { |
| | | item.setting.supModule = item.supNodes[0] |
| | | } else { |
| | | item.supNodes = null |
| | | item.setting.supModule = '' |
| | | } |
| | | } else if (item.setting && item.setting.supModule && typeof(item.setting.supModule) !== 'string') { |
| | | let pid = item.setting.supModule.pop() |
| | | if (pid && pid !== 'empty') { |
| | |
| | | } else { |
| | | item.setting.supModule = '' |
| | | } |
| | | } else if (item.type === 'search') { |
| | | if (item.wrap.supModule) { |
| | | item.wrap.supModule = item.wrap.supModule.pop() |
| | | } |
| | | } |
| | | |
| | | // 搜索条件初始化 |
| | | if (item.search) { |
| | | Utils.initSearchVal(item) |
| | | |
| | | if (urlparam.$searchkey) { |
| | | item.search.forEach(cell => { |
| | | if (urlparam.$searchkey === cell.field.toLowerCase() && ['text', 'select', 'link', 'checkcard'].includes(cell.type)) { |
| | | cell.initval = urlparam.$searchval |
| | | } |
| | | }) |
| | | } |
| | | |
| | | item.$searches = Utils.initMainSearch(item.search) |
| | | |
| | | if (item.type === 'search' && item.wrap.supModule) { |
| | | if (!item.checkBid) { |
| | | item.wrap.supModule = '' |
| | | } else { |
| | | window.GLOB.SearchBox.set(item.$searchId + 'checkBid', true) |
| | | } |
| | | } |
| | | } |
| | | |
| | | let pass = skip |
| | |
| | | cell = this.getPrinter(cell, item.uuid) |
| | | } |
| | | |
| | | return pass || permAction[cell.uuid] |
| | | return pass || permAction[cell.uuid] || cell.permission === 'false' |
| | | }) |
| | | } |
| | | |
| | |
| | | col.type = 'custom' |
| | | } |
| | | |
| | | if (col.type === 'number') { |
| | | if (col.type === 'index') { |
| | | col.field = '$Index' |
| | | col.type = 'text' |
| | | } else if (col.type === 'number') { |
| | | if (typeof(col.decimal) === 'number') { |
| | | col.round = Math.pow(10, col.decimal) |
| | | if (col.format === 'percent') { |
| | |
| | | cell = this.getPrinter(cell, item.uuid) |
| | | } |
| | | |
| | | return pass || permAction[cell.uuid] |
| | | return pass || permAction[cell.uuid] || cell.permission === 'false' |
| | | } else { |
| | | cell = this.resetElement(cell) |
| | | } |
| | |
| | | } |
| | | |
| | | item.cols = getCols(item.cols) |
| | | |
| | | if (item.hasExtend) { |
| | | item.setting.hasExtend = true |
| | | item.setting.tableMode = 'compatible' |
| | | item.setting.extendTime = moment().format('YYYY-MM-DD HH:mm:ss') |
| | | item.colsCtrls = null |
| | | } |
| | | |
| | | if (item.subtype === 'editable') { |
| | | item.submit.logLabel = item.$menuname + '-提交' |
| | |
| | | cell = this.resetElement(cell) |
| | | } |
| | | |
| | | return cell.eleType !== 'button' || pass || permAction[cell.uuid] |
| | | return cell.eleType !== 'button' || pass || permAction[cell.uuid] || cell.permission === 'false' |
| | | }) |
| | | |
| | | if (card.setting.click === 'menus') { |
| | |
| | | cell = this.resetElement(cell) |
| | | } |
| | | |
| | | return cell.eleType !== 'button' || pass || permAction[cell.uuid] |
| | | return cell.eleType !== 'button' || pass || permAction[cell.uuid] || cell.permission === 'false' |
| | | }) |
| | | }) |
| | | } else if (item.type === 'balcony') { |
| | |
| | | cell = this.resetElement(cell) |
| | | } |
| | | |
| | | return cell.eleType !== 'button' || pass || permAction[cell.uuid] |
| | | return cell.eleType !== 'button' || pass || permAction[cell.uuid] || cell.permission === 'false' |
| | | }) |
| | | } else if (item.type === 'form') { |
| | | item.subcards = item.subcards.map(group => { |
| | |
| | | if (cell.syncComponentId) { |
| | | if (cell.syncComponentId === item.setting.supModule) { |
| | | cell.syncComponentId = '' |
| | | if (cell.execSuccess === 'line' || cell.execSuccess === 'grid') { |
| | | if (['line', 'grid', 'line_grid'].includes(cell.execSuccess)) { |
| | | cell.execSuccess = 'mainline' |
| | | } |
| | | } else if (cell.syncComponentId === 'multiComponent') { |
| | |
| | | return m.syncComId.pop() || '' |
| | | }) |
| | | |
| | | if (item.setting.supModule && ids.includes(item.setting.supModule)) { |
| | | if (cell.execSuccess === 'line' || cell.execSuccess === 'grid') { |
| | | if (item.supNodes) { |
| | | item.supNodes.forEach(node => { |
| | | if (!ids.includes(node)) return |
| | | |
| | | if (['line', 'grid', 'line_grid'].includes(cell.execSuccess)) { |
| | | cell.execSuccess = 'mainline' |
| | | } |
| | | ids = ids.filter(id => id !== node) |
| | | }) |
| | | } else if (item.setting.supModule && ids.includes(item.setting.supModule)) { |
| | | if (['line', 'grid', 'line_grid'].includes(cell.execSuccess)) { |
| | | cell.execSuccess = 'mainline' |
| | | } |
| | | ids = ids.filter(id => id !== item.setting.supModule) |
| | |
| | | if (component.setting.useMSearch) { |
| | | if (!window.GLOB.SearchBox.has(component.$searchId)) { |
| | | component.setting.useMSearch = false |
| | | } else if (window.GLOB.SearchBox.has(component.$searchId + 'required')) { |
| | | component.$s_req = true |
| | | } else { |
| | | if (window.GLOB.SearchBox.has(component.$searchId + 'required')) { |
| | | component.$s_req = true |
| | | } |
| | | if (window.GLOB.SearchBox.has(component.$searchId + 'checkBid')) { |
| | | component.checkBid = true |
| | | component.setting.checkBid = true |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | ) |
| | | } else if (item.type === 'group' && item.subtype === 'normalgroup') { |
| | | return ( |
| | | <Col span={item.width} style={style} key={item.uuid}> |
| | | <NormalGroup config={item}/> |
| | | </Col> |
| | | <NormalGroup config={item} style={style} key={item.uuid}/> |
| | | ) |
| | | } else if (item.type === 'editor') { |
| | | return ( |
| | |
| | | <Account config={item}/> |
| | | </Col> |
| | | ) |
| | | } else if (item.type === 'module' && item.subtype === 'invoice') { |
| | | return ( |
| | | <Col span={item.width} style={style} key={item.uuid}> |
| | | <Invoice config={item}/> |
| | | </Col> |
| | | ) |
| | | } else if (item.type === 'iframe') { |
| | | return ( |
| | | <Col span={item.width} style={style} key={item.uuid}> |