king
2022-03-09 1b913a7b9ceace4909594225a201efe9fbae93d3
2022-03-09
31个文件已修改
4个文件已删除
1059 ■■■■■ 已修改文件
public/options.json 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/css/main.scss 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/mutilform/index.jsx 211 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/mutilform/index.scss 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/simpleform/index.jsx 198 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/simpleform/index.scss 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/locales/en-US/model.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/locales/zh-CN/model.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/menu/components/card/cardcellcomponent/formconfig.jsx 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/menu/components/card/cardcellcomponent/index.jsx 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/menu/components/search/main-search/dragsearch/card.jsx 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/menu/components/share/actioncomponent/index.jsx 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/menu/components/share/searchcomponent/dragsearch/card.jsx 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/mob/components/menubar/normal-menubar/menucomponent/index.jsx 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/mob/components/menubar/normal-menubar/menucomponent/options.jsx 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/mob/components/navbar/normal-navbar/menus/drags/card.jsx 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/mob/components/navbar/normal-navbar/menus/menuform/index.jsx 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/mob/components/topbar/normal-navbar/index.jsx 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/mob/modalconfig/source.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/mob/searchconfig/searchdragelement/card.jsx 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pc/components/navbar/normal-navbar/index.jsx 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pc/components/navbar/normal-navbar/menusetting/menuform/index.jsx 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pc/createview/index.jsx 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pc/createview/settingform/index.jsx 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/tabviews/zshare/mutilform/index.jsx 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/tabviews/zshare/topSearch/index.jsx 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/tabviews/zshare/topSearch/mkDatePicker/index.jsx 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/modalconfig/source.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/searchcomponent/dragsearch/card.jsx 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/searchcomponent/searchform/index.jsx 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/zshare/formconfig.jsx 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/utils-custom.js 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/utils.js 139 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mobdesign/index.jsx 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/pcdesign/index.jsx 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/options.json
@@ -1,17 +1,17 @@
{
  "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/"
}
src/assets/css/main.scss
@@ -123,15 +123,18 @@
}
// 重置时间插件时间滚动条
.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);
@@ -163,7 +166,7 @@
  width: 100%;
  display: inline-block;
  .ant-calendar-picker {
    width: 100%;
    width: 100%!important;
  }
}
.ant-calendar-picker-container {
@@ -443,4 +446,26 @@
// }
// .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;
    }
  }
}
src/components/mutilform/index.jsx
File was deleted
src/components/mutilform/index.scss
File was deleted
src/components/simpleform/index.jsx
File was deleted
src/components/simpleform/index.scss
File was deleted
src/locales/en-US/model.js
@@ -100,7 +100,6 @@
  '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)',
src/locales/zh-CN/model.js
@@ -100,7 +100,6 @@
  'model.form.link': '联动菜单',
  'model.form.linkform': '关联表单',
  'model.form.dateday': '日期(天)',
  'model.form.datetime': '日期(分/秒)',
  'model.form.dateweek': '日期(周)',
  'model.form.datemonth': '日期(月)',
  'model.form.daterange': '日期(区间)',
src/menu/components/card/cardcellcomponent/formconfig.jsx
@@ -465,15 +465,6 @@
    //     { value: 'self', text: '当前页面' }
    //   ]
    // },
    // {
    //   type: 'select',
    //   key: 'copyMenuId',
    //   label: '复制菜单',
    //   initVal: card.copyMenuId || '',
    //   required: false,
    //   forbid: !isApp,
    //   options: appMenus
    // },
    {
      type: 'select',
      key: 'linkurl',
src/menu/components/card/cardcellcomponent/index.jsx
@@ -525,33 +525,23 @@
    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)
    }
  }
src/menu/components/search/main-search/dragsearch/card.jsx
@@ -69,13 +69,31 @@
  } 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'}
src/menu/components/share/actioncomponent/index.jsx
@@ -410,8 +410,6 @@
    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 {
src/menu/components/share/searchcomponent/dragsearch/card.jsx
@@ -58,6 +58,51 @@
    }
  }
  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">
@@ -74,33 +119,7 @@
            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>
src/mob/components/menubar/normal-menubar/menucomponent/index.jsx
@@ -110,6 +110,7 @@
      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,
      })
src/mob/components/menubar/normal-menubar/menucomponent/options.jsx
@@ -64,7 +64,22 @@
      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',
src/mob/components/navbar/normal-navbar/menus/drags/card.jsx
@@ -36,6 +36,7 @@
      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
      })
src/mob/components/navbar/normal-navbar/menus/menuform/index.jsx
@@ -18,6 +18,7 @@
  state = {
    property: this.props.menu.property || 'menu',
    copyMenu: this.props.menu.copyMenuId || '',
    appMenus: [],
  }
@@ -75,7 +76,7 @@
  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: {
@@ -210,12 +211,29 @@
              {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>
    )
src/mob/components/topbar/normal-navbar/index.jsx
@@ -130,19 +130,6 @@
    }
  }
  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
src/mob/modalconfig/source.jsx
@@ -72,7 +72,7 @@
  },
  {
    type: 'form',
    label: CommonDict['model.form.datetime'],
    label: '日期(分/秒)',
    subType: 'datetime',
    url: ''
  },
src/mob/searchconfig/searchdragelement/card.jsx
@@ -47,10 +47,18 @@
  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>)
src/pc/components/navbar/normal-navbar/index.jsx
@@ -140,6 +140,7 @@
    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,
    })
src/pc/components/navbar/normal-navbar/menusetting/menuform/index.jsx
@@ -15,6 +15,7 @@
  state = {
    property: this.props.menu.property || 'menu',
    copyMenu: this.props.menu.copyMenuId || '',
    appMenus: [],
  }
@@ -72,7 +73,7 @@
  render() {
    const { menu } = this.props
    const { getFieldDecorator } = this.props.form
    const { property, appMenus } = this.state
    const { property, appMenus, copyMenu } = this.state
    const formItemLayout = {
      labelCol: {
@@ -193,12 +194,29 @@
              {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>
    )
src/pc/createview/index.jsx
@@ -29,8 +29,6 @@
  verifySubmit = () => {
    this.verifyRef.handleConfirm().then(res => {
      let parMenuId = sessionStorage.getItem('kei_no') + sessionStorage.getItem('typename') + sessionStorage.getItem('lang')
      let menuId = Utils.getuuid()
@@ -163,7 +161,7 @@
          }
          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 || ''
@@ -208,7 +206,7 @@
        <Modal
          title="新建页面"
          visible={visible}
          width={500}
          width={600}
          maskClosable={false}
          okText={dict['model.submit']}
          onOk={this.verifySubmit}
src/pc/createview/settingform/index.jsx
@@ -1,6 +1,6 @@
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'
@@ -11,7 +11,8 @@
  }
  state = {
    appMenus: []
    appMenus: [],
    copymenuId: ''
  }
  UNSAFE_componentWillMount () {
@@ -44,7 +45,7 @@
  render() {
    const { getFieldDecorator } = this.props.form
    const { appMenus } = this.state
    const { appMenus, copymenuId } = this.state
    const formItemLayout = {
      labelCol: {
@@ -113,7 +114,7 @@
              {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>
                  )}
@@ -121,6 +122,23 @@
              )}
            </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>
    )
src/tabviews/zshare/mutilform/index.jsx
@@ -82,6 +82,7 @@
        if (item.field && data && data[item.field]) {
          item.message = data[item.field]
        }
        delete item.field
        return true
      }
src/tabviews/zshare/topSearch/index.jsx
@@ -116,7 +116,15 @@
      }
      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') {
@@ -580,7 +588,15 @@
        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
@@ -667,6 +683,7 @@
          label: item.label,
          match: item.match,
          required: item.required,
          precision: item.precision || '',
          forbid: item.$forbid
        })
      }
@@ -684,6 +701,13 @@
      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})
      }
    })
src/tabviews/zshare/topSearch/mkDatePicker/index.jsx
@@ -23,9 +23,19 @@
    } 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
@@ -43,6 +53,7 @@
    this.state = {
      value,
      mode,
      precision: config.precision || 'day',
      format
    }
  }
@@ -74,16 +85,16 @@
  }
  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}/>
    }
  }
}
src/templates/modalconfig/source.jsx
@@ -136,7 +136,7 @@
  },
  {
    type: 'form',
    label: CommonDict['model.form.datetime'],
    label: '日期(分/秒)',
    subType: 'datetime',
  },
  {
src/templates/sharecomponent/searchcomponent/dragsearch/card.jsx
@@ -76,13 +76,31 @@
  } 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'}
src/templates/sharecomponent/searchcomponent/searchform/index.jsx
@@ -98,11 +98,11 @@
  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']
}
src/templates/zshare/formconfig.jsx
@@ -651,6 +651,25 @@
    },
    {
      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',
@@ -746,6 +765,7 @@
      key: 'advanced',
      label: '高级搜索',
      initVal: card.advanced || 'false',
      tooltip: '在隐藏搜索按钮时,高级搜索无效。',
      forbid: appType === 'mob',
      options: [{
        value: 'true',
@@ -2270,7 +2290,7 @@
    text: Formdict['model.form.datemonth']
  }, {
    value: 'datetime',
    text: Formdict['model.form.datetime']
    text: '日期(分/秒)'
  }, {
    value: 'textarea',
    text: Formdict['model.form.textarea']
@@ -2335,7 +2355,7 @@
      text: Formdict['model.form.datemonth']
    }, {
      value: 'datetime',
      text: Formdict['model.form.datetime']
      text: '日期(分/秒)'
    }, {
      value: 'textarea',
      text: Formdict['model.form.textarea']
src/utils/utils-custom.js
@@ -332,7 +332,7 @@
   * @description 重置菜单配置,页面整体复制
   * @return {String}  components 配置信息
   */
  static resetConfig = (components, uuids = {}) => {
  static resetConfig = (components, uuids = {}, clear = false) => {
    return components.map(item => {
      if (item.type === 'navbar') {
        return item
@@ -352,31 +352,59 @@
            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
            })
          }
@@ -385,6 +413,12 @@
        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
          })
        }
@@ -398,11 +432,18 @@
            } 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
              })
            }
@@ -456,6 +497,11 @@
          oriUids[cell.uuid] = _uuid
          cell.uuid = _uuid
          if (clear && cell.pageTemplate === 'linkpage' && cell.linkmenu) {
            cell.pageTemplate = ''
            cell.linkmenu = ''
          }
          return cell
        })
      }
@@ -476,6 +522,9 @@
            return cell
          })
        }
        if (clear && item.wrap.menus) {
          item.wrap.menus = []
        }
      } else if (item.search) {
        item.search = item.search.map(cell => {
          cell.uuid = this.getuuid()
src/utils/utils.js
@@ -251,20 +251,43 @@
      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 = ''
@@ -358,6 +381,7 @@
        label: cell.label,
        value: cell.initval,
        required: cell.required,
        precision: cell.precision || '',
        forbid: cell.$forbid
      }
      
@@ -398,10 +422,18 @@
        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'
          }
        }
@@ -437,8 +469,20 @@
        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
@@ -479,14 +523,25 @@
        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 + '\')'
@@ -502,8 +557,22 @@
        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') {
@@ -543,10 +612,24 @@
      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)
@@ -577,11 +660,23 @@
      } 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))
src/views/mobdesign/index.jsx
@@ -264,6 +264,7 @@
    let param = {
      MenuID: menu.MenuID,
      copyMenuId: menu.copyMenuId || '',
      clearMenu: menu.clearMenu !== 'false',
      type: 'view'
    }
@@ -747,7 +748,7 @@
          }
        }
      } else {
        config.components = MenuUtils.resetConfig(config.components)
        config.components = MenuUtils.resetConfig(config.components, {}, urlParam.clearMenu)
        config.enabled = false
        message.success('复制成功,保存后生效。')
      }
src/views/pcdesign/index.jsx
@@ -215,6 +215,7 @@
    let param = {
      MenuID: menu.MenuID,
      copyMenuId: menu.copyMenuId || '',
      clearMenu: menu.clearMenu !== 'false',
      type: 'view'
    }
@@ -747,7 +748,7 @@
          }
        }
      } else {
        config.components = MenuUtils.resetConfig(config.components)
        config.components = MenuUtils.resetConfig(config.components, {}, urlParam.clearMenu)
        config.enabled = false
        message.success('复制成功,保存后生效。')
      }