| | |
| | | { |
| | | "appId": "202108312122504607B107A83F55B40C98CCF", |
| | | "appkey": "20210831212235413F287EC3BF489424496C8", |
| | | "appId": "201912040924165801464FF1788654BC5AC73", |
| | | "appkey": "20191106103859640976D6E924E464D029CF0", |
| | | "mainSystemApi": "http://sso.mk9h.cn/cloud/webapi/dostars", |
| | | "systemType": "", |
| | | "externalDatabase": "false", |
| | | "lineColor": "", |
| | | "filter": "false", |
| | | "defaultApp": "mkindustry", |
| | | "defaultApp": "mk", |
| | | "defaultLang": "zh-CN", |
| | | "WXAppID": "", |
| | | "debugger": false, |
| | | "licenseKey": "7EFE13KIKLILIJB64C12", |
| | | "probation": "2021-12-31", |
| | | "host": "http://demo.mk9h.cn", |
| | | "service": "erp_new/" |
| | | "licenseKey": "", |
| | | "probation": "", |
| | | "host": "http://qingqiumarket.cn", |
| | | "service": "MKWMS/" |
| | | } |
| | |
| | | } |
| | | |
| | | // 重置时间插件时间滚动条 |
| | | .ant-calendar-time-picker-select:hover::-webkit-scrollbar { |
| | | .ant-calendar-time-picker-select { |
| | | overflow-y: auto; |
| | | } |
| | | .ant-calendar-time-picker-select::-webkit-scrollbar { |
| | | width: 7px; |
| | | } |
| | | .ant-calendar-time-picker-select:hover::-webkit-scrollbar-thumb { |
| | | .ant-calendar-time-picker-select::-webkit-scrollbar-thumb { |
| | | border-radius: 5px; |
| | | box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.13); |
| | | background: rgba(0, 0, 0, 0.13); |
| | | } |
| | | .ant-calendar-time-picker-select:hover::-webkit-scrollbar-track { |
| | | .ant-calendar-time-picker-select::-webkit-scrollbar-track { |
| | | box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.05); |
| | | border-radius: 3px; |
| | | border: 1px solid rgba(0, 0, 0, 0.07); |
| | |
| | | width: 100%; |
| | | display: inline-block; |
| | | .ant-calendar-picker { |
| | | width: 100%; |
| | | width: 100%!important; |
| | | } |
| | | } |
| | | .ant-calendar-picker-container { |
| | |
| | | // } |
| | | // .ant-table.ant-table-mini .ant-table-tbody > tr > td { |
| | | // padding: 4px 4px; |
| | | // } |
| | | // } |
| | | .mk-date-picker.minute { |
| | | .ant-calendar-time-picker-combobox { |
| | | .ant-calendar-time-picker-select { |
| | | width: 50%; |
| | | } |
| | | |
| | | >.ant-calendar-time-picker-select:last-child { |
| | | display: none; |
| | | } |
| | | } |
| | | } |
| | | .mk-date-picker.hour { |
| | | .ant-calendar-time-picker-combobox { |
| | | .ant-calendar-time-picker-select { |
| | | width: 100%; |
| | | } |
| | | |
| | | >.ant-calendar-time-picker-select:not(:first-child) { |
| | | display: none; |
| | | } |
| | | } |
| | | } |
| | |
| | | 'model.form.link': 'Linkage menu', |
| | | 'model.form.linkform': 'Linkage form', |
| | | 'model.form.dateday': 'Date(Day)', |
| | | 'model.form.datetime': 'Date(Second)', |
| | | 'model.form.dateweek': 'Date(Week)', |
| | | 'model.form.datemonth': 'Date(Month)', |
| | | 'model.form.daterange': 'Date(Range)', |
| | |
| | | 'model.form.link': '联动菜单', |
| | | 'model.form.linkform': '关联表单', |
| | | 'model.form.dateday': '日期(天)', |
| | | 'model.form.datetime': '日期(分/秒)', |
| | | 'model.form.dateweek': '日期(周)', |
| | | 'model.form.datemonth': '日期(月)', |
| | | 'model.form.daterange': '日期(区间)', |
| | |
| | | // { value: 'self', text: '当前页面' } |
| | | // ] |
| | | // }, |
| | | // { |
| | | // type: 'select', |
| | | // key: 'copyMenuId', |
| | | // label: '复制菜单', |
| | | // initVal: card.copyMenuId || '', |
| | | // required: false, |
| | | // forbid: !isApp, |
| | | // options: appMenus |
| | | // }, |
| | | { |
| | | type: 'select', |
| | | key: 'linkurl', |
| | |
| | | |
| | | if ((sessionStorage.getItem('style-control') && sessionStorage.getItem('style-control') === 'true')) return |
| | | |
| | | if (btn.eleType === 'button') { |
| | | if (btn.OpenType === 'pop' || btn.execMode === 'pop') { |
| | | if (!btn.modal) { |
| | | btn.modal = { |
| | | setting: { title: btn.label, width: appType === 'mob' ? 100 : 60, cols: '2', container: 'view', focus: '', finish: 'close', clickouter: 'unclose', display: 'modal' }, |
| | | tables: [], |
| | | groups: [], |
| | | fields: [] |
| | | } |
| | | if (btn.OpenType === 'pop' || btn.execMode === 'pop') { |
| | | if (!btn.modal) { |
| | | btn.modal = { |
| | | setting: { title: btn.label, width: appType === 'mob' ? 100 : 60, cols: '2', container: 'view', focus: '', finish: 'close', clickouter: 'unclose', display: 'modal' }, |
| | | tables: [], |
| | | groups: [], |
| | | fields: [] |
| | | } |
| | | |
| | | MKEmitter.emit('changeModal', cards, btn) |
| | | } else if (btn.OpenType === 'popview') { |
| | | MKEmitter.emit('changePopview', cards, btn) |
| | | } else if (btn.OpenType === 'innerpage' && btn.pageTemplate === 'page') { |
| | | MKEmitter.emit('changeEditMenu', {MenuID: btn.uuid, copyMenuId: btn.copyMenuId}) |
| | | } else if (btn.OpenType === 'innerpage' && btn.pageTemplate === 'linkpage') { |
| | | MKEmitter.emit('changeEditMenu', {MenuID: btn.linkmenu}) |
| | | } else { |
| | | this.handleElement(item) |
| | | } |
| | | |
| | | MKEmitter.emit('changeModal', cards, btn) |
| | | } else if (btn.OpenType === 'popview') { |
| | | MKEmitter.emit('changePopview', cards, btn) |
| | | } else if (btn.OpenType === 'innerpage' && btn.pageTemplate === 'linkpage') { |
| | | MKEmitter.emit('changeEditMenu', {MenuID: btn.linkmenu}) |
| | | } else { |
| | | if (btn.link === 'page') { |
| | | MKEmitter.emit('changeEditMenu', {MenuID: btn.uuid, copyMenuId: btn.copyMenuId}) |
| | | } else if (btn.link === 'linkpage') { |
| | | MKEmitter.emit('changeEditMenu', {MenuID: btn.linkmenu}) |
| | | } |
| | | this.handleElement(item) |
| | | } |
| | | } |
| | | |
| | |
| | | } else if (card.type === 'multiselect' || card.type === 'select' || card.type === 'link') { |
| | | formItem = (<Select value={_defaultValue}></Select>) |
| | | } else if (card.type === 'date') { |
| | | formItem = (<Input style={{marginTop: '4px'}} placeholder={card.labelShow === 'false' ? card.label : ''} value={card.initval} />) |
| | | let format = 'YYYY-MM-DD' |
| | | if (card.precision === 'hour') { |
| | | format = 'YYYY-MM-DD HH' |
| | | } else if (card.precision === 'minute') { |
| | | format = 'YYYY-MM-DD HH:mm' |
| | | } else if (card.precision === 'second') { |
| | | format = 'YYYY-MM-DD HH:mm:ss' |
| | | } |
| | | formItem = (<DatePicker format={format} value={card.initval ? moment().subtract(card.initval, 'days') : null} />) |
| | | } else if (card.type === 'dateweek') { |
| | | formItem = (<WeekPicker value={card.initval ? moment().subtract(card.initval * 7, 'days') : null} />) |
| | | } else if (card.type === 'datemonth') { |
| | | formItem = (<MonthPicker value={card.initval ? moment().subtract(card.initval, 'month') : null} />) |
| | | } else if (card.type === 'daterange') { |
| | | let format = 'YYYY-MM-DD' |
| | | if (card.precision === 'hour') { |
| | | format = 'YYYY-MM-DD HH' |
| | | } else if (card.precision === 'minute') { |
| | | format = 'YYYY-MM-DD HH:mm' |
| | | } else if (card.precision === 'second') { |
| | | format = 'YYYY-MM-DD HH:mm:ss' |
| | | } |
| | | |
| | | formItem = (<RangePicker |
| | | format={format} |
| | | className="data-range" |
| | | placeholder={['BeginTime', 'EndTime']} |
| | | renderExtraFooter={() => 'extra footer'} |
| | |
| | | |
| | | if (element.OpenType === 'pop' || element.OpenType === 'popview' || element.execMode === 'pop') { |
| | | this.props.setSubConfig(element) |
| | | } else if (element.OpenType === 'innerpage' && element.pageTemplate === 'page') { |
| | | MKEmitter.emit('changeEditMenu', {MenuID: element.uuid, copyMenuId: element.copyMenuId}) |
| | | } else if (element.OpenType === 'innerpage' && element.pageTemplate === 'linkpage') { |
| | | MKEmitter.emit('changeEditMenu', {MenuID: element.linkmenu}) |
| | | } else { |
| | |
| | | } |
| | | } |
| | | |
| | | let formItem = null |
| | | if (card.type === 'text') { |
| | | if (card.inputType !== 'search') { |
| | | formItem = <Input placeholder={card.label} value={card.initval} /> |
| | | } else { |
| | | formItem = <Search placeholder={card.label} value={card.initval} enterButton/> |
| | | } |
| | | |
| | | } else if (card.type === 'multiselect' || card.type === 'select' || card.type === 'link') { |
| | | formItem = <Select placeholder={card.label} value={_defaultValue}></Select> |
| | | } else if (card.type === 'date') { |
| | | let format = 'YYYY-MM-DD' |
| | | if (card.precision === 'hour') { |
| | | format = 'YYYY-MM-DD HH' |
| | | } else if (card.precision === 'minute') { |
| | | format = 'YYYY-MM-DD HH:mm' |
| | | } else if (card.precision === 'second') { |
| | | format = 'YYYY-MM-DD HH:mm:ss' |
| | | } |
| | | formItem = <DatePicker format={format} placeholder={card.label} value={card.initval ? moment().subtract(card.initval, 'days') : null} /> |
| | | } else if (card.type === 'dateweek') { |
| | | formItem = <WeekPicker placeholder={card.label} value={card.initval ? moment().subtract(card.initval * 7, 'days') : null} /> |
| | | } else if (card.type === 'datemonth') { |
| | | formItem = <MonthPicker placeholder={card.label} value={card.initval ? moment().subtract(card.initval, 'month') : null} /> |
| | | } else if (card.type === 'daterange') { |
| | | let format = 'YYYY-MM-DD' |
| | | if (card.precision === 'hour') { |
| | | format = 'YYYY-MM-DD HH' |
| | | } else if (card.precision === 'minute') { |
| | | format = 'YYYY-MM-DD HH:mm' |
| | | } else if (card.precision === 'second') { |
| | | format = 'YYYY-MM-DD HH:mm:ss' |
| | | } |
| | | |
| | | formItem = <RangePicker |
| | | format={format} |
| | | className="data-range" |
| | | placeholder={['BeginTime', 'EndTime']} |
| | | renderExtraFooter={() => 'extra footer'} |
| | | value={_defaultValue} |
| | | /> |
| | | } else if (card.type === 'group') { |
| | | formItem = <DateGroup card={card} /> |
| | | } |
| | | |
| | | return ( |
| | | <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={ |
| | | <div className="mk-popover-control"> |
| | |
| | | label={card.labelShow !== 'false' ? card.label : ''} |
| | | required={card.required === 'true'} |
| | | > |
| | | {card.type === 'text' && card.inputType !== 'search' ? |
| | | <Input placeholder={card.label} value={card.initval} /> : null |
| | | } |
| | | {card.type === 'text' && card.inputType === 'search' ? |
| | | <Search placeholder={card.label} value={card.initval} enterButton/> : null |
| | | } |
| | | {(card.type === 'multiselect' || card.type === 'select' || card.type === 'link') ? |
| | | <Select placeholder={card.label} value={_defaultValue}></Select> : null |
| | | } |
| | | {card.type === 'date' ? |
| | | <DatePicker placeholder={card.label} value={card.initval ? moment().subtract(card.initval, 'days') : null} /> : null |
| | | } |
| | | {card.type === 'dateweek' ? |
| | | <WeekPicker placeholder={card.label} value={card.initval ? moment().subtract(card.initval * 7, 'days') : null} /> : null |
| | | } |
| | | {card.type === 'datemonth' ? |
| | | <MonthPicker placeholder={card.label} value={card.initval ? moment().subtract(card.initval, 'month') : null} /> : null |
| | | } |
| | | {card.type === 'daterange' ? |
| | | <RangePicker |
| | | className="data-range" |
| | | placeholder={['BeginTime', 'EndTime']} |
| | | renderExtraFooter={() => 'extra footer'} |
| | | value={_defaultValue} |
| | | /> : null |
| | | } |
| | | {card.type === 'group' ? <DateGroup card={card} /> : null } |
| | | {formItem} |
| | | </Form.Item> |
| | | </div> |
| | | </div> |
| | |
| | | MKEmitter.emit('changeEditMenu', { |
| | | MenuID: card.setting.type === 'linkmenu' ? card.setting.linkMenuId : card.uuid, |
| | | copyMenuId: card.setting.type === 'menu' ? card.setting.copyMenuId : '', |
| | | clearMenu: card.setting.clearMenu || 'true', |
| | | MenuNo: card.setting.MenuNo || '', |
| | | MenuName: card.setting.name, |
| | | }) |
| | |
| | | initval: setting.copyMenuId || '', |
| | | tooltip: '复制菜单仅在当前菜单创建时有效。', |
| | | required: false, |
| | | options: menulist |
| | | options: menulist, |
| | | controlFields: [ |
| | | {field: 'clearMenu', notNull: true}, |
| | | ], |
| | | }, |
| | | { |
| | | type: 'radio', |
| | | field: 'clearMenu', |
| | | label: '清空关联菜单', |
| | | initval: setting.clearMenu || 'true', |
| | | tooltip: '复制菜单时,是否清空原页面中的关联菜单。', |
| | | required: false, |
| | | options: [ |
| | | {value: 'true', label: '是'}, |
| | | {value: 'false', label: '否'} |
| | | ] |
| | | }, |
| | | { |
| | | type: 'select', |
| | |
| | | MKEmitter.emit('changeEditMenu', { |
| | | MenuID: card.property === 'linkmenu' ? card.linkMenuId : card.MenuID, |
| | | copyMenuId: card.property === 'menu' ? card.copyMenuId : '', |
| | | clearMenu: card.clearMenu || 'true', |
| | | MenuNo: card.MenuNo, |
| | | MenuName: card.name |
| | | }) |
| | |
| | | |
| | | state = { |
| | | property: this.props.menu.property || 'menu', |
| | | copyMenu: this.props.menu.copyMenuId || '', |
| | | appMenus: [], |
| | | } |
| | | |
| | |
| | | render() { |
| | | const { menu, cols } = this.props |
| | | const { getFieldDecorator } = this.props.form |
| | | const { property, appMenus } = this.state |
| | | const { property, appMenus, copyMenu } = this.state |
| | | |
| | | const formItemLayout = { |
| | | labelCol: { |
| | |
| | | {getFieldDecorator('copyMenuId', { |
| | | initialValue: menu.copyMenuId || '' |
| | | })( |
| | | <Select> |
| | | <Select allowClear onChange={(val) => this.setState({copyMenu: val})}> |
| | | {appMenus.map(item => (<Select.Option key={item.MenuID} value={item.MenuID}>{item.MenuName}</Select.Option>))} |
| | | </Select> |
| | | )} |
| | | </Form.Item> |
| | | </Col> : null} |
| | | {property === 'menu' && copyMenu ? <Col span={12}> |
| | | <Form.Item label={ |
| | | <Tooltip placement="topLeft" title="复制菜单时,是否清空原页面中的关联菜单。"> |
| | | <QuestionCircleOutlined className="mk-form-tip" /> |
| | | 清空关联菜单 |
| | | </Tooltip> |
| | | }> |
| | | {getFieldDecorator('clearMenu', { |
| | | initialValue: menu.clearMenu || 'true' |
| | | })( |
| | | <Radio.Group> |
| | | <Radio value="true">是</Radio> |
| | | <Radio value="false">否</Radio> |
| | | </Radio.Group> |
| | | )} |
| | | </Form.Item> |
| | | </Col> : null} |
| | | </Row> |
| | | </Form> |
| | | ) |
| | |
| | | } |
| | | } |
| | | |
| | | changeMenu = (menu) => { |
| | | if (menu.property === 'link') { |
| | | window.open(menu.link) |
| | | } else { |
| | | MKEmitter.emit('changeEditMenu', { |
| | | MenuID: menu.property === 'linkmenu' ? menu.linkMenuId : menu.MenuID, |
| | | copyMenuId: menu.property === 'menu' ? menu.copyMenuId : '', |
| | | MenuNo: menu.MenuNo, |
| | | MenuName: menu.name, |
| | | }) |
| | | } |
| | | } |
| | | |
| | | getSearch = (config) => { |
| | | const { card } = this.state |
| | | |
| | |
| | | }, |
| | | { |
| | | type: 'form', |
| | | label: CommonDict['model.form.datetime'], |
| | | label: '日期(分/秒)', |
| | | subType: 'datetime', |
| | | url: '' |
| | | }, |
| | |
| | | |
| | | let formItem = null |
| | | if (card.type === 'date') { |
| | | let format = 'YYYY-MM-DD' |
| | | if (card.precision === 'hour') { |
| | | format = 'YYYY-MM-DD HH' |
| | | } else if (card.precision === 'minute') { |
| | | format = 'YYYY-MM-DD HH:mm' |
| | | } else if (card.precision === 'second') { |
| | | format = 'YYYY-MM-DD HH:mm:ss' |
| | | } |
| | | formItem = (<div className="am-list-item"> |
| | | <div className="am-list-line"> |
| | | {card.labelShow !== 'false' ? <div className="am-input-label">{card.label}</div> : null} |
| | | <div className="am-input-control">{card.initval ? moment().subtract(card.initval, 'days').format('YYYY-MM-DD') : '请选择'}</div> |
| | | <div className="am-input-control">{card.initval ? moment().subtract(card.initval, 'days').format(format) : '请选择'}</div> |
| | | <div className="am-list-extra"><RightOutlined /></div> |
| | | </div> |
| | | </div>) |
| | |
| | | MKEmitter.emit('changeEditMenu', { |
| | | MenuID: menu.property === 'linkmenu' ? menu.linkMenuId : menu.MenuID, |
| | | copyMenuId: menu.property === 'menu' ? menu.copyMenuId : '', |
| | | clearMenu: menu.clearMenu || 'true', |
| | | MenuNo: menu.MenuNo, |
| | | MenuName: menu.name, |
| | | }) |
| | |
| | | |
| | | state = { |
| | | property: this.props.menu.property || 'menu', |
| | | copyMenu: this.props.menu.copyMenuId || '', |
| | | appMenus: [], |
| | | } |
| | | |
| | |
| | | render() { |
| | | const { menu } = this.props |
| | | const { getFieldDecorator } = this.props.form |
| | | const { property, appMenus } = this.state |
| | | const { property, appMenus, copyMenu } = this.state |
| | | |
| | | const formItemLayout = { |
| | | labelCol: { |
| | |
| | | {getFieldDecorator('copyMenuId', { |
| | | initialValue: menu.copyMenuId || '' |
| | | })( |
| | | <Select allowClear> |
| | | <Select allowClear onChange={(val) => this.setState({copyMenu: val})}> |
| | | {appMenus.map(item => (<Select.Option key={item.MenuID} value={item.MenuID}>{item.MenuName}</Select.Option>))} |
| | | </Select> |
| | | )} |
| | | </Form.Item> |
| | | </Col> : null} |
| | | {property === 'menu' && copyMenu ? <Col span={12}> |
| | | <Form.Item label={ |
| | | <Tooltip placement="topLeft" title="复制菜单时,是否清空原页面中的关联菜单。"> |
| | | <QuestionCircleOutlined className="mk-form-tip" /> |
| | | 清空关联菜单 |
| | | </Tooltip> |
| | | }> |
| | | {getFieldDecorator('clearMenu', { |
| | | initialValue: menu.clearMenu || 'true' |
| | | })( |
| | | <Radio.Group> |
| | | <Radio value="true">是</Radio> |
| | | <Radio value="false">否</Radio> |
| | | </Radio.Group> |
| | | )} |
| | | </Form.Item> |
| | | </Col> : null} |
| | | </Row> |
| | | </Form> |
| | | ) |
| | |
| | | |
| | | verifySubmit = () => { |
| | | this.verifyRef.handleConfirm().then(res => { |
| | | |
| | | |
| | | let parMenuId = sessionStorage.getItem('kei_no') + sessionStorage.getItem('typename') + sessionStorage.getItem('lang') |
| | | let menuId = Utils.getuuid() |
| | | |
| | |
| | | } |
| | | |
| | | if (_config.components) { |
| | | config.components = MenuUtils.resetConfig(_config.components) |
| | | config.components = MenuUtils.resetConfig(_config.components, res.clearMenu === 'true') |
| | | config.tables = _config.tables || [] |
| | | config.style = _config.style || {} |
| | | config.statusBarbgColor = _config.statusBarbgColor || '' |
| | |
| | | <Modal |
| | | title="新建页面" |
| | | visible={visible} |
| | | width={500} |
| | | width={600} |
| | | maskClosable={false} |
| | | okText={dict['model.submit']} |
| | | onOk={this.verifySubmit} |
| | |
| | | import React, {Component} from 'react' |
| | | import PropTypes from 'prop-types' |
| | | import { Form, Row, Col, Select, Input, Tooltip } from 'antd' |
| | | import { Form, Row, Col, Select, Input, Tooltip, Radio } from 'antd' |
| | | import { QuestionCircleOutlined } from '@ant-design/icons' |
| | | |
| | | import './index.scss' |
| | |
| | | } |
| | | |
| | | state = { |
| | | appMenus: [] |
| | | appMenus: [], |
| | | copymenuId: '' |
| | | } |
| | | |
| | | UNSAFE_componentWillMount () { |
| | |
| | | |
| | | render() { |
| | | const { getFieldDecorator } = this.props.form |
| | | const { appMenus } = this.state |
| | | const { appMenus, copymenuId } = this.state |
| | | |
| | | const formItemLayout = { |
| | | labelCol: { |
| | |
| | | {getFieldDecorator('copymenuId', { |
| | | initialValue: '' |
| | | })( |
| | | <Select allowClear showSearch filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0}> |
| | | <Select allowClear showSearch onChange={(val) => this.setState({copymenuId: val})} filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0}> |
| | | {appMenus.map(option => |
| | | <Select.Option key={option.MenuID} value={option.MenuID}>{option.MenuName}</Select.Option> |
| | | )} |
| | |
| | | )} |
| | | </Form.Item> |
| | | </Col> |
| | | {copymenuId ? <Col span={20}> |
| | | <Form.Item label={ |
| | | <Tooltip placement="topLeft" title="复制菜单时,是否清空原页面中的关联菜单。"> |
| | | <QuestionCircleOutlined className="mk-form-tip" /> |
| | | 清空关联菜单 |
| | | </Tooltip> |
| | | }> |
| | | {getFieldDecorator('clearMenu', { |
| | | initialValue: 'true' |
| | | })( |
| | | <Radio.Group> |
| | | <Radio value={'true'}>是</Radio> |
| | | <Radio value={'false'}>否</Radio> |
| | | </Radio.Group> |
| | | )} |
| | | </Form.Item> |
| | | </Col> : null} |
| | | </Row> |
| | | </Form> |
| | | ) |
| | |
| | | if (item.field && data && data[item.field]) { |
| | | item.message = data[item.field] |
| | | } |
| | | delete item.field |
| | | return true |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | if (item.advanced && item.initval) { |
| | | advanceValues.push({field: item.field, type: item.type, label: item.label, value: item.initval}) |
| | | let val = item.initval |
| | | if (item.precision === 'hour') { |
| | | if (/,/ig.test(val)) { |
| | | val = val.split(',').map(m => m + ':00').join(',') |
| | | } else { |
| | | val = val + ':00' |
| | | } |
| | | } |
| | | advanceValues.push({field: item.field, type: item.type, label: item.label, value: val}) |
| | | } |
| | | |
| | | if (item.type === 'group') { |
| | |
| | | record[item.field] = item.initval |
| | | } |
| | | if (item.advanced && item.initval) { |
| | | advanceValues.push({field: item.field, type: item.type, label: item.label, value: item.initval}) |
| | | let val = item.initval |
| | | if (item.precision === 'hour') { |
| | | if (/,/ig.test(val)) { |
| | | val = val.split(',').map(m => m + ':00').join(',') |
| | | } else { |
| | | val = val + ':00' |
| | | } |
| | | } |
| | | advanceValues.push({field: item.field, type: item.type, label: item.label, value: val}) |
| | | } |
| | | |
| | | return item |
| | |
| | | label: item.label, |
| | | match: item.match, |
| | | required: item.required, |
| | | precision: item.precision || '', |
| | | forbid: item.$forbid |
| | | }) |
| | | } |
| | |
| | | |
| | | let val = this.record[item.field] |
| | | if (val || val === 0) { |
| | | if (item.precision === 'hour') { |
| | | if (/,/ig.test(val)) { |
| | | val = val.split(',').map(m => m + ':00').join(',') |
| | | } else { |
| | | val = val + ':00' |
| | | } |
| | | } |
| | | advanceValues.push({field: item.field, type: item.type, label: item.label, value: val}) |
| | | } |
| | | }) |
| | |
| | | } else if (config.type === 'week') { |
| | | mode = 'week' |
| | | format = 'YYYY-MM-DD' |
| | | } else if (config.type === 'daterange') { |
| | | mode = 'daterange' |
| | | format = 'YYYY-MM-DD' |
| | | } else { |
| | | if (config.type === 'daterange') { |
| | | mode = 'daterange' |
| | | } |
| | | if (config.precision === 'day') { |
| | | format = 'YYYY-MM-DD' |
| | | } else if (config.precision === 'hour') { |
| | | format = 'YYYY-MM-DD HH' |
| | | } else if (config.precision === 'minute') { |
| | | format = 'YYYY-MM-DD HH:mm' |
| | | } else if (config.precision === 'second') { |
| | | format = 'YYYY-MM-DD HH:mm:ss' |
| | | } |
| | | } |
| | | let value = config.initval || null |
| | | |
| | |
| | | this.state = { |
| | | value, |
| | | mode, |
| | | precision: config.precision || 'day', |
| | | format |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | render() { |
| | | const { value, mode } = this.state |
| | | const { value, mode, format, precision } = this.state |
| | | |
| | | if (mode === 'date') { |
| | | return <DatePicker value={value} onChange={this.onChange}/> |
| | | return <DatePicker dropdownClassName={'mk-date-picker ' + precision} value={value} showTime={format !== 'YYYY-MM-DD'} format={format} onChange={this.onChange}/> |
| | | } else if (mode === 'month') { |
| | | return <MonthPicker value={value} onChange={this.onChange}/> |
| | | } else if (mode === 'week') { |
| | | return <WeekPicker value={value} onChange={this.onChange}/> |
| | | } else if (mode === 'daterange') { |
| | | return <RangePicker placeholder={['开始日期', '结束日期']} value={value} onChange={this.onChange}/> |
| | | return <RangePicker dropdownClassName={'mk-date-picker ' + precision} placeholder={['开始日期', '结束日期']} showTime={format !== 'YYYY-MM-DD'} format={format} value={value} onChange={this.onChange}/> |
| | | } |
| | | } |
| | | } |
| | |
| | | }, |
| | | { |
| | | type: 'form', |
| | | label: CommonDict['model.form.datetime'], |
| | | label: '日期(分/秒)', |
| | | subType: 'datetime', |
| | | }, |
| | | { |
| | |
| | | } else if (card.type === 'multiselect' || card.type === 'select' || card.type === 'link') { |
| | | formItem = (<Select value={_defaultValue}></Select>) |
| | | } else if (card.type === 'date') { |
| | | formItem = (<DatePicker value={card.initval ? moment().subtract(card.initval, 'days') : null} />) |
| | | let format = 'YYYY-MM-DD' |
| | | if (card.precision === 'hour') { |
| | | format = 'YYYY-MM-DD HH' |
| | | } else if (card.precision === 'minute') { |
| | | format = 'YYYY-MM-DD HH:mm' |
| | | } else if (card.precision === 'second') { |
| | | format = 'YYYY-MM-DD HH:mm:ss' |
| | | } |
| | | formItem = (<DatePicker format={format} value={card.initval ? moment().subtract(card.initval, 'days') : null} />) |
| | | } else if (card.type === 'dateweek') { |
| | | formItem = (<WeekPicker value={card.initval ? moment().subtract(card.initval * 7, 'days') : null} />) |
| | | } else if (card.type === 'datemonth') { |
| | | formItem = (<MonthPicker value={card.initval ? moment().subtract(card.initval, 'month') : null} />) |
| | | } else if (card.type === 'daterange') { |
| | | let format = 'YYYY-MM-DD' |
| | | if (card.precision === 'hour') { |
| | | format = 'YYYY-MM-DD HH' |
| | | } else if (card.precision === 'minute') { |
| | | format = 'YYYY-MM-DD HH:mm' |
| | | } else if (card.precision === 'second') { |
| | | format = 'YYYY-MM-DD HH:mm:ss' |
| | | } |
| | | |
| | | formItem = (<RangePicker |
| | | format={format} |
| | | className="data-range" |
| | | placeholder={['BeginTime', 'EndTime']} |
| | | renderExtraFooter={() => 'extra footer'} |
| | |
| | | select: ['label', 'field', 'resourceType', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced', 'setAll', 'dropdown', 'query'], |
| | | multiselect: ['label', 'field', 'resourceType', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced', 'query'], |
| | | link: ['label', 'field', 'resourceType', 'initval', 'type', 'linkField', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced', 'setAll', 'dropdown', 'query'], |
| | | date: ['label', 'field', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced', 'query'], |
| | | date: ['label', 'field', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced', 'query', 'precision'], |
| | | checkcard: ['label', 'field', 'initval', 'type', 'match', 'ratio', 'blacklist', 'resourceType', 'display', 'width', 'multiple', 'borderColor', 'required', 'Hide', 'labelShow', 'advanced', 'query'], |
| | | dateweek: ['label', 'field', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced', 'query'], |
| | | datemonth: ['label', 'field', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced', 'query'], |
| | | daterange: ['label', 'field', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced', 'query'], |
| | | daterange: ['label', 'field', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced', 'query', 'precision'], |
| | | group: ['label', 'type', 'field', 'datefield', 'initval', 'blacklist', 'ratio', 'items', 'required', 'labelShow', 'query'], |
| | | range: ['label', 'type', 'field', 'initval', 'match', 'blacklist', 'Hide', 'required', 'maxValue', 'minValue', 'step', 'labelShow', 'query'] |
| | | } |
| | |
| | | }, |
| | | { |
| | | type: 'radio', |
| | | key: 'precision', |
| | | label: '精确度', |
| | | initVal: card.precision || 'day', |
| | | options: [{ |
| | | value: 'day', |
| | | text: '天' |
| | | }, { |
| | | value: 'hour', |
| | | text: '小时' |
| | | }, { |
| | | value: 'minute', |
| | | text: '分钟' |
| | | }, { |
| | | value: 'second', |
| | | text: '秒' |
| | | }] |
| | | }, |
| | | { |
| | | type: 'radio', |
| | | key: 'required', |
| | | label: Formdict['model.required'], |
| | | initVal: card.required || 'false', |
| | |
| | | key: 'advanced', |
| | | label: '高级搜索', |
| | | initVal: card.advanced || 'false', |
| | | tooltip: '在隐藏搜索按钮时,高级搜索无效。', |
| | | forbid: appType === 'mob', |
| | | options: [{ |
| | | value: 'true', |
| | |
| | | text: Formdict['model.form.datemonth'] |
| | | }, { |
| | | value: 'datetime', |
| | | text: Formdict['model.form.datetime'] |
| | | text: '日期(分/秒)' |
| | | }, { |
| | | value: 'textarea', |
| | | text: Formdict['model.form.textarea'] |
| | |
| | | text: Formdict['model.form.datemonth'] |
| | | }, { |
| | | value: 'datetime', |
| | | text: Formdict['model.form.datetime'] |
| | | text: '日期(分/秒)' |
| | | }, { |
| | | value: 'textarea', |
| | | text: Formdict['model.form.textarea'] |
| | |
| | | * @description 重置菜单配置,页面整体复制 |
| | | * @return {String} components 配置信息 |
| | | */ |
| | | static resetConfig = (components, uuids = {}) => { |
| | | static resetConfig = (components, uuids = {}, clear = false) => { |
| | | return components.map(item => { |
| | | if (item.type === 'navbar') { |
| | | return item |
| | |
| | | cell.parentId = item.uuid |
| | | return cell |
| | | }) |
| | | tab.components = this.resetConfig(tab.components, uuids) |
| | | tab.components = this.resetConfig(tab.components, uuids, clear) |
| | | }) |
| | | } else if (item.type === 'group') { |
| | | item.components = item.components.map(cell => { |
| | | cell.parentId = item.uuid |
| | | return cell |
| | | }) |
| | | item.components = this.resetConfig(item.components, uuids) |
| | | item.components = this.resetConfig(item.components, uuids, clear) |
| | | } else if (item.type === 'menubar') { |
| | | item.subMenus = item.subMenus.map(cell => { |
| | | cell.uuid = this.getuuid() |
| | | if (clear && cell.setting.type === 'linkmenu') { |
| | | cell.setting.type = 'menu' |
| | | cell.setting.linkMenuId = '' |
| | | } |
| | | return cell |
| | | }) |
| | | } else if (['card', 'carousel', 'timeline'].includes(item.type) || (item.type === 'table' && item.subtype === 'tablecard')) { |
| | | item.subcards.forEach(card => { |
| | | card.uuid = this.getuuid() |
| | | |
| | | if (clear) { |
| | | if (card.setting.click === 'menu') { |
| | | card.setting.click = '' |
| | | card.setting.menu = '' |
| | | } else if (card.setting.click === 'menus') { |
| | | card.setting.click = '' |
| | | card.setting.menuType = '' |
| | | delete card.menus |
| | | } |
| | | } |
| | | |
| | | if (card.elements) { |
| | | card.elements = card.elements.map(cell => { |
| | | cell.uuid = this.getuuid() |
| | | |
| | | if (clear && cell.eleType === 'button' && cell.pageTemplate === 'linkpage' && cell.linkmenu) { |
| | | cell.pageTemplate = '' |
| | | cell.linkmenu = '' |
| | | } |
| | | |
| | | return cell |
| | | }) |
| | | } |
| | | if (card.backElements) { |
| | | card.backElements = card.backElements.map(cell => { |
| | | cell.uuid = this.getuuid() |
| | | |
| | | if (clear && cell.eleType === 'button' && cell.pageTemplate === 'linkpage' && cell.linkmenu) { |
| | | cell.pageTemplate = '' |
| | | cell.linkmenu = '' |
| | | } |
| | | |
| | | return cell |
| | | }) |
| | | } |
| | |
| | | if (item.elements) { |
| | | item.elements = item.elements.map(cell => { |
| | | cell.uuid = this.getuuid() |
| | | |
| | | if (clear && cell.eleType === 'button' && cell.pageTemplate === 'linkpage' && cell.linkmenu) { |
| | | cell.pageTemplate = '' |
| | | cell.linkmenu = '' |
| | | } |
| | | |
| | | return cell |
| | | }) |
| | | } |
| | |
| | | } else if (c.type === 'custom' && c.elements) { |
| | | c.elements = c.elements.map(cell => { |
| | | cell.uuid = this.getuuid() |
| | | |
| | | return cell |
| | | }) |
| | | } else if (c.type === 'action' && c.elements) { |
| | | c.elements = c.elements.map(cell => { |
| | | cell.uuid = this.getuuid() |
| | | |
| | | if (clear && cell.pageTemplate === 'linkpage' && cell.linkmenu) { |
| | | cell.pageTemplate = '' |
| | | cell.linkmenu = '' |
| | | } |
| | | |
| | | return cell |
| | | }) |
| | | } |
| | |
| | | oriUids[cell.uuid] = _uuid |
| | | cell.uuid = _uuid |
| | | |
| | | if (clear && cell.pageTemplate === 'linkpage' && cell.linkmenu) { |
| | | cell.pageTemplate = '' |
| | | cell.linkmenu = '' |
| | | } |
| | | |
| | | return cell |
| | | }) |
| | | } |
| | |
| | | return cell |
| | | }) |
| | | } |
| | | if (clear && item.wrap.menus) { |
| | | item.wrap.menus = [] |
| | | } |
| | | } else if (item.search) { |
| | | item.search = item.search.map(cell => { |
| | | cell.uuid = this.getuuid() |
| | |
| | | item.$forbid = item.query === 'false' |
| | | |
| | | if (item.type === 'date') { // 时间搜索 |
| | | item.initval = item.initval ? moment().subtract(item.initval, 'days').format('YYYY-MM-DD') : '' |
| | | item.precision = item.precision || 'day' |
| | | let format = 'YYYY-MM-DD' |
| | | if (item.precision === 'day') { |
| | | |
| | | } else if (item.precision === 'hour') { |
| | | format = 'YYYY-MM-DD HH' |
| | | } else if (item.precision === 'minute') { |
| | | format = 'YYYY-MM-DD HH:mm' |
| | | } else if (item.precision === 'second') { |
| | | format = 'YYYY-MM-DD HH:mm:ss' |
| | | } |
| | | |
| | | item.initval = item.initval ? moment().subtract(item.initval, 'days').format(format) : '' |
| | | } else if (item.type === 'datemonth') { |
| | | item.initval = item.initval ? moment().subtract(item.initval, 'month').format('YYYY-MM') : '' |
| | | } else if (item.type === 'dateweek') { |
| | | item.initval = item.initval ? moment().subtract(item.initval * 7, 'days').format('YYYY-MM-DD') : '' |
| | | } else if (item.type === 'daterange') { |
| | | item.precision = item.precision || 'day' |
| | | let format = 'YYYY-MM-DD' |
| | | if (item.precision === 'day') { |
| | | |
| | | } else if (item.precision === 'hour') { |
| | | format = 'YYYY-MM-DD HH' |
| | | } else if (item.precision === 'minute') { |
| | | format = 'YYYY-MM-DD HH:mm' |
| | | } else if (item.precision === 'second') { |
| | | format = 'YYYY-MM-DD HH:mm:ss' |
| | | } |
| | | if (item.initval === 'week') { |
| | | item.initval = [moment().startOf('week').format('YYYY-MM-DD'), moment().endOf('week').format('YYYY-MM-DD')].join(',') |
| | | item.initval = [moment().startOf('week').format(format), moment().endOf('week').format(format)].join(',') |
| | | } else if (item.initval === 'month') { |
| | | item.initval = [moment().startOf('month').format('YYYY-MM-DD'), moment().endOf('month').format('YYYY-MM-DD')].join(',') |
| | | item.initval = [moment().startOf('month').format(format), moment().endOf('month').format(format)].join(',') |
| | | } else if (item.initval) { |
| | | try { |
| | | let _initval = JSON.parse(item.initval) |
| | | let _vals = [moment().subtract(_initval[0], 'days').format('YYYY-MM-DD'), moment().subtract(_initval[1], 'days').format('YYYY-MM-DD')] |
| | | let _vals = [moment().subtract(_initval[0], 'days').format(format), moment().subtract(_initval[1], 'days').format(format)] |
| | | item.initval = _vals.join(',') |
| | | } catch (e) { |
| | | item.initval = '' |
| | |
| | | label: cell.label, |
| | | value: cell.initval, |
| | | required: cell.required, |
| | | precision: cell.precision || '', |
| | | forbid: cell.$forbid |
| | | } |
| | | |
| | |
| | | let _val = item.value || '' |
| | | |
| | | if (_val) { |
| | | if (item.match === '<' || item.match === '<=') { |
| | | _val = moment(_val, 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' |
| | | } else if (item.match === '>' || item.match === '>=') { |
| | | _val = _val + ' 00:00:00.000' |
| | | if (item.precision === 'day') { |
| | | if (item.match === '<' || item.match === '<=') { |
| | | _val = moment(_val, 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' |
| | | } else if (item.match === '>' || item.match === '>=') { |
| | | _val = _val + ' 00:00:00.000' |
| | | } |
| | | } else if (item.precision === 'hour') { |
| | | _val = _val + ':00:00.000' |
| | | } else if (item.precision === 'minute') { |
| | | _val = _val + ':00.000' |
| | | } else if (item.precision === 'second') { |
| | | _val = _val + '.000' |
| | | } |
| | | } |
| | | |
| | |
| | | let _endval = '' |
| | | if (item.value) { |
| | | let val = item.value.split(',') |
| | | _startval = val[0] + ' 00:00:00.000' |
| | | _endval = moment(val[1], 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' |
| | | |
| | | if (item.precision === 'day') { |
| | | _startval = val[0] + ' 00:00:00.000' |
| | | _endval = moment(val[1], 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' |
| | | } else if (item.precision === 'hour') { |
| | | _startval = val[0] + ':00:00.000' |
| | | _endval = val[1] + ':00:00.000' |
| | | } else if (item.precision === 'minute') { |
| | | _startval = val[0] + ':00.000' |
| | | _endval = val[1] + ':00.000' |
| | | } else if (item.precision === 'second') { |
| | | _startval = val[0] + '.000' |
| | | _endval = val[1] + '.000' |
| | | } |
| | | } |
| | | |
| | | newsearches[item.key] = _startval |
| | |
| | | searchText += `'${item.value}' ${item.match} '%'+${item.key}+'%'` |
| | | } else if (item.type === 'date') { |
| | | let _val = item.value |
| | | let timetail = ' 00:00:00.000' |
| | | let timetail = '' |
| | | let _match = item.match |
| | | |
| | | if (item.match === '<' || item.match === '<=') { // 时间为<=时,匹配后一天的0点,匹配方式为< |
| | | _match = '<' |
| | | _val = moment(_val, 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') |
| | | } else if (item.match === '=') { |
| | | if (item.precision === 'day') { |
| | | _val = moment(_val, 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') |
| | | } |
| | | } |
| | | if (item.match === '=') { |
| | | timetail = '' |
| | | } else if (item.precision === 'day') { |
| | | timetail = ' 00:00:00.000' |
| | | } else if (item.precision === 'hour') { |
| | | timetail = ':00:00.000' |
| | | } else if (item.precision === 'minute') { |
| | | timetail = ':00.000' |
| | | } else if (item.precision === 'second') { |
| | | timetail = '.000' |
| | | } |
| | | |
| | | searchText += '(' + item.key + ' ' + _match + ' \'' + _val + timetail + '\')' |
| | |
| | | searchText += '(' + item.key + ' >= \'' + _startval + '\' AND ' + item.key + ' < \'' + _endval + '\')' |
| | | } else if (item.type === 'daterange') { |
| | | let val = item.value.split(',') |
| | | let _startval = val[0] + ' 00:00:00.000' |
| | | let _endval = moment(val[1], 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' |
| | | let _startval = '' |
| | | let _endval = '' |
| | | |
| | | if (item.precision === 'day') { |
| | | _startval = val[0] + ' 00:00:00.000' |
| | | _endval = moment(val[1], 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' |
| | | } else if (item.precision === 'hour') { |
| | | _startval = val[0] + ':00:00.000' |
| | | _endval = val[1] + ':00:00.000' |
| | | } else if (item.precision === 'minute') { |
| | | _startval = val[0] + ':00.000' |
| | | _endval = val[1] + ':00.000' |
| | | } else if (item.precision === 'second') { |
| | | _startval = val[0] + '.000' |
| | | _endval = val[1] + '.000' |
| | | } |
| | | |
| | | searchText += '(' + item.key + ' >= \'' + _startval + '\' AND ' + item.key + ' < \'' + _endval + '\')' |
| | | } else if (item.type === 'range') { |
| | |
| | | fieldmap.set(item.key, true) |
| | | |
| | | if (item.type === 'date') { |
| | | if (['>=', '>'].includes(item.match)) { |
| | | item.value = item.value ? item.value + ' 00:00:00.000' : '1970-01-01 00:00:00.000' |
| | | } else if (['<=', '<'].includes(item.match)) { |
| | | item.value = item.value ? moment(item.value, 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' : '2050-01-01 00:00:00.000' |
| | | if (!item.value) { |
| | | if (['>=', '>'].includes(item.match)) { |
| | | item.value = '1970-01-01 00:00:00.000' |
| | | } else if (['<=', '<'].includes(item.match)) { |
| | | item.value = '2050-01-01 00:00:00.000' |
| | | } |
| | | } else if (search.precision === 'day') { |
| | | if (['>=', '>'].includes(item.match)) { |
| | | item.value = item.value + ' 00:00:00.000' |
| | | } else if (['<=', '<'].includes(item.match)) { |
| | | item.value = moment(item.value, 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' |
| | | } |
| | | } else if (search.precision === 'hour') { |
| | | item.value = item.value + ':00:00.000' |
| | | } else if (search.precision === 'minute') { |
| | | item.value = item.value + ':00.000' |
| | | } else if (search.precision === 'second') { |
| | | item.value = item.value + '.000' |
| | | } |
| | | |
| | | options.push(item) |
| | |
| | | } else if (item.type === 'daterange') { |
| | | let _startval = '1970-01-01 00:00:00.000' |
| | | let _endval = '2050-01-01 00:00:00.000' |
| | | |
| | | |
| | | if (item.value) { |
| | | let val = item.value.split(',') |
| | | _startval = val[0] + ' 00:00:00.000' |
| | | _endval = moment(val[1], 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' |
| | | |
| | | if (search.precision === 'day') { |
| | | _startval = val[0] + ' 00:00:00.000' |
| | | _endval = moment(val[1], 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' |
| | | } else if (search.precision === 'hour') { |
| | | _startval = val[0] + ':00:00.000' |
| | | _endval = val[1] + ':00:00.000' |
| | | } else if (search.precision === 'minute') { |
| | | _startval = val[0] + ':00.000' |
| | | _endval = val[1] + ':00.000' |
| | | } else if (search.precision === 'second') { |
| | | _startval = val[0] + '.000' |
| | | _endval = val[1] + '.000' |
| | | } |
| | | } |
| | | |
| | | let copy = JSON.parse(JSON.stringify(item)) |
| | |
| | | let param = { |
| | | MenuID: menu.MenuID, |
| | | copyMenuId: menu.copyMenuId || '', |
| | | clearMenu: menu.clearMenu !== 'false', |
| | | type: 'view' |
| | | } |
| | | |
| | |
| | | } |
| | | } |
| | | } else { |
| | | config.components = MenuUtils.resetConfig(config.components) |
| | | config.components = MenuUtils.resetConfig(config.components, {}, urlParam.clearMenu) |
| | | config.enabled = false |
| | | message.success('复制成功,保存后生效。') |
| | | } |
| | |
| | | let param = { |
| | | MenuID: menu.MenuID, |
| | | copyMenuId: menu.copyMenuId || '', |
| | | clearMenu: menu.clearMenu !== 'false', |
| | | type: 'view' |
| | | } |
| | | |
| | |
| | | } |
| | | } |
| | | } else { |
| | | config.components = MenuUtils.resetConfig(config.components) |
| | | config.components = MenuUtils.resetConfig(config.components, {}, urlParam.clearMenu) |
| | | config.enabled = false |
| | | message.success('复制成功,保存后生效。') |
| | | } |