| | |
| | | { |
| | | "appId": "201912040924165801464FF1788654BC5AC73", |
| | | "appkey": "20191106103859640976D6E924E464D029CF0", |
| | | "appId": "202108312122504607B107A83F55B40C98CCF", |
| | | "appkey": "20210831212235413F287EC3BF489424496C8", |
| | | "mainSystemApi": "http://sso.mk9h.cn/cloud/webapi/dostars", |
| | | "systemType": "", |
| | | "externalDatabase": "false", |
| | | "externalDatabase": "", |
| | | "lineColor": "", |
| | | "filter": "false", |
| | | "defaultApp": "mk", |
| | | "defaultApp": "mkindustry", |
| | | "defaultLang": "zh-CN", |
| | | "WXAppID": "", |
| | | "WXminiAppID": "", |
| | |
| | | "transfer": "false", |
| | | "keepPassword": "true", |
| | | "platforms": ["H5", "wechat", "android", "ios", "wxMiniProgram"], |
| | | "host": "http://qingqiumarket.cn", |
| | | "service": "MKWMS/" |
| | | "host": "http://demo.mk9h.cn", |
| | | "service": "erp_new/" |
| | | } |
| | |
| | | z-index: 1090!important; |
| | | } |
| | | |
| | | .ant-dropdown { |
| | | z-index: 1090!important; |
| | | } |
| | | // .ant-dropdown { |
| | | // z-index: 1090!important; |
| | | // } |
| | | |
| | | .mk-normal-dropdown { |
| | | .ant-dropdown-menu { |
| | |
| | | import { Popover } from 'antd' |
| | | import { EditOutlined, ToolOutlined, DeleteOutlined, FontColorsOutlined } from '@ant-design/icons' |
| | | |
| | | // import asyncComponent from '@/utils/asyncComponent' |
| | | import asyncIconComponent from '@/utils/asyncIconComponent' |
| | | import MKEmitter from '@/utils/events.js' |
| | | import getWrapForm from './options' |
| | |
| | | import './index.scss' |
| | | |
| | | const NormalForm = asyncIconComponent(() => import('@/components/normalform')) |
| | | // const NormalHeader = asyncComponent(() => import('@/menu/components/share/normalheader')) |
| | | |
| | | class Voucher extends Component { |
| | | static propTpyes = { |
| | |
| | | width: card.width || 12, |
| | | name: '凭证', |
| | | subtype: card.subtype, |
| | | setting: { interType: 'system' }, |
| | | // setting: { interType: 'system' }, |
| | | wrap: { name: '凭证', title: '', width: card.width || 12, type: 'edit' }, |
| | | style: { marginLeft: '8px', marginRight: '8px', marginTop: '8px', marginBottom: '8px' }, |
| | | headerStyle: {}, |
| | |
| | | |
| | | return ( |
| | | <div className="menu-voucher-box" style={card.style} id={card.uuid}> |
| | | {/* <NormalHeader config={card} updateComponent={this.updateComponent}/> */} |
| | | <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={ |
| | | <div className="mk-popover-control"> |
| | | <NormalForm title="基本设置" width={800} update={this.updateWrap} getForms={this.getWrapForms}> |
| | |
| | | <ToolOutlined /> |
| | | </Popover> |
| | | <div className="voucher-box"> |
| | | jjj |
| | | 凭证 |
| | | </div> |
| | | </div> |
| | | ) |
| | |
| | | |
| | | this.searchFormRef.handleConfirm().then(res => { |
| | | let fieldrepet = false // 字段重复 |
| | | let labelrepet = false // 提示文字重复 |
| | | |
| | | card.search = card.search.map(item => { // 数据更新及重复检测 |
| | | if (item.uuid !== res.uuid && res.field && item.field) { |
| | |
| | | |
| | | if (setFields.length < itemFields.length + resFields.length && (res.type !== 'date' || item.type !== 'date')) { |
| | | fieldrepet = true |
| | | } else if (item.label === res.label) { |
| | | labelrepet = true |
| | | } |
| | | } |
| | | |
| | |
| | | notification.warning({ |
| | | top: 92, |
| | | message: '字段已存在!', |
| | | duration: 5 |
| | | }) |
| | | return |
| | | } else if (labelrepet) { |
| | | notification.warning({ |
| | | top: 92, |
| | | message: '名称已存在!', |
| | | duration: 5 |
| | | }) |
| | | return |
| | |
| | | |
| | | this.searchFormRef.handleConfirm().then(res => { |
| | | let fieldrepet = false // 字段重复 |
| | | let labelrepet = false // 提示文字重复 |
| | | |
| | | _searchlist = _searchlist.filter(item => !item.origin || item.uuid === res.uuid) // 去除系统项 |
| | | |
| | |
| | | |
| | | if (setFields.length < itemFields.length + resFields.length && (res.type !== 'date' || item.type !== 'date')) { |
| | | fieldrepet = true |
| | | } else if (item.label === res.label) { |
| | | labelrepet = true |
| | | } |
| | | } |
| | | |
| | |
| | | notification.warning({ |
| | | top: 92, |
| | | message: '字段已存在!', |
| | | duration: 5 |
| | | }) |
| | | return |
| | | } else if (labelrepet) { |
| | | notification.warning({ |
| | | top: 92, |
| | | message: '名称已存在!', |
| | | duration: 5 |
| | | }) |
| | | return |
| | |
| | | }, |
| | | { |
| | | type: 'number', |
| | | field: 'btnlimit', |
| | | label: '按钮限制', |
| | | initval: wrap.btnlimit || '', |
| | | tooltip: '按钮数量限制,超出的按钮会在更多中下拉显示,注:更多中的按钮不要绑定双击事件。', |
| | | min: 3, |
| | | max: 3000, |
| | | precision: 0, |
| | | required: false |
| | | }, |
| | | { |
| | | type: 'number', |
| | | field: 'height', |
| | | label: '表格高度', |
| | | initval: wrap.height || '', |
| | |
| | | // forbid: appType === 'mob' |
| | | // }, |
| | | { |
| | | type: 'number', |
| | | field: 'btnlimit', |
| | | label: '按钮限制', |
| | | initval: wrap.btnlimit || '', |
| | | tooltip: '按钮数量限制,超出的按钮会在更多中下拉显示,注:更多中的按钮不要绑定双击事件。', |
| | | min: 3, |
| | | max: 3000, |
| | | precision: 0, |
| | | required: false, |
| | | forbid: appType !== '' |
| | | }, |
| | | { |
| | | type: 'select', |
| | | field: 'doubleClick', |
| | | label: '双击事件', |
| | |
| | | import mindmap from '@/assets/mobimg/mindmap.png' |
| | | import indent from '@/assets/mobimg/indent.jfif' |
| | | import kapmap from '@/assets/mobimg/kapmap.jfif' |
| | | // import Voucher from '@/assets/mobimg/voucher.jpg' |
| | | import Voucher from '@/assets/mobimg/voucher.jpg' |
| | | |
| | | // 组件配置信息 |
| | | export const menuOptions = [ |
| | |
| | | { type: 'menu', url: SandBox, component: 'code', subtype: 'sandbox', title: '自定义', width: 24 }, |
| | | { type: 'menu', url: group, component: 'group', subtype: 'normalgroup', title: '分组', width: 24, forbid: ['billPrint'] }, |
| | | { type: 'menu', url: Iframe, component: 'iframe', subtype: 'iframe', title: 'iframe', width: 24, forbid: ['billPrint'] }, |
| | | // { type: 'menu', url: Voucher, component: 'module', subtype: 'voucher', title: '凭证', width: 24, forbid: ['billPrint'] }, |
| | | { type: 'menu', url: Voucher, component: 'module', subtype: 'voucher', title: '凭证', width: 24, forbid: ['billPrint'] }, |
| | | ] |
| | |
| | | import { Button, Select, Input, DatePicker } from 'antd' |
| | | // import { EditOutlined, ToolOutlined, DeleteOutlined, FontColorsOutlined } from '@ant-design/icons' |
| | | |
| | | import Api from '@/api' |
| | | import asyncComponent from '@/utils/asyncComponent' |
| | | // import MKEmitter from '@/utils/events.js' |
| | | import './index.scss' |
| | |
| | | let BID = '' |
| | | let BData = '' |
| | | |
| | | if (config.setting.supModule) { |
| | | BData = window.GLOB.CacheData.get(config.setting.supModule) |
| | | if (config.wrap.supModule) { |
| | | BData = window.GLOB.CacheData.get(config.wrap.supModule) |
| | | } else { |
| | | BData = window.GLOB.CacheData.get(config.$pageId) |
| | | } |
| | |
| | | } |
| | | |
| | | loadData = () => { |
| | | |
| | | let param = { |
| | | func: 's_get_fcc_account_data' |
| | | } |
| | | Api.genericInterface(param) |
| | | } |
| | | |
| | | triggeradd = () => { |
| | |
| | | import React, {Component} from 'react' |
| | | import PropTypes from 'prop-types' |
| | | import { is, fromJS } from 'immutable' |
| | | import { Affix } from 'antd' |
| | | import { Affix, Dropdown } from 'antd' |
| | | import { DownOutlined } from '@ant-design/icons' |
| | | |
| | | import asyncComponent from './asyncButtonComponent' |
| | | import './index.scss' |
| | |
| | | setting: PropTypes.any, // 页面通用设置 |
| | | } |
| | | |
| | | state = {} |
| | | state = { |
| | | actions: [], |
| | | mores: null |
| | | } |
| | | |
| | | UNSAFE_componentWillMount() { |
| | | const { setting, actions } = this.props |
| | | |
| | | if (!setting.btnlimit || setting.btnlimit >= actions.length) { |
| | | this.setState({actions: actions}) |
| | | } else { |
| | | let mores = fromJS(actions).toJS() |
| | | |
| | | this.setState({ |
| | | actions: mores.splice(0, setting.btnlimit), |
| | | mores |
| | | }) |
| | | } |
| | | } |
| | | |
| | | shouldComponentUpdate (nextProps, nextState) { |
| | | return !is(fromJS(this.props), fromJS(nextProps)) || !is(fromJS(this.state), fromJS(nextState)) |
| | |
| | | } |
| | | |
| | | render() { |
| | | const { setting, MenuID, actions } = this.props |
| | | const { setting, MenuID } = this.props |
| | | const { actions, mores } = this.state |
| | | let fixed = setting.actionfixed && setting.tabType === 'main' // 按钮是否固定在头部 |
| | | |
| | | if (fixed && MenuID) { |
| | |
| | | <Affix offsetTop={48}> |
| | | <div className="button-list toolbar-button" id={fixed ? MenuID + 'mainaction' : ''}> |
| | | {this.getButtonList(actions)} |
| | | {mores ? <Dropdown overlay={<div className="mk-button-dropdown-wrap">{this.getButtonList(mores)}</div>} trigger={['hover']}> |
| | | <div className="mk-more">更多<DownOutlined/></div> |
| | | </Dropdown> : null} |
| | | </div> |
| | | </Affix> |
| | | ) |
| | |
| | | return ( |
| | | <div className="button-list toolbar-button" id={fixed ? MenuID + 'mainaction' : ''}> |
| | | {this.getButtonList(actions)} |
| | | {mores ? <Dropdown overlay={<div className="mk-button-dropdown-wrap">{this.getButtonList(mores)}</div>} trigger={['hover']}> |
| | | <div className="mk-more">更多<DownOutlined/></div> |
| | | </Dropdown> : null} |
| | | </div> |
| | | ) |
| | | } |
| | |
| | | display: none; |
| | | } |
| | | } |
| | | .mk-more { |
| | | display: inline-block; |
| | | height: 28px; |
| | | border: 1px solid #d8d8d8; |
| | | line-height: 28px; |
| | | padding: 0 10px 0px 20px; |
| | | border-radius: 4px; |
| | | cursor: pointer; |
| | | .anticon-down { |
| | | margin-left: 3px; |
| | | } |
| | | } |
| | | .mk-button-dropdown-wrap { |
| | | box-shadow: 0 0 2px #bcbcbc; |
| | | background: #ffffff; |
| | | min-width: 85px; |
| | | button { |
| | | display: block; |
| | | margin: 0!important; |
| | | width: 100%; |
| | | height: 34px; |
| | | border-radius: 0px; |
| | | padding-left: 15px!important; |
| | | .anticon { |
| | | display: none; |
| | | } |
| | | .anticon + span { |
| | | margin-left: 0px; |
| | | } |
| | | } |
| | | } |
| | |
| | | |
| | | this.searchFormRef.handleConfirm().then(res => { |
| | | let fieldrepet = false // 字段重复 |
| | | let labelrepet = false // 提示文字重复 |
| | | |
| | | _searchlist = _searchlist.filter(item => !item.origin || item.uuid === res.uuid) // 去除系统项 |
| | | |
| | |
| | | |
| | | if (setFields.length < itemFields.length + resFields.length && (res.type !== 'date' || item.type !== 'date')) { |
| | | fieldrepet = true |
| | | } else if (item.label === res.label) { |
| | | labelrepet = true |
| | | } |
| | | } |
| | | |
| | |
| | | notification.warning({ |
| | | top: 92, |
| | | message: '字段已存在!', |
| | | duration: 5 |
| | | }) |
| | | return |
| | | } else if (labelrepet) { |
| | | notification.warning({ |
| | | top: 92, |
| | | message: '名称已存在!', |
| | | duration: 5 |
| | | }) |
| | | return |