king
2024-06-05 49fabbaab6ad5ab8ab6d8da3954384e0281f6134
2024-06-05
19个文件已修改
273 ■■■■■ 已修改文件
src/assets/css/main.scss 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/menu/components/card/data-card/options.jsx 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/menu/components/card/double-data-card/options.jsx 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/menu/components/form/formaction/index.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/menu/components/table/base-table/options.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/menu/components/table/edit-table/options.jsx 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/menu/components/table/normal-table/options.jsx 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/tabviews/custom/components/card/data-card/index.jsx 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/tabviews/custom/components/card/data-card/index.scss 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/tabviews/custom/components/card/double-data-card/index.jsx 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/tabviews/custom/components/card/double-data-card/index.scss 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/tabviews/custom/components/share/normalTable/index.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/tabviews/custom/components/share/normalTable/index.scss 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/tabviews/custom/components/table/edit-table/normalTable/index.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/tabviews/custom/components/table/edit-table/normalTable/index.scss 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/tabviews/zshare/normalTable/index.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/tabviews/zshare/normalTable/index.scss 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/utils-custom.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/utils.js 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/css/main.scss
@@ -728,6 +728,27 @@
    vertical-align: bottom;
  }
}
.fixed-table-height {
  tr, td, th {
    overflow: hidden;
  }
  ::-webkit-scrollbar {
    width: 17px;
    height: 17px;
  }
  ::-webkit-scrollbar-thumb {
    background: rgba(193, 193, 193, 0.7);
  }
  ::-webkit-scrollbar-track {
    background: #fafafa;
  }
  .ant-table-body {
    border-bottom: 1px solid rgba(0, 0, 0, .05);
    .ant-table-fixed {
      border-bottom: 0;
    }
  }
}
// 系统色设置
.mk-main-view {
src/menu/components/card/data-card/options.jsx
@@ -209,10 +209,23 @@
      controlFields: subtype !== 'propcard' ? [
        {field: 'printHeight', values: ['flex']},
        {field: 'cardFloat', values: ['grid']},
        {field: 'zHeight', values: ['grid']},
      ] : [{field: 'cardFloat', values: ['grid']}],
      forbid: subtype === 'tablecard'
    },
    {
      type: 'number',
      field: 'zHeight',
      label: '最大高度',
      initval: wrap.zHeight || '',
      tooltip: '卡片内容区的最大高度(不包含标题、翻页等元素),添加高度后组件中第一个属性卡将固定于头部。注:小于等于100时为高度的百分比。',
      min: 10,
      max: 3000,
      precision: 0,
      required: false,
      forbid: subtype !== 'datacard' || appType === 'mob'
    },
    {
      type: 'radio',
      field: 'pagestyle',
      label: '分页风格',
src/menu/components/card/double-data-card/options.jsx
@@ -61,6 +61,18 @@
      required: true
    },
    {
      type: 'number',
      field: 'zHeight',
      label: '最大高度',
      initval: wrap.zHeight || '',
      tooltip: '卡片内容区的最大高度(不包含标题、翻页等元素),添加高度后组件中第一个属性卡将固定于头部。注:小于等于100时为高度的百分比。',
      min: 10,
      max: 3000,
      precision: 0,
      required: false,
      forbid: appType === 'mob'
    },
    {
      type: 'radio',
      field: 'pagestyle',
      label: '分页风格',
@@ -203,26 +215,14 @@
      tooltip: '设置卡片区域的最小宽度,显示区域小于此值将出现横向滚动。',
      required: false
    },
    {
      type: 'number',
      field: 'zHeight',
      label: '高度',
      min: 10,
      max: 5000,
      precision: 0,
      initval: wrap.zHeight,
      tooltip: '卡片区域高度,内容超出时纵向滚动。注:小于等于100时为高度的百分比,第一个扩展属性卡将定位在顶部。',
      required: false,
      forbid: appType === 'mob'
    },
    {
      type: 'color',
      field: 'zBColor',
      label: '边框颜色',
      initval: wrap.zBColor || 'transparent',
      tooltip: '卡片区域设置高度或最小宽度时,滚动区域边框的颜色。',
      required: false
    },
    // {
    //   type: 'color',
    //   field: 'zBColor',
    //   label: '边框颜色',
    //   initval: wrap.zBColor || 'transparent',
    //   tooltip: '卡片区域设置高度或最小宽度时,滚动区域边框的颜色。',
    //   required: false
    // },
    {
      type: 'radio',
      field: 'permission',
src/menu/components/form/formaction/index.jsx
@@ -226,7 +226,7 @@
            <ProfileOutlined className="profile" title="setting" onClick={() => this.profileAction()} />
          </div>
        } trigger="hover">
          <Button type="link" className="submit mk-primary" onDoubleClick={this.changeMenu} style={resetStyle(group.subButton.style)}>{group.subButton.label}</Button>
          <Button type="link" className="submit" onDoubleClick={this.changeMenu} style={resetStyle(group.subButton.style)}>{group.subButton.label}</Button>
        </Popover>
        {group.resetButton && group.resetButton.enable === 'true' ? <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={
          <div className="mk-popover-control">
src/menu/components/table/base-table/options.jsx
@@ -165,7 +165,7 @@
      field: 'height',
      label: '表格高度',
      initval: wrap.height || '',
      tooltip: '表格高度,空值时高度自适应。注:小于等于100时为高度的百分比。',
      tooltip: '表格内容区的高度(不包含表头),空值时高度自适应。注:小于等于100时为高度的百分比。',
      min: 10,
      max: 3000,
      precision: 0,
src/menu/components/table/edit-table/options.jsx
@@ -45,9 +45,9 @@
    {
      type: 'number',
      field: 'height',
      label: '高度',
      label: '表格高度',
      initval: wrap.height || '',
      tooltip: '表格高度,空值时高度自适应。注:小于等于100时为高度的百分比。',
      tooltip: '表格内容区的高度(不包含表头),空值时高度自适应。注:小于等于100时为高度的百分比。',
      min: 10,
      max: 3000,
      precision: 0,
src/menu/components/table/normal-table/options.jsx
@@ -52,9 +52,9 @@
    {
      type: 'number',
      field: 'height',
      label: '高度',
      label: '表格高度',
      initval: wrap.height || '',
      tooltip: '表格高度,空值时高度自适应。注:小于等于100时为高度的百分比。',
      tooltip: '表格内容区的高度(不包含表头),空值时高度自适应。注:小于等于100时为高度的百分比。',
      min: 10,
      max: 3000,
      precision: 0,
src/tabviews/custom/components/card/data-card/index.jsx
@@ -188,6 +188,16 @@
      }
    }
    if (_config.wrap.zHeight) {
      _config.wrap.zHeight = _config.wrap.zHeight <= 100 ? _config.wrap.zHeight + 'vh' : _config.wrap.zHeight
      if (_config.style) {
        delete _config.style.height
      }
      _config.wrap.layout += ' fix-height'
    } else {
      _config.wrap.zHeight = 'none'
    }
    this.setState({
      pageSize: _config.setting.pageSize || 10,
      pageOptions,
@@ -1208,7 +1218,7 @@
        {config.wrap.pickup === 'true' && this.state.data.length > 0 ? <div className="pickup-wrap"><Switch title="收起" checkedChildren="开" unCheckedChildren="关" checked={pickup} onChange={this.pickupChange} /></div> : null}
        <div className={`data-zoom ${config.wrap.wrapClass}`}>
          {switchable ? <div className={'prev-page ' + (pageIndex === 1 ? 'disabled' : '')} onClick={this.prevPage}><div><div><img src={preImg} alt=""/></div></div></div> : null}
          <Row className={'card-row-list ' + config.wrap.layout}>
          <Row className={'card-row-list ' + config.wrap.layout} style={{maxHeight: config.wrap.zHeight}}>
            {precards.map((item, index) => (
              <Col key={'pre' + index} className="extend-card" style={item.wStyle} span={item.setting.width || 6}>
                {item.setting.cardRole === 'header' ? <TableHeader card={item} data={extendData} refresh={this.refreshByHeader}>
src/tabviews/custom/components/card/data-card/index.scss
@@ -8,6 +8,7 @@
  .pickup-wrap {
    float: right;
    margin-bottom: 3px;
    button {
      margin-top: 3px;
    }
@@ -64,6 +65,25 @@
  .card-row-list {
    flex: 10;
    max-width: 100%;
  }
  .card-row-list.fix-height {
    border: 1px solid #e8e8e8;
    border-radius: 4px;
    overflow-y: auto;
    .extend-card:first-child {
      position: sticky;
      top: 0;
      z-index: 1;
      .card-item-box {
        margin-top: 0!important;
        margin-bottom: 0!important;
      }
    }
    div:last-child {
      .card-item-box {
        border-bottom: none!important;
      }
    }
  }
  .card-row-list.flex-layout {
    display: flex;
@@ -275,16 +295,16 @@
    }
  }
}
.custom-data-card-box::-webkit-scrollbar {
.custom-data-card-box::-webkit-scrollbar, .custom-data-card-box .card-row-list::-webkit-scrollbar {
  width: 7px;
  height: 7px;
}
.custom-data-card-box::-webkit-scrollbar-thumb {
.custom-data-card-box::-webkit-scrollbar-thumb, .custom-data-card-box .card-row-list::-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);
}
.custom-data-card-box::-webkit-scrollbar-track {
.custom-data-card-box::-webkit-scrollbar-track, .custom-data-card-box .card-row-list::-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);
src/tabviews/custom/components/card/double-data-card/index.jsx
@@ -129,6 +129,20 @@
    _config.wrap.wrapClass =  `${_config.wrap.selStyle} ${_config.wrap.cardType || ''}`
    if (_config.wrap.zHeight || _config.wrap.minWidth) {
      if (_config.wrap.zHeight) {
        _config.wrap.zHeight = _config.wrap.zHeight <= 100 ? _config.wrap.zHeight + 'vh' : _config.wrap.zHeight
        _config.wrap.wrapClass += ' fix-height'
      }
      _config.wrap.minWidth = _config.wrap.minWidth ? _config.wrap.minWidth + 'px' : '100%'
      _config.wrap.zoomStyle = {
        maxHeight: _config.wrap.zHeight || 'none',
        '--mk-data-zoom-width': _config.wrap.minWidth
      }
    } else {
      _config.wrap.zoomStyle = null
    }
    if (_config.wrap.shifting === 'true') {
      _config.wrap.shifting = 'shifting'
    } else {
@@ -173,19 +187,6 @@
      if (_config.wrap.maxPageSize) {
        pageOptions = pageOptions.filter(item => item <= _config.wrap.maxPageSize)
      }
    }
    if (_config.wrap.zHeight) {
      _config.wrap.zHeight = _config.wrap.zHeight <= 100 ? _config.wrap.zHeight + 'vh' : _config.wrap.zHeight
    }
    if (_config.wrap.zHeight || _config.wrap.minWidth) {
      _config.wrap.zoomStyle = {
        border: `1px solid ${_config.wrap.zBColor || 'transparent'}`,
        height: _config.wrap.zHeight || 'auto'
      }
    } else {
      _config.wrap.zoomStyle = null
    }
    this.setState({
@@ -1154,8 +1155,8 @@
        }
        {config.wrap.pickup === 'true' && this.state.data.length > 0 ? <div className="pickup-wrap"><Switch title="收起" checkedChildren="开" unCheckedChildren="关" checked={pickup} onChange={this.pickupChange} /></div> : null}
        <div className={config.wrap.zoomStyle ? 'data-zoom-box' : ''} style={config.wrap.zoomStyle}>
          <div className={`data-zoom ${config.wrap.wrapClass}`} style={config.wrap.minWidth ? {minWidth: config.wrap.minWidth} : null}>
            <Row className={'card-row-list '}>
          <div className={`data-zoom ${config.wrap.wrapClass}`}>
            <Row className="card-row-list">
              {precards.map((item, index) => (
                <Col key={'pre' + index} className="extend-card" style={item.wStyle} span={item.setting.width || 6}>
                  {item.setting.cardRole === 'header' ? <TableHeader card={item} data={extendData} refresh={this.refreshByHeader}>
src/tabviews/custom/components/card/double-data-card/index.scss
@@ -8,6 +8,7 @@
  .pickup-wrap {
    float: right;
    margin-bottom: 3px;
    button {
      margin-top: 3px;
    }
@@ -26,6 +27,7 @@
  .data-zoom {
    display: flex;
    position: relative;
    min-width: var(--mk-data-zoom-width, 100%);
    .mk-disabled {
      >.card-item-box {
        cursor: not-allowed;
@@ -42,14 +44,6 @@
  .card-row-list {
    flex: 10;
    max-width: 100%;
  }
  .card-row-list.flex-layout {
    display: flex;
    width: 100%;
    >.ant-col {
      width: 5%;
      flex: 1;
    }
  }
  .card-item-box {
    position: relative;
@@ -279,19 +273,31 @@
    width: 100%;
    overflow-x: auto;
    overflow-y: auto;
    padding-bottom: 10px;
    border: 1px solid #e8e8e8;
    border-radius: 4px;
    .extend-card:first-child {
      position: sticky;
      top: 0px;
      z-index: 2;
    .fix-height .card-row-list {
      .extend-card:first-child {
        position: sticky;
        top: 0;
        z-index: 1;
        .card-item-box {
          margin-top: 0!important;
          margin-bottom: 0!important;
        }
      }
      div:last-child {
        .sub-card-wrap {
          .card-item-box {
            border-bottom: none!important;
          }
        }
      }
    }
  }
  .data-zoom-box::-webkit-scrollbar {
    height: 9px;
    width: 9px;
    width: 7px;
  }
  .data-zoom-box::-webkit-scrollbar-thumb {
    border-radius: 5px;
@@ -322,16 +328,16 @@
    }
  }
}
.double-data-card-box::-webkit-scrollbar {
.double-data-card-box::-webkit-scrollbar, .double-data-card-box .card-row-list::-webkit-scrollbar {
  width: 7px;
  height: 7px;
}
.double-data-card-box::-webkit-scrollbar-thumb {
.double-data-card-box::-webkit-scrollbar-thumb, .double-data-card-box .card-row-list::-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);
}
.double-data-card-box::-webkit-scrollbar-track {
.double-data-card-box::-webkit-scrollbar-track, .double-data-card-box .card-row-list::-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);
src/tabviews/custom/components/share/normalTable/index.jsx
@@ -1195,7 +1195,7 @@
    }
    return (
      <div className={`normal-custom-table ${setting.tableHeader || ''} ${setting.parity === 'true' ? 'mk-parity' : ''} ${height ? 'fixed-height' : ''} ${setting.mode || ''} table-vertical-${setting.vertical || 'middle'} table-col-${columns.length} ${fixed}`} style={style}>
      <div className={`normal-custom-table ${setting.tableHeader || ''} ${setting.parity === 'true' ? 'mk-parity' : ''} ${height ? 'fixed-table-height' : ''} ${setting.mode || ''} table-vertical-${setting.vertical || 'middle'} table-col-${columns.length} ${fixed}`} style={style}>
        {(setting.tableType === 'radio' || setting.tableType === 'checkbox') && data && data.length > 0 ?
          <Switch title="收起" className="main-pickup" checkedChildren="开" unCheckedChildren="关" checked={pickup} onChange={this.pickupChange} /> : null
        }
src/tabviews/custom/components/share/normalTable/index.scss
@@ -154,21 +154,6 @@
      // }
    }
  }
  // .ant-table-body::-webkit-scrollbar {
  //   width: 8px;
  //   height: 10px;
  // }
  // ::-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);
  // }
  // ::-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);
  //   background: rgba(0, 0, 0, 0);
  // }
  .fix-header {
    .ant-table-body {
      min-height: unset
@@ -218,7 +203,7 @@
    background-color: #fafafa!important;
  }
}
.normal-custom-table:not(.fixed-height) {
.normal-custom-table:not(.fixed-table-height) {
  .ant-table-body::-webkit-scrollbar {
    width: 8px;
    height: 10px;
@@ -233,14 +218,6 @@
    border-radius: 3px;
    border: 1px solid rgba(0, 0, 0, 0.07);
    background: rgba(0, 0, 0, 0);
  }
}
.normal-custom-table.fixed-height {
  .ant-table-body {
    border-bottom: 1px solid rgba(0, 0, 0, .05);
    .ant-table-fixed {
      border-bottom: 0;
    }
  }
}
.normal-custom-table.hidden {
src/tabviews/custom/components/table/edit-table/normalTable/index.jsx
@@ -2669,7 +2669,7 @@
        {setting.hasSubmit && edData.length > 0 ? <div className="edit-custom-table-btn-wrap" style={submit.wrapStyle}>
          <Button style={submit.style} onClick={() => setTimeout(() => {this.submit()}, 10)} loading={loading} className="submit-table" type="link">提交</Button>
        </div> : null}
        <div className={`edit-custom-table ${setting.tableHeader || ''} ${setting.parity === 'true' ? 'mk-parity' : ''} ${height ? 'fixed-height' : ''} ${setting.mode || ''} table-vertical-${setting.vertical || ''} mk-edit-${setting.editType || 'simple'}`} style={style}>
        <div className={`edit-custom-table ${setting.tableHeader || ''} ${setting.parity === 'true' ? 'mk-parity' : ''} ${height ? 'fixed-table-height' : ''} ${setting.mode || ''} table-vertical-${setting.vertical || ''} mk-edit-${setting.editType || 'simple'}`} style={style}>
          <Table
            rowKey="$$uuid"
            components={components}
src/tabviews/custom/components/table/edit-table/normalTable/index.scss
@@ -294,7 +294,7 @@
    background-color: #fafafa!important;
  }
}
.edit-custom-table:not(.fixed-height) {
.edit-custom-table:not(.fixed-table-height) {
  .ant-table-body::-webkit-scrollbar {
    width: 8px;
    height: 10px;
@@ -309,14 +309,6 @@
    border-radius: 3px;
    border: 1px solid rgba(0, 0, 0, 0.07);
    background: rgba(0, 0, 0, 0);
  }
}
.edit-custom-table.fixed-height {
  .ant-table-body {
    border-bottom: 1px solid rgba(0, 0, 0, .05);
    .ant-table-fixed {
      border-bottom: 0;
    }
  }
}
.edit-custom-table.hidden {
src/tabviews/zshare/normalTable/index.jsx
@@ -1283,7 +1283,7 @@
    }
    return (
      <div className={'normal-data-table mingke-table ' + (height ? 'fixed-height' : '') + ` table-col-${columns.length}`}>
      <div className={'normal-data-table mingke-table ' + (height ? 'fixed-table-height' : '') + ` table-col-${columns.length}`}>
        <Table
          components={components}
          size={setting.size || 'middle'}
src/tabviews/zshare/normalTable/index.scss
@@ -249,7 +249,7 @@
    }
  }
}
.normal-data-table:not(.fixed-height) {
.normal-data-table:not(.fixed-table-height) {
  .ant-table-body::-webkit-scrollbar {
    width: 8px;
    height: 10px;
@@ -264,13 +264,5 @@
    border-radius: 3px;
    border: 1px solid rgba(0, 0, 0, 0.07);
    background: rgba(0, 0, 0, 0);
  }
}
.normal-data-table.fixed-height {
  .ant-table-body {
    border-bottom: 1px solid rgba(0, 0, 0, .05);
    .ant-table-fixed {
      border-bottom: 0;
    }
  }
}
src/utils/utils-custom.js
@@ -2004,6 +2004,13 @@
      duration: 5
    })
    return false
  } else if (/\send\s+begin\s/ig.test(sql)) {
    notification.warning({
      top: 92,
      message: `end 后不可紧跟 begin。`,
      duration: 5
    })
    return false
  } else if (type === 'customscript' && /\son\s+[a-z0-9_]+\.[a-z0-9_]+\s*=\s*[a-z0-9_]+\.[a-z0-9_]+/ig.test(sql)) {
    let list = sql.match(/\son\s+[a-z0-9_]+\.[a-z0-9_]+\s*=\s*[a-z0-9_]+\.[a-z0-9_]+/ig)
    let errors = []
src/utils/utils.js
@@ -2563,15 +2563,29 @@
      begin
          select @retmsg='X' from s_my_works_flow_role where works_flow_id=@ID@ and works_flow_code=@works_flow_code@ and userid=@userid@
          if @retmsg !=''
          if @retmsg !=''
          begin
              select @ErrorCode='E', @retmsg='当前单据已审核,请刷新后重试'
            goto aaa
            goto aaa
          end
          if @dataM@ !=''
          begin
            set @retmsg =''
            select @retmsg='X' from s_my_works_flow_role where works_flow_id=@ID@ and works_flow_code=@works_flow_code@ and deleted=0
            if @retmsg != ''
            begin
                goto goto_mk
            end
          end
          select @retmsg='页面数据已更新,或没有当前单据的审批权限'
            goto aaa 
      end
      end
      goto_mk:
      set @retmsg=''
      update s_my_works_flow set status=@status@,statusname=@statusname@,works_flow_param=@works_flow_param@,works_flow_detail_id=@works_flow_detail_id@,modifydate=getdate(),upid=@time_id@,modifyuserid=@userid@,modifyuser=@username,modifystaff=@fullname${verify.flowRemark ? ',remark=@' + verify.flowRemark : ''}