From c2580fb8de3bdaabb4179b0ce0fcd2fbac802441 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期三, 01 三月 2023 00:49:14 +0800 Subject: [PATCH] 2023-03-01 --- src/tabviews/zshare/actionList/index.scss | 1 src/tabviews/custom/components/table/base-table/index.jsx | 6 src/assets/css/viewstyle.scss | 5 src/tabviews/custom/components/module/account/index.jsx | 81 ++++- src/tabviews/zshare/actionList/popupbutton/index.jsx | 2 src/templates/zshare/verifycard/customscript/index.jsx | 8 public/options.json | 10 src/tabviews/zshare/actionList/excelInbutton/excelin/index.jsx | 2 src/tabviews/zshare/actionList/exceloutbutton/index.jsx | 79 ++++ src/tabviews/custom/components/table/edit-table/index.jsx | 4 src/views/tabledesign/index.jsx | 17 + src/menu/components/table/edit-table/options.jsx | 15 + src/tabviews/zshare/actionList/normalbutton/index.jsx | 4 src/menu/components/table/edit-table/columns/editColumn/index.jsx | 24 src/views/mobdesign/index.jsx | 19 + src/menu/components/table/edit-table/index.jsx | 8 src/templates/sharecomponent/actioncomponent/verifyexcelin/index.jsx | 9 src/views/menudesign/index.jsx | 21 + src/menu/components/table/edit-table/columns/editColumn/formconfig.jsx | 28 + src/tabviews/custom/components/module/voucher/index.jsx | 2 src/views/pcdesign/index.jsx | 19 + src/menu/components/share/actioncomponent/formconfig.jsx | 30 ++ src/tabviews/custom/components/table/normal-table/index.jsx | 13 src/tabviews/custom/components/timeline/normal-timeline/index.jsx | 1 src/tabviews/custom/components/table/edit-table/normalTable/index.jsx | 146 +++++---- src/tabviews/custom/components/module/account/index.scss | 9 src/tabviews/custom/components/table/edit-table/normalTable/index.scss | 5 src/menu/components/share/actioncomponent/actionform/index.jsx | 3 src/tabviews/custom/components/module/voucher/voucherTable/index.jsx | 15 + src/menu/components/table/edit-table/columns/index.scss | 1 src/menu/components/module/account/options.jsx | 16 + src/templates/sharecomponent/actioncomponent/verifyexcelout/datasource/index.jsx | 42 ++ src/menu/components/table/normal-table/columns/index.jsx | 1 src/menu/components/table/edit-table/columns/index.jsx | 193 +++++++++---- 34 files changed, 608 insertions(+), 231 deletions(-) diff --git a/public/options.json b/public/options.json index bedcbee..4e405d0 100644 --- a/public/options.json +++ b/public/options.json @@ -1,12 +1,12 @@ { - "appId": "202108312122504607B107A83F55B40C98CCF", - "appkey": "20210831212235413F287EC3BF489424496C8", + "appId": "201912040924165801464FF1788654BC5AC73", + "appkey": "20191106103859640976D6E924E464D029CF0", "mainSystemApi": "http://sso.mk9h.cn/cloud/webapi/dostars", "systemType": "", "externalDatabase": "", "lineColor": "", "filter": "false", - "defaultApp": "mkindustry", + "defaultApp": "mk", "defaultLang": "zh-CN", "WXAppID": "", "WXminiAppID": "", @@ -17,6 +17,6 @@ "transfer": "false", "keepPassword": "true", "platforms": ["H5", "wechat", "android", "ios", "wxMiniProgram"], - "host": "http://demo.mk9h.cn", - "service": "erp_new/" + "host": "http://qingqiumarket.cn", + "service": "MKWMS/" } \ No newline at end of file diff --git a/src/assets/css/viewstyle.scss b/src/assets/css/viewstyle.scss index b79b5a2..0bd4ba1 100644 --- a/src/assets/css/viewstyle.scss +++ b/src/assets/css/viewstyle.scss @@ -293,6 +293,11 @@ .ant-pagination-next:hover .ant-pagination-item-link { color: $color6; } + .ant-pagination-options { + > div:not(:first-child) { + z-index: 1; + } + } } // 琛ㄦ牸鎺掑簭鍥炬爣 .ant-table-thead > tr > th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-up.on, .ant-table-thead > tr > th .ant-table-column-sorter .ant-table-column-sorter-inner .ant-table-column-sorter-down.on { diff --git a/src/menu/components/module/account/options.jsx b/src/menu/components/module/account/options.jsx index 9d027e8..8faa66c 100644 --- a/src/menu/components/module/account/options.jsx +++ b/src/menu/components/module/account/options.jsx @@ -35,13 +35,27 @@ }, { type: 'radio', + field: 'readonly', + label: '鍙', + initval: wrap.readonly || 'false', + required: true, + options: [ + {value: 'false', label: '鍚�'}, + {value: 'true', label: '鏄�'}, + ], + controlFields: [ + {field: 'addable', values: ['false']}, + ] + }, + { + type: 'radio', field: 'addable', label: '鍙柊澧�', initval: wrap.addable || 'false', required: true, options: [ - {value: 'true', label: '鏄�'}, {value: 'false', label: '鍚�'}, + {value: 'true', label: '鏄�'}, ], controlFields: [ {field: 'linkmenu', values: ['true']}, diff --git a/src/menu/components/share/actioncomponent/actionform/index.jsx b/src/menu/components/share/actioncomponent/actionform/index.jsx index b78ff7f..0beb228 100644 --- a/src/menu/components/share/actioncomponent/actionform/index.jsx +++ b/src/menu/components/share/actioncomponent/actionform/index.jsx @@ -214,6 +214,9 @@ if (Ot === 'required') { shows.push('progress') } + if (Ot === 'required' && (intertype === 'inner' || intertype === 'system')) { + shows.push('execType') + } if (this.record.openmenu && this.record.openmenu !== 'goback') { shows.push('open') } diff --git a/src/menu/components/share/actioncomponent/formconfig.jsx b/src/menu/components/share/actioncomponent/formconfig.jsx index 2a0179a..1eab40a 100644 --- a/src/menu/components/share/actioncomponent/formconfig.jsx +++ b/src/menu/components/share/actioncomponent/formconfig.jsx @@ -1075,6 +1075,21 @@ }, { type: 'radio', + key: 'execType', + label: '璇锋眰鏂瑰紡', + initVal: card.execType || 'multi', + tooltip: '閫変腑澶氭潯鏁版嵁鏃剁殑璇锋眰鏂瑰紡锛屾敞锛氬綋閫変腑鏁版嵁瓒呰繃20鏉℃椂灏嗛�愭潯璇锋眰銆�', + required: false, + options: [{ + value: 'multi', + text: '鎵归噺璇锋眰' + }, { + value: 'single', + text: '閫愭潯璇锋眰' + }] + }, + { + type: 'radio', key: 'progress', label: '杩涘害鎻愮ず', initVal: card.progress || 'number', @@ -1804,6 +1819,21 @@ }, { type: 'radio', + key: 'execType', + label: '璇锋眰鏂瑰紡', + initVal: card.execType || 'multi', + tooltip: '閫変腑澶氭潯鏁版嵁鏃剁殑璇锋眰鏂瑰紡锛屾敞锛氬綋閫変腑鏁版嵁瓒呰繃20鏉℃椂灏嗛�愭潯璇锋眰銆�', + required: false, + options: [{ + value: 'multi', + text: '鎵归噺璇锋眰' + }, { + value: 'single', + text: '閫愭潯璇锋眰' + }] + }, + { + type: 'radio', key: 'progress', label: '杩涘害鎻愮ず', initVal: card.progress || 'number', diff --git a/src/menu/components/table/edit-table/columns/editColumn/formconfig.jsx b/src/menu/components/table/edit-table/columns/editColumn/formconfig.jsx index bd69d85..6120716 100644 --- a/src/menu/components/table/edit-table/columns/editColumn/formconfig.jsx +++ b/src/menu/components/table/edit-table/columns/editColumn/formconfig.jsx @@ -14,7 +14,8 @@ roleList = [] } - if (['picture', 'link', 'colspan'].includes(card.type)) { + // if (['picture', 'link', 'colspan'].includes(card.type)) { + if (['picture', 'link'].includes(card.type)) { card.type = 'text' } @@ -31,8 +32,11 @@ value: 'custom', text: '鑷畾涔夊垪' }, { - value: 'action', - text: '鎿嶄綔' + value: 'colspan', + text: '鍚堝苟鍒�' + // }, { + // value: 'action', + // text: '鎿嶄綔' }, { value: 'formula', text: '鍏紡' @@ -40,6 +44,13 @@ value: 'index', text: '搴忓彿' }] + + if (!card.isSub) { + options.push({ + value: 'action', + text: '鎿嶄綔' + }) + } let editCols = [ { @@ -60,6 +71,15 @@ editCols.push({ field: col.uuid, label: col.label + }) + } else if (col.type === 'colspan') { + col.subcols.forEach(subcol => { + if (subcol.editable === 'true' && subcol.uuid !== card.uuid) { + editCols.push({ + field: subcol.uuid, + label: col.label + '-' + subcol.label + }) + } }) } }) @@ -116,7 +136,7 @@ type: 'radio', key: 'IsSort', label: '鎺掑簭', - initVal: card.IsSort || 'false', + initVal: card.IsSort || (card.isSub ? 'false' : 'true'), required: true, options: [{ value: 'true', diff --git a/src/menu/components/table/edit-table/columns/editColumn/index.jsx b/src/menu/components/table/edit-table/columns/editColumn/index.jsx index 88c227d..e445b43 100644 --- a/src/menu/components/table/edit-table/columns/editColumn/index.jsx +++ b/src/menu/components/table/edit-table/columns/editColumn/index.jsx @@ -17,6 +17,7 @@ number: ['label', 'field', 'type', 'Align', 'Hide', 'IsSort', 'Width', 'decimal', 'format', 'prefix', 'postfix', 'editable', 'initval', 'sum', 'blacklist'], textarea: ['label', 'field', 'type', 'Align', 'Hide', 'Width', 'prefix', 'initval', 'postfix', 'blacklist'], custom: ['label', 'type', 'Align', 'Hide', 'Width', 'blacklist'], + colspan: ['label', 'type', 'Align', 'Hide', 'blacklist'], action: ['label', 'type', 'Align', 'Width'], formula: ['label', 'type', 'Align', 'Hide', 'Width', 'prefix', 'postfix', 'eval', 'formula', 'blacklist'], index: ['label', 'type', 'Align', 'Width'] @@ -131,7 +132,7 @@ return item }) }, () => { - if (value === 'action') { + if (value === 'action' || value === 'colspan') { this.props.form.setFieldsValue({Align: 'center'}) } }) @@ -349,21 +350,18 @@ } handleSubmit = () => { - const { columns, column } = this.props + // const { columns } = this.props // 琛ㄥ崟鎻愪氦鏃舵鏌ヨ緭鍏ュ�兼槸鍚︽纭� this.props.form.validateFieldsAndScroll((err, values) => { if (!err) { - values.uuid = column.uuid - values.marks = column.marks || [] - - if (values.field && columns.filter(col => col.field && col.uuid !== values.uuid && col.field === values.field).length > 0) { - notification.warning({ - top: 92, - message: '瀛楁宸叉坊鍔狅紒', - duration: 5 - }) - return - } + // if (values.field && columns.filter(col => col.field && col.uuid !== values.uuid && col.field === values.field).length > 0) { + // notification.warning({ + // top: 92, + // message: '瀛楁宸叉坊鍔狅紒', + // duration: 5 + // }) + // return + // } this.setState({visible: false, formlist: null}) this.props.submitCol(values) diff --git a/src/menu/components/table/edit-table/columns/index.jsx b/src/menu/components/table/edit-table/columns/index.jsx index 319b9af..afa1eba 100644 --- a/src/menu/components/table/edit-table/columns/index.jsx +++ b/src/menu/components/table/edit-table/columns/index.jsx @@ -59,31 +59,57 @@ </th> ) - let style = {cursor: 'move', textAlign: align} - if (column.Width) { - style.width = column.Width - style.minWidth = column.Width - } + if (index !== undefined) { + let style = {cursor: 'move', textAlign: align} + if (column.Width) { + style.width = column.Width + style.minWidth = column.Width + } - return connectDragSource( - connectDropTarget(<th {...restProps} index={index} style={style} onDoubleClick={() => this.props.editColumn(column)}> - <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={ - <div className="mk-popover-control" onDoubleClick={(e) => e.stopPropagation()}> - {['custom', 'action'].includes(column.type) ? - <PlusOutlined className="plus" title="娣诲姞" onClick={() => this.props.addElement(column)} /> : null - } - <EditOutlined className="edit" title="缂栬緫" onClick={() => this.props.editColumn(column)} /> - {column.type === 'custom' ? <PasteComponent options={['customCardElement']} updateConfig={(res, resolve) => this.props.pasteCell(column, res, resolve)} /> : null} - {column.type === 'action' ? <PasteComponent options={['action']} updateConfig={(res, resolve) => this.props.pasteCell(column, res, resolve)} /> : null} - {column.type === 'custom' || column.type === 'action' ? <FontColorsOutlined className="style" title="璋冩暣鏍峰紡" onClick={() => this.props.changeStyle(column)}/> : null} - <DeleteOutlined className="close" title="鍒犻櫎" onClick={this.deleteCol} /> - {['text', 'number', 'formula'].includes(column.type) ? <MarkColumn field={column.field || ''} columns={fields} marks={column.marks} onSubmit={this.updateMarks} /> : null } - </div> - } trigger="hover"> - {children} - </Popover> - </th>), - ) + return connectDragSource( + connectDropTarget(<th {...restProps} index={index} style={style} onDoubleClick={() => this.props.editColumn(column)}> + <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={ + <div className="mk-popover-control" onDoubleClick={(e) => e.stopPropagation()}> + {['custom', 'colspan', 'action'].includes(column.type) ? + <PlusOutlined className="plus" title="娣诲姞" onClick={() => this.props.addElement(column)} /> : null + } + <EditOutlined className="edit" title="缂栬緫" onClick={() => this.props.editColumn(column)} /> + {column.type === 'custom' ? <PasteComponent options={['customCardElement']} updateConfig={(res, resolve) => this.props.pasteCell(column, res, resolve)} /> : null} + {column.type === 'action' ? <PasteComponent options={['action']} updateConfig={(res, resolve) => this.props.pasteCell(column, res, resolve)} /> : null} + {column.type === 'custom' || column.type === 'action' ? <FontColorsOutlined className="style" title="璋冩暣鏍峰紡" onClick={() => this.props.changeStyle(column)}/> : null} + <DeleteOutlined className="close" title="鍒犻櫎" onClick={this.deleteCol} /> + {['text', 'number', 'formula'].includes(column.type) ? <MarkColumn field={column.field || ''} columns={fields} marks={column.marks} onSubmit={this.updateMarks} /> : null } + </div> + } trigger="hover"> + {children} + </Popover> + </th>), + ) + } else if (column) { + let style = {textAlign: align} + if (column.Width) { + style.width = column.Width + style.minWidth = column.Width + } + + return ( + <th {...restProps} style={style} key={column.uuid} onDoubleClick={() => this.props.editColumn(column)}> + <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={ + <div className="mk-popover-control" onDoubleClick={(e) => e.stopPropagation()}> + {['custom', 'colspan'].includes(column.type) ? + <PlusOutlined className="plus" title="娣诲姞" onClick={() => this.props.addElement(column)} /> : null + } + <EditOutlined className="edit" title="缂栬緫" onClick={() => this.props.editColumn(column)} /> + {column.type === 'custom' ? <PasteComponent options={['customCardElement']} updateConfig={(res, resolve) => this.props.pasteCell(column, res, resolve)} /> : null} + <DeleteOutlined className="close" title="鍒犻櫎" onClick={this.deleteCol} /> + {column && ['text', 'number', 'formula'].includes(column.type) ? <MarkColumn field={column.field || ''} columns={fields} marks={column.marks} onSubmit={this.updateMarks} /> : null } + </div> + } trigger="hover"> + {children} + </Popover> + </th> + ) + } } } @@ -267,12 +293,14 @@ let _columns = fromJS(this.state.columns).toJS() let type = item.subType - if (!['text', 'number', 'textarea', 'custom', 'action', 'formula', 'index'].includes(item.subType)) { + if (!['text', 'number', 'textarea', 'custom', 'action', 'formula', 'index', 'colspan'].includes(item.subType)) { type = 'text' } let col = { focus: true, uuid: Utils.getuuid(), label: 'label', field: '', type: type, elements: [] } - if (col.type === 'action') { + if (col.type === 'colspan') { + col.subcols = [] + } else if (col.type === 'action') { col.label = '鎿嶄綔' } else if (col.type === 'index') { col.label = '搴忓彿' @@ -287,14 +315,21 @@ }) } - updateCol = (col, btn) => { - let _columns = fromJS(this.state.columns).toJS() - _columns = _columns.map(column => { + loopCol = (columns, col) => { + return columns.map(column => { + if (column.type === 'colspan') { + column.subcols = this.loopCol(column.subcols || [], col) + } if (column.uuid === col.uuid) { return col } return column }) + } + + updateCol = (col, btn) => { + let _columns = fromJS(this.state.columns).toJS() + _columns = this.loopCol(_columns, col) this.setState({ columns: _columns, @@ -331,7 +366,16 @@ addElement = (col) => { let column = fromJS(col).toJS() - if (column.type === 'custom') { + if (column.type === 'colspan') { + column.subcols = column.subcols || [] + let subcol = { isSub: true, focus: true, uuid: Utils.getuuid(), label: 'label', field: '', type: 'text' } + column.subcols.push(subcol) + + this.setState({ + card: subcol + }) + this.updateCol(column) + } else if (column.type === 'custom') { let newcard = {uuid: Utils.getuuid(), focus: true, width: 24, eleType: 'text', datatype: 'dynamic', style: {paddingLeft: '4px'}} // 娉ㄥ唽浜嬩欢-娣诲姞鍏冪礌 @@ -358,7 +402,13 @@ submitCol = (col) => { const { card } = this.state - if (col.type === 'custom') { + col.uuid = card.uuid + col.isSub = card.isSub === true + col.marks = card.marks || [] + + if (col.type === 'colspan') { + col.subcols = card.subcols || [] + } else if (col.type === 'custom') { col.style = card.style || {} col.elements = card.type === 'custom' ? (card.elements || []) : [] } else if (col.type === 'action') { @@ -410,10 +460,19 @@ this.setState({card: null}) } + loopDelCol = (columns, col) => { + return columns.filter(column => { + if (column.type === 'colspan') { + column.subcols = this.loopDelCol(column.subcols, col) + } + return column.uuid !== col.uuid + }) + } + deleteCol = (col) => { let _columns = fromJS(this.state.columns).toJS() - _columns = _columns.filter(column => column.uuid !== col.uuid) + _columns = this.loopDelCol(_columns, col) this.setState({ columns: _columns @@ -541,6 +600,43 @@ MKEmitter.removeListener('submitStyle', this.getStyle) } + handlecolumns = (columns, fields, config, isSub) => { + return columns.map((col, index) => { + let title = col.label + if (col.editable === 'true') { + title = <span>{col.label}<EditOutlined style={{position: 'absolute', bottom: 0, right: 0, color: '#1890ff', opacity: '0.7'}}/></span> + } + + return { + title: title, + dataIndex: col.uuid, + align: col.Align, + sorter: col.IsSort === 'true', + onCell: () => ({ + column: col, + width: col.Width, + config: config, + upComponent: this.updateCol + }), + onHeaderCell: () => ({ + index: isSub ? undefined : index, + column: col, + fields: fields, + align: col.Align, + moveCol: this.moveCol, + dropCol: this.dropCol, + updateCol: this.updateCol, + addElement: this.addElement, + editColumn: this.editColumn, + pasteCell: this.pasteCell, + changeStyle: this.changeStyle, + deleteCol: this.deleteCol, + }), + children: col.subcols && col.subcols.length ? this.handlecolumns(col.subcols, fields, config, true) : null, + } + }) + } + render() { const { config } = this.props const { fields, card, lineMarks, tableId, visible } = this.state @@ -560,38 +656,7 @@ } } - const columns = this.state.columns.map((col, index) => { - let title = col.label - if (col.editable === 'true') { - title = <span>{col.label}<EditOutlined style={{position: 'absolute', bottom: 0, right: 0, color: '#1890ff', opacity: '0.7'}}/></span> - } - return { - title: title, - dataIndex: col.uuid, - align: col.Align, - sorter: col.IsSort === 'true', - onCell: () => ({ - column: col, - width: col.Width, - config: config, - upComponent: this.updateCol - }), - onHeaderCell: () => ({ - index, - column: col, - fields: fields, - align: col.Align, - moveCol: this.moveCol, - dropCol: this.dropCol, - updateCol: this.updateCol, - addElement: this.addElement, - editColumn: this.editColumn, - pasteCell: this.pasteCell, - changeStyle: this.changeStyle, - deleteCol: this.deleteCol, - }), - } - }) + const columns = this.handlecolumns(this.state.columns, fields, config) return ( <div className={`edit-table-columns ${config.setting.laypage} ${config.wrap.mode || ''} table-vertical-${config.wrap.vertical || ''}`} id={tableId}> diff --git a/src/menu/components/table/edit-table/columns/index.scss b/src/menu/components/table/edit-table/columns/index.scss index b7e3f7b..0accff1 100644 --- a/src/menu/components/table/edit-table/columns/index.scss +++ b/src/menu/components/table/edit-table/columns/index.scss @@ -113,6 +113,7 @@ } >.anticon-copy { color: #26C281; + margin-left: 5px; } >.anticon-delete { color: #ff4d4f; diff --git a/src/menu/components/table/edit-table/index.jsx b/src/menu/components/table/edit-table/index.jsx index ec5c659..ac0caff 100644 --- a/src/menu/components/table/edit-table/index.jsx +++ b/src/menu/components/table/edit-table/index.jsx @@ -350,6 +350,14 @@ if (col.format === 'abs') { config.absFields.push(col.field) } + } else if (col.type === 'colspan' && col.subcols) { + col.subcols.forEach(scol => { + if (scol.type === 'number') { + if (scol.format === 'abs') { + config.absFields.push(scol.field) + } + } + }) } }) diff --git a/src/menu/components/table/edit-table/options.jsx b/src/menu/components/table/edit-table/options.jsx index d04ef9a..9e47b44 100644 --- a/src/menu/components/table/edit-table/options.jsx +++ b/src/menu/components/table/edit-table/options.jsx @@ -62,6 +62,9 @@ options: [ {value: 'true', label: '鍙紪杈�'}, {value: 'false', label: '涓嶅彲缂栬緫'}, + ], + controlFields: [ + {field: 'switchable', values: ['true']}, ] }, { @@ -280,6 +283,18 @@ forbid: !appType || sessionStorage.getItem('editMenuType') === 'popview' }, { + type: 'radio', + field: 'switchable', + label: '鐘舵�佸垏鎹�', + initval: wrap.switchable || 'true', + tooltip: '鏄惁鍙互鍦ㄧ紪杈戝拰榛樿table鐘舵�侀棿鍒囨崲銆�', + required: false, + options: [ + {value: 'true', label: '鍚敤'}, + {value: 'false', label: '绂佺敤'}, + ] + }, + { type: 'multiselect', field: 'blacklist', label: '榛戝悕鍗�', diff --git a/src/menu/components/table/normal-table/columns/index.jsx b/src/menu/components/table/normal-table/columns/index.jsx index 6477d10..917976c 100644 --- a/src/menu/components/table/normal-table/columns/index.jsx +++ b/src/menu/components/table/normal-table/columns/index.jsx @@ -501,7 +501,6 @@ title: col.label, dataIndex: col.uuid, align: col.Align, - // sorter: !isSub && col.IsSort === 'true', sorter: col.IsSort === 'true', onCell: () => ({ column: col, diff --git a/src/tabviews/custom/components/module/account/index.jsx b/src/tabviews/custom/components/module/account/index.jsx index 943e10d..14f4937 100644 --- a/src/tabviews/custom/components/module/account/index.jsx +++ b/src/tabviews/custom/components/module/account/index.jsx @@ -1,7 +1,7 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' import { is, fromJS } from 'immutable' -import { notification, Select, Divider } from 'antd' +import { notification, Select, Divider, Modal } from 'antd' import { PlusOutlined } from '@ant-design/icons' import moment from 'moment' @@ -11,6 +11,7 @@ import './index.scss' const { Option } = Select +const { confirm } = Modal class AccountModule extends Component { static propTpyes = { @@ -82,31 +83,63 @@ } changeBook = (value) => { - const { books } = this.state + const { books, activeItem } = this.state - let activeItem = books.filter(item => item.id === value)[0] + let Item = books.filter(item => item.id === value)[0] - this.setState({activeItem}) - - if (activeItem) { - MKEmitter.emit('resetSelectLine', this.props.config.uuid, activeItem.id, activeItem) - - let userid = sessionStorage.getItem('UserID') || '' - let sid = localStorage.getItem('SessionUid') || '' - let param = { - func: 'sPC_TableData_InUpDe', - LText: `delete tmp_session_show_key where createuserid='${userid}' and createuser='${sid}' and key_type='fcc_years' - insert into tmp_session_show_key ( key_id,key_type,createuserid,CreateUser,CreateStaff) - select '${activeItem.id}','fcc_years','${userid}','${sid}','${sessionStorage.getItem('Full_Name') || ''}'`, - exec_type: 'y' - } - - param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') - param.secretkey = Utils.encrypt('', param.timestamp) - param.LText = Utils.formatOptions(param.LText) - - Api.genericInterface(param) + if (!activeItem && Item) { + this.setBook(Item) + } else if (Item) { + const _this = this + confirm({ + title: '纭畾鍒囨崲璐﹀鍚楋紵', + content: '鍒囨崲璐﹀鏃剁郴缁熼渶瑕佸埛鏂般��', + onOk() { + return new Promise(resolve => { + _this.setBook(Item, resolve) + }) + }, + onCancel() {} + }) } + } + + setBook = (item, resolve) => { + if (!resolve) { + this.setState({activeItem: item}) + + MKEmitter.emit('resetSelectLine', this.props.config.uuid, item.id, item) + } + + let userid = sessionStorage.getItem('UserID') || '' + let sid = localStorage.getItem('SessionUid') || '' + let param = { + func: 'sPC_TableData_InUpDe', + LText: `delete tmp_session_show_key where createuserid='${userid}' and createuser='${sid}' and key_type='fcc_years' + insert into tmp_session_show_key ( key_id,key_type,createuserid,CreateUser,CreateStaff) + select '${item.id}','fcc_years','${userid}','${sid}','${sessionStorage.getItem('Full_Name') || ''}'`, + exec_type: 'y' + } + + param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + param.secretkey = Utils.encrypt('', param.timestamp) + param.LText = Utils.formatOptions(param.LText) + + Api.genericInterface(param).then(res => { + if (!res.status) { + notification.warning({ + top: 92, + message: res.message, + duration: 5 + }) + resolve && resolve() + return + } + + if (resolve) { + window.location.reload() + } + }) } addBook = () => { @@ -150,7 +183,7 @@ {books.map(item => ( <Option disabled={!item.months} key={item.id}>{item.account_name}</Option> ))} - </Select> : <Select value={activeItem ? activeItem.id : ''} placeholder="璇烽�夋嫨璐﹀" onChange={this.changeBook}> + </Select> : <Select value={activeItem ? activeItem.id : ''} disabled={config.wrap.readonly === 'true'} placeholder="璇烽�夋嫨璐﹀" onChange={this.changeBook}> {books.map(item => ( <Option disabled={!item.months} key={item.id}>{item.account_name}</Option> ))} diff --git a/src/tabviews/custom/components/module/account/index.scss b/src/tabviews/custom/components/module/account/index.scss index 4b04107..1821b31 100644 --- a/src/tabviews/custom/components/module/account/index.scss +++ b/src/tabviews/custom/components/module/account/index.scss @@ -16,6 +16,15 @@ .date { margin-left: 15px; } + .ant-select.ant-select-disabled { + .ant-select-selection:hover { + border-color: #d9d9d9; + } + .ant-select-selection, .ant-select-selection:focus, .ant-select-selection:active { + border-color: #d9d9d9; + box-shadow: none; + } + } } .mk-add-book { diff --git a/src/tabviews/custom/components/module/voucher/index.jsx b/src/tabviews/custom/components/module/voucher/index.jsx index aae840b..c230975 100644 --- a/src/tabviews/custom/components/module/voucher/index.jsx +++ b/src/tabviews/custom/components/module/voucher/index.jsx @@ -83,7 +83,7 @@ } // config.wrap.type = 'checkVoucher' - // BID = '20230214130744811P0K95RQ155KG0QIQOFV' + // BID = '20230228173542370E2F4FC1773704C29A6A4' // config.wrap.type = 'checkTemp' // BID = '20230214174458780MFR8IA576ON4VKNOLVH' diff --git a/src/tabviews/custom/components/module/voucher/voucherTable/index.jsx b/src/tabviews/custom/components/module/voucher/voucherTable/index.jsx index 327a6c9..2acf108 100644 --- a/src/tabviews/custom/components/module/voucher/voucherTable/index.jsx +++ b/src/tabviews/custom/components/module/voucher/voucherTable/index.jsx @@ -191,6 +191,16 @@ let line = {...record} line[col.field] = value + if (col.field === 'subject_voucher_text') { + MKEmitter.emit('changeRecord', col.tableId, line) + + setTimeout(() => { + let cl = {subject_voucher_text: 'subject_code', subject_code: 'debit', debit: 'credit'} + MKEmitter.emit('tdFocus', cl[col.uuid] + record.uuid) + }, 50) + return + } + if (col.field === 'debit') { line.credit = '' if (isNaN(line.debit)) { @@ -260,6 +270,11 @@ if (value !== record[col.field]) { let line = {...record, [col.field]: value} + if (col.field === 'subject_voucher_text') { + MKEmitter.emit('changeRecord', col.tableId, line) + return + } + if (col.field === 'debit') { line.credit = '' if (isNaN(line.debit)) { diff --git a/src/tabviews/custom/components/table/base-table/index.jsx b/src/tabviews/custom/components/table/base-table/index.jsx index 08bd627..80579fb 100644 --- a/src/tabviews/custom/components/table/base-table/index.jsx +++ b/src/tabviews/custom/components/table/base-table/index.jsx @@ -75,12 +75,6 @@ setting.orisel = true } - _config.cols.forEach(column => { - if (column.type === 'action') { - column.operations = column.elements - } - }) - _config.style = _config.style || {} this.setState({ diff --git a/src/tabviews/custom/components/table/edit-table/index.jsx b/src/tabviews/custom/components/table/edit-table/index.jsx index c8c762b..3496def 100644 --- a/src/tabviews/custom/components/table/edit-table/index.jsx +++ b/src/tabviews/custom/components/table/edit-table/index.jsx @@ -111,10 +111,6 @@ }) } - if (column.type === 'action') { - column.operations = column.elements - } - _columns.push(column) }) diff --git a/src/tabviews/custom/components/table/edit-table/normalTable/index.jsx b/src/tabviews/custom/components/table/edit-table/normalTable/index.jsx index bcf4ee3..8c85c47 100644 --- a/src/tabviews/custom/components/table/edit-table/normalTable/index.jsx +++ b/src/tabviews/custom/components/table/edit-table/normalTable/index.jsx @@ -916,7 +916,7 @@ pageIndex: 1, // 鍒濆椤甸潰绱㈠紩 pageSize: 10, // 姣忛〉鏁版嵁鏉℃暟 columns: null, // 鏄剧ず鍒� - fields: [], + forms: [], pickup: false, // 鏀惰捣鏈�夋嫨椤� orderfields: {}, // 鎺掑簭id涓巉ield杞崲 loading: false, @@ -932,51 +932,81 @@ let _columns = [] let deForms = [] - columns.forEach(item => { - if (!initEditLine && item.editable === 'true') { - initEditLine = item - } + let _forms = {} - if (item.type === 'text' && item.editable === 'true' && item.editType === 'select' && item.resourceType === '1') { - let _option = Utils.getSelectQueryOptions(item) + let getColumns = (cols) => { + return cols.map(item => { + let cell = null + + if (item.type === 'colspan') { + cell = { title: item.label, align: item.Align } + cell.children = getColumns(item.subcols) + } else { + if (item.editable === 'true') { + _forms[item.field] = item + if (!initEditLine) { + initEditLine = item + } + } + + if (item.type === 'text' && item.editable === 'true' && item.editType === 'select' && item.resourceType === '1') { + let _option = Utils.getSelectQueryOptions(item) + + if (window.GLOB.debugger === true || window.debugger === true) { + console.info(_option.sql) + } + + item.base_sql = window.btoa(window.encodeURIComponent(_option.sql)) + item.arr_field = _option.field + + deForms.push(item) + } + + if (item.field) { + orderfields[item.uuid] = item.field + } - if (window.GLOB.debugger === true || window.debugger === true) { - console.info(_option.sql) + cell = { + align: item.Align, + dataIndex: item.uuid, + title: item.label, + sorter: !!(item.field && item.IsSort === 'true'), + width: item.Width || 120, + $type: item.type, + onCell: record => ({ + record, + col: item, + config: item.type === 'custom' || item.type === 'action' ? {setting, columns: fields} : null, + }) + } } + + return cell + }) + } + _columns = getColumns(columns) - item.base_sql = window.btoa(window.encodeURIComponent(_option.sql)) - item.arr_field = _option.field + let forms = [] + fields.forEach(item => { + if (item.field === setting.primaryKey) return - deForms.push(item) + if (_forms[item.field]) { + forms.push({..._forms[item.field], datatype: item.datatype}) + } else { + forms.push(item) } + }) - if (item.field) { - orderfields[item.uuid] = item.field + _columns.forEach(item => { + if (item.$type === 'action') return + + let _copy = fromJS(item).toJS() + _copy.sorter = false + + if (item.editable === 'true') { + _copy.title = <span>{item.label}<EditOutlined className="system-color mk-edit-sign"/></span> } - - let _item = { - align: item.Align, - dataIndex: item.uuid, - title: item.label, - sorter: item.field && item.IsSort === 'true', - width: item.Width || 120, - onCell: record => ({ - record, - col: item, - config: item.type === 'custom' || item.type === 'action' ? {setting, columns: fields} : null, - }) - } - - if (item.type !== 'action') { - let _copy = fromJS(_item).toJS() - _copy.sorter = false - - if (item.editable === 'true') { - _copy.title = <span>{item.label}<EditOutlined className="system-color mk-edit-sign"/></span> - } - edColumns.push(_copy) - } - _columns.push(_item) + edColumns.push(_copy) }) if (setting.delable !== 'false' && setting.operType !== 'buoyMode') { @@ -993,13 +1023,6 @@ }) } - // if (setting.borderColor) { // 杈规棰滆壊 - // let style = `#${setting.tableId} table, #${setting.tableId} tr, #${setting.tableId} th, #${setting.tableId} td {border-color: ${setting.borderColor}}` - // let ele = document.createElement('style') - // ele.innerHTML = style - // document.getElementsByTagName('head')[0].appendChild(ele) - // } - let size = (setting.pageSize || 10) + '' let pageOptions = ['10', '25', '50', '100', '500', '1000'] @@ -1009,6 +1032,7 @@ } this.setState({ + forms, pageSize: setting.pageSize || 10, pageOptions, columns: _columns, @@ -1035,12 +1059,6 @@ } componentDidMount () { - const { fields, setting } = this.props - - this.setState({ - fields: fields.filter(item => item.field !== setting.primaryKey), - }) - MKEmitter.addListener('subLine', this.subLine) MKEmitter.addListener('nextLine', this.nextLine) MKEmitter.addListener('addRecord', this.addLine) @@ -1286,7 +1304,7 @@ } subLine = (col, record) => { - const { tableId, fields, edData } = this.state + const { tableId, forms, edData } = this.state if (col && col.tableId !== tableId) return @@ -1300,7 +1318,7 @@ setTimeout(() => { let item = fromJS(record).toJS() let line = [] - fields.forEach(col => { + forms.forEach(col => { if (col.editable !== 'true' || item.$deleted) { if (col.type === 'number') { item[col.field] = +item[col.field] @@ -1357,7 +1375,7 @@ } plusLine = () => { - const { edData, fields, initEditLine } = this.state + const { edData, forms, initEditLine } = this.state let item = {...edData[edData.length - 1]} @@ -1365,7 +1383,7 @@ item.$type = 'add' item.$Index = '' - fields.forEach(col => { + forms.forEach(col => { if (col.initval !== '$copy') { item[col.field] = col.initval } @@ -1434,7 +1452,7 @@ addLine = (id, record) => { const { BID } = this.props - const { edData, fields, tableId } = this.state + const { edData, forms, tableId } = this.state if (id) { if (id !== tableId) return @@ -1448,7 +1466,7 @@ item.$Index = '' item.$$BID = BID || '' - fields.forEach(col => { + forms.forEach(col => { if (col.initval !== '$copy') { item[col.field] = col.initval } @@ -1481,7 +1499,7 @@ item.$$BID = BID || '' } - fields.forEach(col => { + forms.forEach(col => { if (col.initval !== '$copy') { item[col.field] = col.initval } @@ -1502,7 +1520,7 @@ } checkData = () => { - const { edData, fields } = this.state + const { edData, forms } = this.state if (edData.length === 0) { notification.warning({ @@ -1516,7 +1534,7 @@ let Index = 1 let data = fromJS(edData).toJS().map(item => { let line = [] - fields.forEach(col => { + forms.forEach(col => { if (col.editable !== 'true' || item.$deleted) { if (col.type === 'number') { item[col.field] = +item[col.field] @@ -1581,7 +1599,7 @@ submit = (data, type) => { const { submit, BID, setting } = this.props - const { fields } = this.state + const { forms } = this.state if (type !== 'simple' && (setting.commit === 'change' || setting.commit === 'simple')) { data = data.filter(item => !item.$origin) @@ -1596,7 +1614,7 @@ return } - let result = getEditTableSql(submit, data, fields) + let result = getEditTableSql(submit, data, forms) let param = { excel_in: result.lines, @@ -1996,9 +2014,9 @@ </div> : null} <div className="edit-custom-table-btn-wrap" style={submit.wrapStyle}> {!submit.hasAction && pickup ? <Button style={submit.style} onClick={() => setTimeout(() => {this.checkData()}, 10)} loading={loading} className="submit-table" type="link">鎻愪氦</Button> : null} - <Switch title="缂栬緫" className="main-pickup" checkedChildren="寮�" unCheckedChildren="鍏�" disabled={loading || this.props.loading} checked={pickup} onChange={this.pickupChange} /> + {setting.switchable !== 'false' ? <Switch title="缂栬緫" className="main-pickup" checkedChildren="寮�" unCheckedChildren="鍏�" disabled={loading || this.props.loading} checked={pickup} onChange={this.pickupChange} /> : null} </div> - <div className={`edit-custom-table ${pickup ? 'editable' : ''} ${setting.tableHeader || ''} ${setting.operType || ''} ${height ? 'fixed-height' : ''} ${setting.mode || ''} table-vertical-${setting.vertical || ''}`} id={tableId}> + <div className={`edit-custom-table ${pickup ? 'editable' : ''} ${setting.tableHeader || ''} ${setting.operType || ''} ${height ? 'fixed-height' : ''} ${setting.mode || ''} table-vertical-${setting.vertical || ''} mk-edit-${setting.editType || 'simple'}`} id={tableId}> <Table rowKey="$$uuid" components={components} diff --git a/src/tabviews/custom/components/table/edit-table/normalTable/index.scss b/src/tabviews/custom/components/table/edit-table/normalTable/index.scss index 25f0089..6d3798c 100644 --- a/src/tabviews/custom/components/table/edit-table/normalTable/index.scss +++ b/src/tabviews/custom/components/table/edit-table/normalTable/index.scss @@ -318,6 +318,11 @@ } } } +.edit-custom-table.mk-edit-multi { + th .ant-table-column-title .anticon-edit { + display: none; + } +} .edit-custom-table.editable { td { background-color: #ffffff!important; diff --git a/src/tabviews/custom/components/table/normal-table/index.jsx b/src/tabviews/custom/components/table/normal-table/index.jsx index efacce5..7f66256 100644 --- a/src/tabviews/custom/components/table/normal-table/index.jsx +++ b/src/tabviews/custom/components/table/normal-table/index.jsx @@ -130,19 +130,6 @@ } } - _config.cols.forEach(column => { - if (column.type === 'action') { - column.operations = column.elements - } - }) - - // if (setting.color) { - // setting.style.color = setting.color - // } - // if (setting.fontSize) { - // setting.style.fontSize = setting.fontSize - // } - if (_config.wrap.collapse === 'true') { _config.wrap.title = _config.wrap.title || ' ' } diff --git a/src/tabviews/custom/components/timeline/normal-timeline/index.jsx b/src/tabviews/custom/components/timeline/normal-timeline/index.jsx index 2d9f4c7..e97abb9 100644 --- a/src/tabviews/custom/components/timeline/normal-timeline/index.jsx +++ b/src/tabviews/custom/components/timeline/normal-timeline/index.jsx @@ -257,6 +257,7 @@ return } + // 鍐呴儴鍑芥暟涓簔_mk_express锛岃〃绀烘煡璇㈠揩閫掍俊鎭� if (config.setting.interType === 'inner' && config.setting.innerFunc === 'z_mk_express') { this.getExpress() return diff --git a/src/tabviews/zshare/actionList/excelInbutton/excelin/index.jsx b/src/tabviews/zshare/actionList/excelInbutton/excelin/index.jsx index 86891ed..7610cae 100644 --- a/src/tabviews/zshare/actionList/excelInbutton/excelin/index.jsx +++ b/src/tabviews/zshare/actionList/excelInbutton/excelin/index.jsx @@ -45,7 +45,7 @@ let sheetName = btn.verify.sheet let errDetail = '' - if (Object.keys(workbook.Sheets).length === 1) { + if (sheetName === 'Sheet1' && Object.keys(workbook.Sheets).length === 1) { sheetName = Object.keys(workbook.Sheets)[0] } diff --git a/src/tabviews/zshare/actionList/exceloutbutton/index.jsx b/src/tabviews/zshare/actionList/exceloutbutton/index.jsx index 41f9ddb..5615c35 100644 --- a/src/tabviews/zshare/actionList/exceloutbutton/index.jsx +++ b/src/tabviews/zshare/actionList/exceloutbutton/index.jsx @@ -594,29 +594,68 @@ this.table2excel(column, table, this.state.excelName.replace(/\.xlsx/ig, '.xls')) - if (btn.verify && btn.verify.enable === 'true' && btn.verify.script) { + if (btn.verify.enable === 'true' && btn.verify.script) { this.execCustomScript() } else { this.execSuccess({ErrCode: 'S', ErrMesg: '瀵煎嚭鎴愬姛锛�'}) } } else { + let letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + let cols = [] + + for (let index = 0; index < columns.length; index++) { + let i = Math.floor(index / 26) + let s = letters[i - 1] || '' + + cols.push(s + letters[index % 26]) + } + + let table = [] let _header = [] let _topRow = {} let colwidth = [] let requires = [] + let merges = [] columns.forEach((col, i) => { _header.push(col.Column) _topRow[col.Column] = col.Text - colwidth.push({width: col.Width || 20}) + colwidth.push({wch: col.Width || 20}) if (col.required === 'true') { requires.push(i) } }) - - let table = [] - - table.push(_topRow) + + if (btn.verify.merge === 'true') { + let fLine = {} + let sLine = {} + let sign = '' + columns.forEach((col, i) => { + if (/.+-.+/.test(col.Text)) { + let _sign = col.Text.split('-')[0] + let _name = col.Text.split('-')[1] + fLine[col.Column] = _sign + sLine[col.Column] = _name + + if (sign === _sign) { + merges[merges.length - 1] = merges[merges.length - 1].split(':')[0] + `:${cols[i]}1` + } else { + merges.push(`${cols[i]}1:${cols[i]}2`) + sign = _sign + } + } else { + fLine[col.Column] = col.Text + sLine[col.Column] = col.Text + sign = '' + merges.push(`${cols[i]}1:${cols[i]}2`) + } + }) + + table.push(fLine) + table.push(sLine) + } else { + table.push(_topRow) + } data && data.forEach((item, index) => { let _row = {} @@ -646,22 +685,42 @@ ws['!cols'] = colwidth + if (btn.verify.rowHeight) { + ws['!rows'] = Array(table.length).fill({hpx: btn.verify.rowHeight}) + } + if (requires.length) { - let cols = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' requires.forEach(col => { if (cols[col]) { ws[cols[col] + '1'].s = {font: { color: { rgb: 'F5222D' } }} } }) } + + if (merges.length) { + ws['!merges'] = [] + merges.forEach(item => { + ws['!merges'].push(XLSX.utils.decode_range(item)) + }) + + cols.forEach(col => { + if (ws[col + '1'].s) { + ws[col + '1'].s = {font: { color: { rgb: 'F5222D' } }, alignment: { horizontal: 'center', vertical: 'center' }} + } else { + ws[col + '1'].s = {alignment: { horizontal: 'center', vertical: 'center' }} + } + ws[col + '2'].s = {alignment: { horizontal: 'center', vertical: 'center' }} + }) + } + // ws["A1"].s = {fill: { bgColor: { rgb: "FFFFAA" }}, font: { color: { rgb: "1890FF" } }} - + const wb = XLSX.utils.book_new() - XLSX.utils.book_append_sheet(wb, ws, 'Sheet1') + XLSX.utils.book_append_sheet(wb, ws, btn.verify.sheet || 'Sheet1') XLSX.writeFile(wb, this.state.excelName) - if (btn.verify && btn.verify.enable === 'true' && btn.verify.script) { + if (btn.verify.enable === 'true' && btn.verify.script) { this.execCustomScript() } else { this.execSuccess({ErrCode: 'S', ErrMesg: '瀵煎嚭鎴愬姛锛�'}) diff --git a/src/tabviews/zshare/actionList/index.scss b/src/tabviews/zshare/actionList/index.scss index 8efb160..99ac35f 100644 --- a/src/tabviews/zshare/actionList/index.scss +++ b/src/tabviews/zshare/actionList/index.scss @@ -49,6 +49,7 @@ height: 34px; border-radius: 0px; padding-left: 15px!important; + border-bottom-width: 1px!important; .anticon { display: none; } diff --git a/src/tabviews/zshare/actionList/normalbutton/index.jsx b/src/tabviews/zshare/actionList/normalbutton/index.jsx index 036c51b..1735f7a 100644 --- a/src/tabviews/zshare/actionList/normalbutton/index.jsx +++ b/src/tabviews/zshare/actionList/normalbutton/index.jsx @@ -1023,7 +1023,7 @@ if (params[0].$unCheckParam) { this.checkLoopRequest(params, _resolve) - } else if (params.length <= 20) { + } else if (params.length <= 20 && btn.execType !== 'single') { let deffers = params.map((param, i) => { return new Promise(resolve => { setTimeout(() => { @@ -1085,7 +1085,7 @@ _resolve() }) } else { // 瓒呭嚭20涓姹傛椂寰幆鎵ц - if (btn.progress === 'progressbar' && btn.$toolbtn) { + if (btn.progress === 'progressbar' && btn.$toolbtn && params.length > 1) { this.setState({ loadingTotal: params.length }) diff --git a/src/tabviews/zshare/actionList/popupbutton/index.jsx b/src/tabviews/zshare/actionList/popupbutton/index.jsx index bf6178c..43b9afa 100644 --- a/src/tabviews/zshare/actionList/popupbutton/index.jsx +++ b/src/tabviews/zshare/actionList/popupbutton/index.jsx @@ -348,7 +348,7 @@ className={className} onClick={(e) => {e.stopPropagation(); this.actionTrigger()}} >{label}</Button> - <span onClick={(e) => {e.stopPropagation()}}>{this.getPop()}</span> + <span onClick={(e) => {e.stopPropagation()}} onDoubleClick={(e) => {e.stopPropagation()}}>{this.getPop()}</span> </> ) } diff --git a/src/templates/sharecomponent/actioncomponent/verifyexcelin/index.jsx b/src/templates/sharecomponent/actioncomponent/verifyexcelin/index.jsx index 6224ab7..249c732 100644 --- a/src/templates/sharecomponent/actioncomponent/verifyexcelin/index.jsx +++ b/src/templates/sharecomponent/actioncomponent/verifyexcelin/index.jsx @@ -762,13 +762,18 @@ <Form {...formItemLayout}> <Row gutter={24}> <Col span={8}> - <Form.Item label="琛ㄥ悕"> + <Form.Item label={ + <Tooltip placement="bottomLeft" title="瀵煎叆鏃跺伐浣滆〃鍚嶄笌excel涓繀椤讳竴鑷达紝娉細宸ヤ綔琛ㄥ悕涓篠heet1涓攅xcel涓粎鏈変竴涓伐浣滆〃鏃朵笉杩涜琛ㄥ悕楠岃瘉銆�"> + <QuestionCircleOutlined className="mk-form-tip" /> + 宸ヤ綔琛� + </Tooltip> + }> {getFieldDecorator('sheet', { initialValue: verify.sheet || '', rules: [ { required: true, - message: '璇疯緭鍏ヨ〃鍚�!' + message: '璇疯緭鍏ュ伐浣滆〃鍚�!' } ] })(<Input placeholder="" autoComplete="off" />)} diff --git a/src/templates/sharecomponent/actioncomponent/verifyexcelout/datasource/index.jsx b/src/templates/sharecomponent/actioncomponent/verifyexcelout/datasource/index.jsx index c4df36d..0159b4e 100644 --- a/src/templates/sharecomponent/actioncomponent/verifyexcelout/datasource/index.jsx +++ b/src/templates/sharecomponent/actioncomponent/verifyexcelout/datasource/index.jsx @@ -1,6 +1,6 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' -import { Form, Row, Col, Input, Radio, Tooltip, notification } from 'antd' +import { Form, Row, Col, Input, Radio, Tooltip, notification, InputNumber } from 'antd' import { QuestionCircleOutlined } from '@ant-design/icons' import Utils from '@/utils/utils.js' @@ -234,6 +234,46 @@ </Radio.Group>)} </Form.Item> </Col> : null} + {btnType !== 'print' ? <Col span={8}> + <Form.Item label={ + <Tooltip placement="topLeft" title="瀵煎嚭excel涓伐浣滆〃鍚嶇О锛岄粯璁や负Sheet1銆�"> + <QuestionCircleOutlined className="mk-form-tip" /> + 宸ヤ綔琛� + </Tooltip> + }> + {getFieldDecorator('sheet', { + initialValue: setting.sheet || '' + })(<Input placeholder="" autoComplete="off" />)} + </Form.Item> + </Col> : null} + {btnType !== 'print' ? <Col span={8}> + <Form.Item label={ + <Tooltip placement="topLeft" title="瀵煎嚭excel涓殑琛岄珮銆�"> + <QuestionCircleOutlined className="mk-form-tip" /> + 琛岄珮 + </Tooltip> + }> + {getFieldDecorator('rowHeight', { + initialValue: setting.rowHeight || '' + })(<InputNumber min={10} max={200} precision={0} />)} + </Form.Item> + </Col> : null} + {btnType !== 'print' ? <Col span={8}> + <Form.Item label={ + <Tooltip placement="topLeft" title="璇峰皢闇�瑕佸悎骞剁殑琛ㄥご浣跨敤涓í绾垮垎闅旓紙濡傦細鍟嗗搧-鏁伴噺銆佸晢鍝�-鍗曚环锛夛紝鍓嶉儴鍒嗗皢浣滀负涓昏〃澶达紝鍚庨儴鍒嗗皢浣滀负瀛愯〃澶淬��"> + <QuestionCircleOutlined className="mk-form-tip" /> + 琛ㄥご鍚堝苟 + </Tooltip> + }> + {getFieldDecorator('merge', { + initialValue: setting.merge || 'false' + })( + <Radio.Group> + <Radio value="false">鍚�</Radio> + <Radio value="true">鏄�</Radio> + </Radio.Group>)} + </Form.Item> + </Col> : null} </Row> </Form> </div> diff --git a/src/templates/zshare/verifycard/customscript/index.jsx b/src/templates/zshare/verifycard/customscript/index.jsx index 1f172d4..4c4a094 100644 --- a/src/templates/zshare/verifycard/customscript/index.jsx +++ b/src/templates/zshare/verifycard/customscript/index.jsx @@ -68,6 +68,10 @@ values.uuid = editItem ? editItem.uuid : '' values.position = values.position || (editItem ? editItem.position : 'front') + if (type === 'fullscreen' && editItem) { + values.status = editItem.status || 'true' + } + let _quot = values.sql.match(/'{1}/g) let _lparen = values.sql.match(/\({1}/g) let _rparen = values.sql.match(/\){1}/g) @@ -119,10 +123,10 @@ let _backCustomScript = '' // 榛樿sql鍚庢墽琛岃剼鏈� this.props.customScripts.forEach(item => { - if (item.status === 'false' && values.uuid !== item.uuid) return - let _item = values.uuid === item.uuid ? values : item + if (_item.status === 'false') return + if (_item.position === 'init') { _initCustomScript += ` /* 鍒濆鍖栬剼鏈� */ diff --git a/src/views/menudesign/index.jsx b/src/views/menudesign/index.jsx index 93dd0b6..ce3e6e5 100644 --- a/src/views/menudesign/index.jsx +++ b/src/views/menudesign/index.jsx @@ -876,7 +876,7 @@ } else { resolve(result) } - }) + }, this.netError) }) } else { resolve({status: true}) @@ -909,7 +909,7 @@ } return Api.getSystemConfig(_param) } - }).then(res => { // 椤甸潰鎸夐挳鍏崇郴淇濆瓨 + }, this.netError).then(res => { // 椤甸潰鎸夐挳鍏崇郴淇濆瓨 if (!res || !res.status) return res this.setState({ @@ -923,7 +923,7 @@ status: true } } - }).then(res => { + }, this.netError).then(res => { this.setState({ menuloading: false }) @@ -944,10 +944,23 @@ duration: 5 }) } - }) + }, this.netError) }, 300 + (+sessionStorage.getItem('mkDelay'))) } + netError = (error) => { + this.setState({ + menuloading: false + }) + if (!error) { + notification.warning({ + top: 92, + message: '淇濆瓨澶辫触锛岃妫�鏌ョ綉缁滄槸鍚︽甯搞��', + duration: 5 + }) + } + } + getRoleFields = () => { if (sessionStorage.getItem('sysRoles')) return diff --git a/src/views/mobdesign/index.jsx b/src/views/mobdesign/index.jsx index f54144d..1b227df 100644 --- a/src/views/mobdesign/index.jsx +++ b/src/views/mobdesign/index.jsx @@ -1607,14 +1607,14 @@ } resolve(result) - }) + }, this.netError) } else { resolve(res) } } else { resolve(res) } - }) + }, this.netError) } } }).then(res => { // 椤甸潰淇濆瓨 @@ -1652,10 +1652,23 @@ duration: 5 }) } - }) + }, this.netError) }, 300 + (+sessionStorage.getItem('mkDelay'))) } + netError = (error) => { + this.setState({ + menuloading: false + }) + if (!error) { + notification.warning({ + top: 92, + message: '淇濆瓨澶辫触锛岃妫�鏌ョ綉缁滄槸鍚︽甯搞��', + duration: 5 + }) + } + } + getRoleFields = () => { if (sessionStorage.getItem('sysRoles')) return diff --git a/src/views/pcdesign/index.jsx b/src/views/pcdesign/index.jsx index 36018b0..10b55fc 100644 --- a/src/views/pcdesign/index.jsx +++ b/src/views/pcdesign/index.jsx @@ -1374,14 +1374,14 @@ } resolve(result) - }) + }, this.netError) } else { resolve(res) } } else { resolve(res) } - }) + }, this.netError) } } }).then(res => { // 椤甸潰淇濆瓨 @@ -1419,10 +1419,23 @@ duration: 5 }) } - }) + }, this.netError) }, 300 + (+sessionStorage.getItem('mkDelay'))) } + netError = (error) => { + this.setState({ + menuloading: false + }) + if (!error) { + notification.warning({ + top: 92, + message: '淇濆瓨澶辫触锛岃妫�鏌ョ綉缁滄槸鍚︽甯搞��', + duration: 5 + }) + } + } + getRoleFields = () => { if (sessionStorage.getItem('sysRoles') || sessionStorage.getItem('permFuncField')) return Api.getSystemConfig({func: 'sPC_Get_Roles_sModular'}).then(res => { diff --git a/src/views/tabledesign/index.jsx b/src/views/tabledesign/index.jsx index 5a0b0c8..0689387 100644 --- a/src/views/tabledesign/index.jsx +++ b/src/views/tabledesign/index.jsx @@ -595,7 +595,7 @@ new Promise(resolve => { Api.getSystemConfig(param).then(res => { resolve(res) - }) + }, this.netError) }).then(res => { if (!res || !res.status) return res @@ -629,10 +629,23 @@ duration: 5 }) } - }) + }, this.netError) }, 300 + (+sessionStorage.getItem('mkDelay'))) } + netError = (error) => { + this.setState({ + menuloading: false + }) + if (!error) { + notification.warning({ + top: 92, + message: '淇濆瓨澶辫触锛岃妫�鏌ョ綉缁滄槸鍚︽甯搞��', + duration: 5 + }) + } + } + getRoleFields = () => { if (sessionStorage.getItem('sysRoles')) return Api.getSystemConfig({func: 'sPC_Get_Roles_sModular'}).then(res => { -- Gitblit v1.8.0