king
2020-07-06 3193df5faaacb0fe903ce993b16319276528524f
2020-07-06
13个文件已修改
2个文件已添加
410 ■■■■■ 已修改文件
src/components/tabview/index.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/locales/en-US/model.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/locales/zh-CN/model.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/index.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/tabviews/commontable/index.jsx 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/tabviews/zshare/actionList/newpagebutton/index.jsx 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/tabviews/zshare/actionList/tabbutton/index.jsx 46 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/comtableconfig/index.jsx 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/actioncomponent/actionform/index.jsx 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/actioncomponent/index.jsx 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/columncomponent/gridbtnform/index.jsx 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/columncomponent/index.jsx 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/zshare/formconfig.jsx 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/pay/index.jsx 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/pay/index.scss 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/tabview/index.jsx
@@ -104,7 +104,7 @@
    } else if (view.type === 'CommonTable' || view.type === 'ManageTable') {
      return (<CommonTable MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} key={view.MenuID} param={view.param}/>)
    } else if (view.type === 'TreePage') {
      return (<TreePage MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} key={view.MenuID}/>)
      return (<TreePage MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} key={view.MenuID} param={view.param}/>)
    } else if (view.type === 'VerupTable') {
      return (<VerupTable MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} key={view.MenuID}/>)
    } else if (view.type === 'ScriptTable') {
src/locales/en-US/model.js
@@ -37,6 +37,7 @@
  'model.switch.close': 'Close',
  'model.menu.level1': 'Level 1 menu',
  'model.menu.level2': 'Level 2 menu',
  'model.menu.level3': 'Level 3 menu',
  'model.menu.all': 'All',
  'model.menu.selected': 'Selected',
  'model.menu.itemUnit': 'Item',
@@ -196,7 +197,7 @@
  'header.form.display': '显示方式',
  'header.form.dropdown': '下拉菜单',
  'header.form.button': '按钮',
  'header.form.style': '风格',
  'model.form.style': '风格',
  'model.form.color': 'Color',
  'header.form.order': '排列',
  'header.form.horizontal': '横向',
src/locales/zh-CN/model.js
@@ -37,6 +37,7 @@
  'model.switch.close': '关',
  'model.menu.level1': '一级菜单',
  'model.menu.level2': '二级菜单',
  'model.menu.level3': '三级菜单',
  'model.menu.all': '全部',
  'model.menu.selected': '已选择',
  'model.menu.itemUnit': '项',
@@ -196,7 +197,7 @@
  'header.form.display': '显示方式',
  'header.form.dropdown': '下拉菜单',
  'header.form.button': '按钮',
  'header.form.style': '风格',
  'model.form.style': '风格',
  'model.form.color': '颜色',
  'header.form.order': '排列',
  'header.form.horizontal': '横向',
src/router/index.js
@@ -5,6 +5,7 @@
import asyncComponent from '@/utils/asyncComponent'
import asyncLoadComponent from '@/utils/asyncLoadComponent'
const Pay = asyncLoadComponent(() => import('@/views/pay'))
const Main = asyncLoadComponent(() => import('@/views/main'))
const Login = asyncLoadComponent(() => import('@/views/login'))
const NotFound = asyncComponent(() => import('@/views/404'))
@@ -14,6 +15,7 @@
const routers = [
  {path: '/login', name: 'login', component: Login, auth: false},
  {path: '/pay/:param', name: 'pay', component: Pay, auth: false},
  {path: '/print/:param', name: 'print', component: PrintT, auth: false},
  {path: '/ssologin/:param', name: 'ssologin', auth: true},
  {path: '/main', name: 'main', component: Main, auth: true},
src/tabviews/commontable/index.jsx
@@ -44,6 +44,7 @@
  state = {
    dict: sessionStorage.getItem('lang') !== 'en-US' ? zhCN : enUS,
    ContainerId: Utils.getuuid(), // 菜单外层html Id
    BID: null,            // 页面跳转时携带ID
    loadingview: true,    // 页面加载中
    viewlost: false,      // 页面丢失:1、未获取到配置-页面丢失;2、页面未启用
    lostmsg: '',          // 页面丢失时的提示信息
@@ -381,6 +382,7 @@
      }
      this.setState({
        BID: param && param.BID ? param.BID : '',
        loadingview: false,
        chartId: chartId,
        config: config,
@@ -537,6 +539,10 @@
          arr_field: _option.field
        }
        if (this.state.BID) {
          param.BID = this.state.BID
        }
        if (this.props.dataManager) { // 数据权限
          param.LText = param.LText.replace(/\$@/ig, '/*')
          param.LText = param.LText.replace(/@\$/ig, '*/')
@@ -610,7 +616,7 @@
   * @description 主表数据加载
   */ 
  async loadmaindata () {
    const { setting, BIDs, search } = this.state
    const { setting, BIDs, search, BID } = this.state
    let param = ''
    let requireFields = search.filter(item => item.required && (!item.value || item.value.length === 0))
@@ -635,6 +641,8 @@
    } else {
      param = this.getDefaultParam()
    }
    param.BID = BID
    let result = await Api.genericInterface(param)
    if (result.status) {
@@ -889,8 +897,8 @@
   * @description 页面刷新,重新获取配置
   */
  reloadview = () => {
    this.setState({ loadingview: true, viewlost: false, lostmsg: '', config: {}, userConfig: null, searchlist: null,
      actions: null, columns: null, arr_field: '', setting: null, data: null, total: 0, loading: false, pageIndex: 1,
    this.setState({ loadingview: true, viewlost: false, lostmsg: '',
      data: null, total: 0, loading: false, pageIndex: 1,
      pageSize: 10, orderBy: '', search: '', BIDs: {}, pickup: false
    }, () => {
      this.loadconfig()
@@ -1106,7 +1114,7 @@
  }
  render() {
    const { setting, searchlist, pageSize, actions, columns, loadingview, viewlost, pickup, config, triggerBtn, userConfig, tabActive, chartId, search, selectedData } = this.state
    const { BID, setting, searchlist, pageSize, actions, columns, loadingview, viewlost, pickup, config, triggerBtn, userConfig, tabActive, chartId, search, selectedData } = this.state
    return (
      <div className="commontable pick-control" id={this.state.ContainerId}>
@@ -1134,6 +1142,7 @@
                  {config.charts.length > 1 && item.title ? <p className="chart-table chart-title">{item.title}</p> : null}
                  <div style={{minHeight: '25px'}}>
                    <MainAction
                      BID={BID}
                      setting={setting}
                      actions={actions}
                      dict={this.state.dict}
@@ -1187,6 +1196,7 @@
              return (
                <Col span={item.width} key={item.uuid}>
                  <CardComponent
                    BID={BID}
                    plot={item}
                    config={config}
                    tableId="mainTable"
src/tabviews/zshare/actionList/newpagebutton/index.jsx
@@ -81,10 +81,25 @@
      let msg = '&uid=' + sessionStorage.getItem('UserID') + '&sid=' + sessionStorage.getItem('SessionUid') + '&lid=' + sessionStorage.getItem('LoginUID') + '&un=' + sessionStorage.getItem('User_Name')
      let src = '#/print/' + window.btoa('ID=' + Id + msg + cloudmsg)
      window.open(src)
    } else if (btn.pageTemplate === 'custom' && btn.url === 'pay') {
      if (data.length !== 1) {
        // 支付时,需要选择单行数据
        notification.warning({
          top: 92,
          message: this.state.dict['main.action.confirm.selectSingleLine'],
          duration: 5
        })
        return
      }
      let url = '#/pay/' +  window.btoa(`ID=${Id}&LoginUID=${sessionStorage.getItem('LoginUID')}`)
      window.open(url)
    } else if (btn.pageTemplate === 'custom') {
      let url = btn.url
      if (btn.Ot === 'requiredSgl') {
        url = url + '?ID=' + Id
      if (btn.Ot === 'requiredSgl' && btn.joint !== 'false') {
        url = url + `?ID=${Id}&appkey=${window.GLOB.appkey}&LoginUID=${sessionStorage.getItem('LoginUID') || ''}`
      } else if (btn.joint !== 'false') {
        url = url + `?appkey=${window.GLOB.appkey}&LoginUID=${sessionStorage.getItem('LoginUID') || ''}`
      }
      window.open(url)
src/tabviews/zshare/actionList/tabbutton/index.jsx
@@ -74,17 +74,41 @@
      primaryId = data[0][setting.primaryKey] || ''
    }
    let newtab = {
      MenuNo: '',
      MenuID: btn.uuid,
      MenuName: btn.label,
      type: btn.tabTemplate,
      selected: true,
      param: {
        parentId: this.props.MenuID,
        btn: btn,
        data: data[0] || null,
        primaryId: primaryId
    let newtab = {}
    if (btn.tabTemplate === 'FormTab') {
      newtab = {
        MenuNo: '',
        MenuID: btn.uuid,
        MenuName: btn.label,
        type: btn.tabTemplate,
        selected: true,
        param: {
          parentId: this.props.MenuID,
          btn: btn,
          data: data[0] || null,
          primaryId: primaryId
        }
      }
    } else if (btn.tabTemplate === 'ThdMenu') {
      let _type = 'CommonTable'
      if (btn.linkThdMenu && btn.linkThdMenu.PageParam) {
        try {
          _type = JSON.parse(btn.linkThdMenu.PageParam).Template
        } catch {
          _type = 'CommonTable'
        }
      }
      newtab = {
        MenuNo: btn.linkThdMenu.MenuNo,
        MenuID: btn.linkThdMenu.MenuID,
        MenuName: btn.linkThdMenu.MenuName,
        type: _type,
        selected: true,
        param: {
          BID: primaryId
        }
      }
    }
src/templates/comtableconfig/index.jsx
@@ -74,7 +74,6 @@
   */
  UNSAFE_componentWillMount () {
    const { menu, optionLibs } = this.props
    let _LongParam = menu.LongParam
    let _config = ''
@@ -1434,7 +1433,7 @@
                        {config.charts.length > 1 && item.title ? <p className="chart-title">{item.title}</p> : null}
                        <ActionComponent
                          type="main"
                          menu={{ MenuID: this.props.menu.MenuID, MenuName: this.props.menu.MenuName, MenuNo: this.props.menu.MenuNo }}
                          menu={{ MenuID: this.props.menu.MenuID, MenuName: this.props.menu.MenuName, MenuNo: this.props.menu.MenuNo, fstMenuList: this.props.menu.fstMenuList }}
                          config={config}
                          tabs={this.state.tabviews}
                          menuformRef={this.menuformRef}
src/templates/sharecomponent/actioncomponent/actionform/index.jsx
@@ -1,7 +1,10 @@
import React, {Component} from 'react'
import PropTypes from 'prop-types'
import { Form, Row, Col, Input, Select, Icon, Radio, notification, Tooltip, InputNumber } from 'antd'
import { Form, Row, Col, Input, Select, Icon, Radio, notification, Tooltip, InputNumber, Cascader } from 'antd'
import { btnIcons, btnClasses, formRule } from '@/utils/option.js'
import Api from '@/api'
import options from '@/store/options.js'
import Utils from '@/utils/utils.js'
import './index.scss'
@@ -68,6 +71,7 @@
  UNSAFE_componentWillMount () {
    const { card } = this.props
    let _menulist = this.props.formlist.filter(form => form.key === 'linkmenu')[0] || ''
    let _opentype = card.OpenType             // 打开方式
    let _tabType = card.tabType || 'SubTable' // 按钮为弹窗(标签)时,标签的类型
    let _options = null                       // 选项列表
@@ -84,10 +88,13 @@
    if (_opentype === 'innerpage') {                                     // 新页面,可选模板(自定义时,可填入外部链接)
      _options = ['label', 'Ot', 'OpenType', 'pageTemplate', 'icon', 'class', 'position']
      if (card.pageTemplate === 'custom') {
        _options.push('url')
        _options.push('url', 'joint')
      }
    } else if (_opentype === 'blank' || _opentype === 'tab') {           // 新标签或当前页面替换
      _options = ['label', 'Ot', 'OpenType', 'icon', 'class', 'position', 'tabTemplate']
      if (card.tabTemplate === 'ThdMenu') {
        _options.push('linkmenu')
      }
    } else if (_opentype === 'popview') {                                // 模态框标签页
      _options = ['label', 'Ot', 'OpenType', 'icon', 'class', 'position', 'tabType', 'linkTab', 'popClose']
    } else if (_opentype === 'excelOut') {    // 导入导出
@@ -123,6 +130,7 @@
    }
    this.setState({
      openType: _opentype,
      menulist: _menulist.options || [],
      interType: card.intertype || 'inner',
      position: card.position || 'toolbar',
      funcType: card.funcType,
@@ -192,10 +200,13 @@
      if (value === 'innerpage') {
        _options = ['label', 'Ot', 'OpenType', 'pageTemplate', 'icon', 'class', 'position']
        if (card.pageTemplate === 'custom') {
          _options.push('url')
          _options.push('url', 'joint')
        }
      } else if (value === 'blank' || value === 'tab') {
        _options = ['label', 'Ot', 'OpenType', 'icon', 'class', 'position', 'tabTemplate']
        if (card.tabTemplate === 'ThdMenu') {
          _options.push('linkmenu')
        }
      } else if (value === 'popview') {
        _options = ['label', 'Ot', 'OpenType', 'icon', 'class', 'position', 'tabType', 'linkTab', 'popClose']
      } else if (value === 'excelOut') {
@@ -390,6 +401,21 @@
        _options = ['label', 'Ot', 'OpenType', 'pageTemplate', 'url', 'icon', 'class', 'position']
      } else {
        _options = ['label', 'Ot', 'OpenType', 'pageTemplate', 'icon', 'class', 'position']
      }
      this.setState({
        openType: value,
        formlist: this.state.formlist.map(item => {
          item.hidden = !_options.includes(item.key)
          return item
        })
      })
    } else if (key === 'tabTemplate') {
      let _options = ['label', 'Ot', 'OpenType', 'icon', 'class', 'position', 'tabTemplate']
      if (value === 'ThdMenu') {
        _options.push('linkmenu')
      }
      this.setState({
@@ -627,13 +653,87 @@
            </Form.Item>
          </Col>
        )
      } else if (item.type === 'cascader') { // 多选
        fields.push(
          <Col span={12} key={index}>
            <Form.Item label={item.label}>
              {getFieldDecorator(item.key, {
                initialValue: item.initVal || [],
                rules: [
                  {
                    required: !!item.required,
                    message: this.props.dict['form.required.select'] + item.label + '!'
                  }
                ]
              })(
                <Cascader
                  options={this.state.menulist}
                  loadData={this.loadData}
                  placeholder=""
                />
              )}
            </Form.Item>
          </Col>
        )
      }
    })
    return fields
  }
  loadData = selectedOptions => {
    const { MenuID } = this.props
    const targetOption = selectedOptions[selectedOptions.length - 1]
    targetOption.loading = true
    let _param = {
      func: 'sPC_Get_FunMenu',
      ParentID: targetOption.value,
      systemType: options.sysType,
      debug: 'Y'
    }
    Api.getSystemConfig(_param).then(result => {
      if (result.status) {
        targetOption.loading = false
        targetOption.children = result.data.map(item => {
          let submenu = {
            value: item.ParentID,
            label: item.MenuNameP,
            children: item.FunMenu.map(cell => {
              return {
                value: cell.MenuID,
                label: cell.MenuName,
                MenuID: cell.MenuID,
                MenuName: cell.MenuName,
                MenuNo: cell.MenuNo,
                Ot: cell.Ot,
                PageParam: cell.PageParam,
                LinkUrl: cell.LinkUrl,
                disabled: cell.MenuID === MenuID
              }
            })
          }
          return submenu
        })
        this.setState({
          menulist: [...this.state.menulist]
        })
      } else {
        notification.warning({
          top: 92,
          message: result.message,
          duration: 5
        })
        targetOption.loading = false
      }
    })
  }
  handleConfirm = () => {
    const { setting } = this.props
    const { menulist } = this.state
    // 表单提交时检查输入值是否正确
    return new Promise((resolve, reject) => {
      this.props.form.validateFieldsAndScroll((err, values) => {
@@ -673,6 +773,25 @@
            }
          }
          // 关联三级菜单
          if (values.OpenType === 'tab' && values.linkmenu && values.linkmenu.length > 0) {
            let linkThdMenu = ''
            menulist.forEach(menu => {
              if (menu.value === values.linkmenu[0]) {
                menu.children.forEach(item => {
                  if (item.value === values.linkmenu[1]) {
                    item.children.forEach(cell => {
                      if (cell.value === values.linkmenu[2]) {
                        linkThdMenu = cell
                      }
                    })
                  }
                })
              }
            })
            values.linkThdMenu = linkThdMenu
          }
          if (values.innerFunc === '' && values.sql === '') {
            notification.warning({
              top: 92,
src/templates/sharecomponent/actioncomponent/index.jsx
@@ -5,6 +5,7 @@
import moment from 'moment'
import Api from '@/api'
import options from '@/store/options.js'
import Utils from '@/utils/utils.js'
import DevUtils from '@/utils/devutils.js'
import zhCN from '@/locales/zh-CN/model.js'
@@ -86,20 +87,81 @@
  }
  /**
   * @description 搜索条件编辑,获取搜索条件表单信息
   * @description 按钮编辑,获取按钮表单信息
   */
  handleAction = (card) => {
    const { menu } = this.props
    let ableField = this.props.usefulFields.join(', ')
    let functip = <div>
      <p style={{marginBottom: '5px'}}>{this.state.dict['model.tooltip.func.innerface'].replace('@ableField', ableField)}</p>
      <p>{this.state.dict['model.tooltip.func.outface']}</p>
    </div>
    this.setState({
      visible: true,
      card: card,
      formlist: getActionForm(card, functip, this.props.config, this.props.usefulFields, this.props.type)
    let menulist = menu.fstMenuList.map(item => {
      return {
        value: item.MenuID,
        label: item.text,
        isLeaf: false
      }
    })
    if (card.linkmenu && card.linkmenu.length > 0) {
      let _param = {
        func: 'sPC_Get_FunMenu',
        ParentID: card.linkmenu[0],
        systemType: options.sysType,
        debug: 'Y'
      }
      Api.getSystemConfig(_param).then(result => {
        if (result.status) {
          menulist = menulist.map(item => {
            if (item.value === card.linkmenu[0]) {
              item.children = result.data.map(item => {
                let submenu = {
                  value: item.ParentID,
                  label: item.MenuNameP,
                  children: item.FunMenu.map(cell => {
                    return {
                      value: cell.MenuID,
                      label: cell.MenuName,
                      MenuID: cell.MenuID,
                      MenuName: cell.MenuName,
                      MenuNo: cell.MenuNo,
                      Ot: cell.Ot,
                      PageParam: cell.PageParam,
                      LinkUrl: cell.LinkUrl,
                      disabled: cell.MenuID === menu.MenuID
                    }
                  })
                }
                return submenu
              })
            }
            return item
          })
        } else {
          notification.warning({
            top: 92,
            message: result.message,
            duration: 5
          })
        }
        this.setState({
          visible: true,
          card: card,
          formlist: getActionForm(card, functip, this.props.config, this.props.usefulFields, this.props.type, menulist)
        })
      })
    } else {
      this.setState({
        visible: true,
        card: card,
        formlist: getActionForm(card, functip, this.props.config, this.props.usefulFields, this.props.type, menulist)
      })
    }
  }
  /**
src/templates/sharecomponent/columncomponent/gridbtnform/index.jsx
@@ -48,7 +48,7 @@
      {
        type: 'select',
        key: 'style',
        label: this.props.dict['header.form.style'],
        label: this.props.dict['model.form.style'],
        initVal: this.props.card.style,
        required: true,
        options: [{
@@ -56,7 +56,7 @@
          text: this.props.dict['header.form.button']
        }, {
          MenuID: 'text',
          text: this.props.dict['model.form.text']
          text: this.props.dict['model.form.href']
        }]
      },
      {
src/templates/sharecomponent/columncomponent/index.jsx
@@ -193,8 +193,8 @@
   */
  editModalCancel = () => {
    const { card } = this.state
    if (card.focus) {
    if (card && card.focus) {
      let _columnlist = fromJS(this.state.columnlist).toJS()
      _columnlist = _columnlist.filter(item => item.uuid !== card.uuid)
src/templates/zshare/formconfig.jsx
@@ -921,7 +921,7 @@
 * @param {*} permFuncField  存储过程可用的开始字段
 * @param {*} type           按钮类型,用于区分可选的打开方式
 */
export function getActionForm (card, functip, config, permFuncField, type) {
export function getActionForm (card, functip, config, permFuncField, type, menulist = []) {
  let opentypes = [
    {
      value: 'pop',
@@ -1169,13 +1169,24 @@
    {
      type: 'select',
      key: 'tabTemplate',
      label: '标签模板',
      label: '标签类型',
      initVal: card.tabTemplate || 'FormTab',
      required: true,
      options: [{
        value: 'FormTab',
        text: '带标签表单'
        text: '表单标签页'
      }, {
        value: 'ThdMenu',
        text: Formdict['model.menu.level3']
      }]
    },
    {
      type: 'cascader',
      key: 'linkmenu',
      label: Formdict['model.form.linkmenu'],
      initVal: card.linkmenu || [],
      required: true,
      options: menulist
    },
    {
      type: 'select',
@@ -1275,6 +1286,20 @@
      options: []
    },
    {
      type: 'radio',
      key: 'joint',
      label: Formdict['model.form.paramJoint'],
      initVal: card.joint || 'true',
      required: false,
      options: [{
        value: 'true',
        text: Formdict['model.true']
      }, {
        value: 'false',
        text: Formdict['model.false']
      }]
    },
    {
      type: 'text',
      key: 'sheet',
      label: Formdict['model.form.tablename'],
src/views/pay/index.jsx
New file
@@ -0,0 +1,45 @@
import React, {Component} from 'react'
// import Api from '@/api'
import './index.scss'
class Pay extends Component {
  state = {
    orderId: ''
  }
  UNSAFE_componentWillMount () {
    let _param = window.atob(this.props.match.params.param)
    let _params = {}
    _param.split('&').forEach(cell => {
      let _cell = cell.split('=')
      _params[_cell[0]] = _cell[1]
    })
    if (!sessionStorage.getItem('LoginUID') && _params.LoginUID) {
      sessionStorage.setItem('LoginUID', _params.LoginUID)
    }
    this.setState({
      orderId: _params.ID
    })
  }
  render () {
    return (
      <div className="mk-pay-container">
        <div className="mk-pay-box">
          <div className="pay-tip">请您尽快支付,以便订单快速处理!</div>
          <div className="mk-pay-content">
            <div>支付方式:</div>
          </div>
          <div className="mk-pay-msg">
            <div>应付金额:</div>
          </div>
        </div>
      </div>
    )
  }
}
export default Pay
src/views/pay/index.scss
New file
@@ -0,0 +1,33 @@
.mk-pay-container {
  width: 100vw;
  height: 100vh;
  overflow-x: hidden;
  // background: #F1F2F7;
  .mk-pay-box {
    margin: 0 auto;
    width: 80vw;
    height: calc(100vh - 40px);
    margin-top: 20px;
    background: #ffffff;
    padding: 15px 20px;
    // box-shadow: 0px 0px 3px #bcbcbc;
    .pay-tip {
      color: #1890ff;
      font-size: 15px;
      margin-bottom: 20px;
    }
    .mk-pay-content {
      display: inline-block;
      width: 80%;
      height: calc(100% - 40px);
    }
    .mk-pay-msg {
      display: inline-block;
      width: 20%;
      height: calc(100% - 40px);
    }
  }
}