From 1bec8d69cf14bd88591eee5b0320c5c8f6c25a08 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期五, 08 三月 2024 21:19:31 +0800 Subject: [PATCH] Merge branch 'master' into positec --- src/utils/utils-datamanage.js | 6 src/menu/picturecontroller/index.jsx | 2 src/utils/utils-custom.js | 10 src/menu/components/card/cardcellcomponent/elementform/index.jsx | 2 src/tabviews/custom/components/share/normalTable/index.scss | 77 +--- src/templates/zshare/verifycard/customscript/index.jsx | 18 src/tabviews/custom/popview/index.jsx | 3 src/menu/components/table/normal-table/columns/editColumn/index.jsx | 10 src/tabviews/zshare/actionList/newpagebutton/index.jsx | 2 src/tabviews/zshare/actionList/normalbutton/index.jsx | 18 src/menu/components/table/edit-table/columns/editColumn/index.jsx | 11 src/templates/sharecomponent/actioncomponent/verifyexcelin/index.jsx | 32 + src/menu/datasource/verifycard/index.jsx | 38 +- src/tabviews/custom/components/card/data-card/index.jsx | 7 src/components/normalform/modalform/mkSelect/index.jsx | 11 src/menu/components/table/edit-table/columns/editColumn/formconfig.jsx | 2 src/tabviews/custom/components/card/cardcellList/index.jsx | 2 src/mob/colorsketch/index.jsx | 5 src/tabviews/custom/components/table/normal-table/index.jsx | 8 src/templates/sharecomponent/actioncomponent/verifyexcelout/columnform/index.jsx | 11 src/components/normalform/modalform/mkRadio/index.jsx | 11 src/tabviews/custom/components/chart/antv-pie/index.jsx | 4 src/tabviews/custom/components/table/edit-table/normalTable/index.jsx | 8 src/tabviews/zshare/mutilform/index.jsx | 14 src/tabviews/custom/index.jsx | 2 src/tabviews/zshare/topSearch/advanceform/index.scss | 3 src/templates/sharecomponent/searchcomponent/index.scss | 3 src/menu/components/table/normal-table/columns/editColumn/formconfig.jsx | 15 src/tabviews/custom/components/chart/antv-bar-line/index.jsx | 47 ++ src/tabviews/custom/components/table/base-table/index.jsx | 9 package-lock.json | 38 + src/tabviews/custom/components/chart/antv-dashboard/index.jsx | 4 src/views/printTemplate/index.jsx | 53 +++ src/views/printTemplate/index.scss | 7 src/templates/sharecomponent/actioncomponent/verifyexcelin/columnform/index.jsx | 9 src/tabviews/custom/components/card/double-data-card/index.jsx | 7 src/templates/zshare/verifycard/callbackcustomscript/index.jsx | 30 + src/menu/datasource/verifycard/customscript/index.jsx | 2 src/menu/components/table/base-table/columns/editColumn/formconfig.jsx | 15 src/tabviews/zshare/actionList/exceloutbutton/index.jsx | 6 src/views/rolemanage/index.jsx | 3 src/menu/components/card/cardcellcomponent/dragaction/card.jsx | 2 src/menu/components/chart/antv-bar/index.jsx | 46 ++ src/tabviews/custom/components/table/edit-table/index.jsx | 9 src/templates/zshare/verifycard/customform/index.jsx | 10 src/api/index.js | 8 src/tabviews/custom/components/share/normalTable/index.jsx | 53 +- src/tabviews/zshare/topSearch/index.scss | 3 src/menu/components/search/main-search/index.scss | 3 src/utils/utils.js | 16 src/templates/sharecomponent/actioncomponent/verifyexcelout/index.jsx | 73 +++- src/menu/components/chart/antv-bar/chartcompile/formconfig.jsx | 9 src/menu/components/table/base-table/columns/editColumn/index.jsx | 10 public/manifest.json | 2 src/templates/zshare/formconfig.jsx | 15 src/templates/zshare/verifycard/index.jsx | 40 +- src/menu/components/share/actioncomponent/index.jsx | 5 src/menu/urlfieldcomponent/index.jsx | 2 src/tabviews/zshare/actionList/printbutton/index.jsx | 14 src/menu/components/search/main-search/index.jsx | 28 src/tabviews/custom/components/table/edit-table/normalTable/index.scss | 77 +--- src/views/login/index.scss | 9 package.json | 2 src/templates/zshare/verifycard/baseform/index.jsx | 14 src/views/login/index.jsx | 1 65 files changed, 677 insertions(+), 339 deletions(-) diff --git a/package-lock.json b/package-lock.json index c9ea0db..c560381 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4304,12 +4304,30 @@ "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" }, "axios": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz", - "integrity": "sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==", + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", + "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", "requires": { - "follow-redirects": "1.5.10", - "is-buffer": "^2.0.2" + "follow-redirects": "^1.15.4", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + }, + "dependencies": { + "follow-redirects": { + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==" + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + } } }, "axobject-query": { @@ -11438,11 +11456,6 @@ "binary-extensions": "^1.0.0" } }, - "is-buffer": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", - "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==" - }, "is-callable": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", @@ -16929,6 +16942,11 @@ "ipaddr.js": "1.9.0" } }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, "prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", diff --git a/package.json b/package.json index bad35c0..8bcac9a 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "@uiw/react-codemirror": "^2.2.1", "antd": "^3.26.20", "antd-mobile": "^5.14.2", - "axios": "^0.19.0", + "axios": "^1.6.7", "babel-eslint": "10.0.2", "babel-jest": "^24.8.0", "babel-loader": "8.0.6", diff --git a/public/manifest.json b/public/manifest.json index aa4803e..f3adf88 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -6,5 +6,5 @@ "display": "standalone", "theme_color": "#000000", "background_color": "#ffffff", - "mk_version": "20240203" + "mk_version": "20240302" } diff --git a/src/api/index.js b/src/api/index.js index fa456b0..b340607 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -57,6 +57,9 @@ return Promise.reject(response.data) } else { + if (response.config.requestId) { + response.data.$requestId = response.config.requestId + } return Promise.resolve(response.data) } }, (error) => { @@ -869,7 +872,7 @@ * @description 鑾峰彇涓氬姟閫氱敤鎺ュ彛 * 璁块棶 'https://sso.mk9h.cn/webapi/dostars'鎴栦簯绔椂锛屼紶鍏serid銆丩oginUID */ - genericInterface (param, script = '', position) { + genericInterface (param, script = '', position, requestId = '') { param.userid = param.userid || sessionStorage.getItem('UserID') || '' param.lang = param.lang || sessionStorage.getItem('lang') || '' param.SessionUid = localStorage.getItem('SessionUid') || '' @@ -982,7 +985,8 @@ return axios({ url: `${url}${param.func ? '/' + param.func : ''}`, method: 'post', - data: JSON.stringify(param) + data: JSON.stringify(param), + requestId }) } } diff --git a/src/components/normalform/modalform/mkRadio/index.jsx b/src/components/normalform/modalform/mkRadio/index.jsx index 587fef6..ddebf3e 100644 --- a/src/components/normalform/modalform/mkRadio/index.jsx +++ b/src/components/normalform/modalform/mkRadio/index.jsx @@ -26,17 +26,6 @@ return !is(fromJS(this.state), fromJS(nextState)) } - UNSAFE_componentWillReceiveProps (nextProps) { - const { config } = this.state - - if (!is(fromJS(config.oriOptions), fromJS(nextProps.config.oriOptions))) { - this.setState({ - config: fromJS(nextProps.config).toJS(), - options: fromJS(nextProps.config.options).toJS() - }) - } - } - componentWillUnmount () { this.setState = () => { return diff --git a/src/components/normalform/modalform/mkSelect/index.jsx b/src/components/normalform/modalform/mkSelect/index.jsx index a1b4479..39b5546 100644 --- a/src/components/normalform/modalform/mkSelect/index.jsx +++ b/src/components/normalform/modalform/mkSelect/index.jsx @@ -31,17 +31,6 @@ MKEmitter.addListener('mkFC', this.mkFormControl) } - UNSAFE_componentWillReceiveProps (nextProps) { - const { config } = this.state - - if (!is(fromJS(config.oriOptions), fromJS(nextProps.config.oriOptions))) { - this.setState({ - config: fromJS(nextProps.config).toJS(), - options: fromJS(nextProps.config.options).toJS() - }) - } - } - shouldComponentUpdate (nextProps, nextState) { return !is(fromJS(this.state), fromJS(nextState)) } diff --git a/src/menu/components/card/cardcellcomponent/dragaction/card.jsx b/src/menu/components/card/cardcellcomponent/dragaction/card.jsx index 7e4b3aa..7395d2a 100644 --- a/src/menu/components/card/cardcellcomponent/dragaction/card.jsx +++ b/src/menu/components/card/cardcellcomponent/dragaction/card.jsx @@ -83,7 +83,7 @@ const getContent = () => { if (card.eleType === 'sequence') { return ( - <div style={{height: card.innerHeight || 'auto'}} className="ant-mk-text">1</div> + <div style={{height: card.innerHeight || 'auto'}} className="ant-mk-text">{card.prefix || ''}1{card.postfix || ''}</div> ) } else if (card.eleType === 'text' || card.eleType === 'number') { let val = `${card.prefix || ''}${card.datatype === 'static' ? (card.value || '') : (card.field || '')}${card.postfix || ''}` diff --git a/src/menu/components/card/cardcellcomponent/elementform/index.jsx b/src/menu/components/card/cardcellcomponent/elementform/index.jsx index 1a96928..8488fd1 100644 --- a/src/menu/components/card/cardcellcomponent/elementform/index.jsx +++ b/src/menu/components/card/cardcellcomponent/elementform/index.jsx @@ -14,7 +14,7 @@ const MkEditIcon = asyncComponent(() => import('@/components/mkIcon')) const cardTypeOptions = { - sequence: ['eleType', 'width'], + sequence: ['eleType', 'width', 'prefix', 'postfix'], text: ['eleType', 'datatype', 'format', 'width', 'height', 'prefix', 'postfix', 'link', 'anchors', 'noValue', 'bgImage', 'fixStyle', 'copyable', 'alignItems', 'sortField'], number: ['eleType', 'datatype', 'width', 'height', 'prefix', 'postfix', 'noValue', 'fixStyle', 'alignItems'], picture: ['eleType', 'datatype', 'width', 'lenWidRadio', 'maxWidth', 'link', 'noValue'], diff --git a/src/menu/components/chart/antv-bar/chartcompile/formconfig.jsx b/src/menu/components/chart/antv-bar/chartcompile/formconfig.jsx index f0b3e10..7946f54 100644 --- a/src/menu/components/chart/antv-bar/chartcompile/formconfig.jsx +++ b/src/menu/components/chart/antv-bar/chartcompile/formconfig.jsx @@ -432,7 +432,7 @@ required: false, options: labelOptions, controlFields: [ - {field: 'labelColor', values: ['true']} + {field: 'labelUnit', values: ['true', 'top', 'middle', 'bottom']} ] }, { type: 'radio', @@ -583,6 +583,13 @@ forbid: appType === 'mob', required: false }, { + type: 'text', + field: 'labelUnit', + label: '鏍囨敞鍗曚綅', + initval: card.labelUnit ||'', + forbid: appType === 'mob', + required: false + }, { type: 'color', field: 'lineColor', label: '鍧愭爣杞撮鑹�', diff --git a/src/menu/components/chart/antv-bar/index.jsx b/src/menu/components/chart/antv-bar/index.jsx index 8074b88..0ad4db4 100644 --- a/src/menu/components/chart/antv-bar/index.jsx +++ b/src/menu/components/chart/antv-bar/index.jsx @@ -337,6 +337,9 @@ if (plot.show === 'percent') { value = value + '%' } + if (plot.labelUnit) { + value = value + plot.labelUnit + } let _color = color if (plot.labelColor === 'custom' && colors.has(key)) { @@ -720,6 +723,9 @@ if (plot.show === 'percent') { value = value + '%' } + if (plot.labelUnit) { + value = value + plot.labelUnit + } if (label === 'true' && plot.labelColor === 'custom' && colors.has(key)) { lablecfg.style.fill = colors.get(key) @@ -770,6 +776,9 @@ _chart.label('value*key', (value, key) => { if (plot.show === 'percent') { value = value + '%' + } + if (plot.labelUnit) { + value = value + plot.labelUnit } if (label === 'true' && plot.labelColor === 'custom' && colors.has(key)) { @@ -842,6 +851,9 @@ if (item.show === 'percent') { value = value + '%' } + if (plot.labelUnit) { + value = value + plot.labelUnit + } if (plot.label === 'true' && plot.labelColor === 'custom') { lablecfg.style.fill = item.color @@ -884,6 +896,9 @@ _chart.label(item.name, (value) => { if (item.show === 'percent') { value = value + '%' + } + if (plot.labelUnit) { + value = value + plot.labelUnit } let _color = color @@ -977,12 +992,31 @@ if (plot.grid === 'hidden') { yc.grid = null } - if (plot.y_line === 'show') { + if (plot.tick === 'hidden') { + xc.tickLine = null + } + if (plot.x_line === 'hidden') { + xc.line = null + } + if (plot.y_line === 'hidden') { + yc.line = null + } else { yc.line = {style: { stroke: '#D1D2CE' }} } + if (plot.x_label === 'hidden') { + xc.label = null + } + if (plot.y_label === 'hidden') { + yc.label = null + } + if (plot.lineColor) { - xc.tickLine = {style: { stroke: plot.lineColor }} - xc.line = { style: { stroke: plot.lineColor } } + if (xc.tickLine !== null) { + xc.tickLine = {style: { stroke: plot.lineColor }} + } + if (xc.line !== null) { + xc.line = { style: { stroke: plot.lineColor } } + } if (yc.grid !== null) { yc.grid = { line: { style: { stroke: plot.lineColor } }} } @@ -1119,6 +1153,9 @@ if (plot.show === 'percent') { value = value + '%' } + if (plot.labelUnit) { + value = value + plot.labelUnit + } if (plot.label === 'true' && plot.labelColor === 'custom' && colors.has(key)) { lablecfg.style.fill = colors.get(key) @@ -1180,6 +1217,9 @@ if (plot.show === 'percent') { value = value + '%' } + if (plot.labelUnit) { + value = value + plot.labelUnit + } if (plot.label === 'true' && plot.labelColor === 'custom' && colors.has(key)) { lablecfg.style.fill = colors.get(key) diff --git a/src/menu/components/search/main-search/index.jsx b/src/menu/components/search/main-search/index.jsx index cd9612d..1f3669c 100644 --- a/src/menu/components/search/main-search/index.jsx +++ b/src/menu/components/search/main-search/index.jsx @@ -120,19 +120,19 @@ this.props.updateConfig(component) } - checkComponent = (component) => { - this.updateComponent(component) + // checkComponent = (component) => { + // this.updateComponent(component) - let _item = null - component.search.forEach(item => { - if (!_item && item.focus) { - _item = item - } - }) - if (_item) { - this.handleSearch(_item) - } - } + // let _item = null + // component.search.forEach(item => { + // if (!_item && item.focus) { + // _item = item + // } + // }) + // if (_item) { + // this.handleSearch(_item) + // } + // } /** * @description 鎼滅储鏉′欢椤哄簭璋冩暣锛屾垨鎷栨嫿娣诲姞 @@ -345,6 +345,7 @@ _card.search.push(item) this.updateComponent(_card) + this.handleSearch(item) } else if (type === 'multil') { _card.search.push(...item) @@ -396,7 +397,8 @@ <EditOutlined style={{color: '#1890ff'}} title="缂栬緫"/> </NormalForm> <CopyComponent type="mainsearch" card={card}/> - <PasteComponent config={card} options={['search', 'form']} updateConfig={this.checkComponent} /> + {/* <PasteComponent config={card} options={['search', 'form']} updateConfig={this.checkComponent} /> */} + <PasteComponent config={card} options={['search', 'form']} /> <FontColorsOutlined className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle}/> <DeleteOutlined className="close" onClick={() => this.props.deletecomponent(card.uuid)} /> </div> diff --git a/src/menu/components/search/main-search/index.scss b/src/menu/components/search/main-search/index.scss index 0ad138c..656580b 100644 --- a/src/menu/components/search/main-search/index.scss +++ b/src/menu/components/search/main-search/index.scss @@ -84,6 +84,9 @@ width: 100%; } } + label[title=" "]::after, label[title=" "]::after { + display: none; + } .page-card.advanced { .ant-form-item-label label { color: orange; diff --git a/src/menu/components/share/actioncomponent/index.jsx b/src/menu/components/share/actioncomponent/index.jsx index f0c909a..4029b06 100644 --- a/src/menu/components/share/actioncomponent/index.jsx +++ b/src/menu/components/share/actioncomponent/index.jsx @@ -285,12 +285,17 @@ output: 'true', required: 'false', type: 'text', + noValue: 'true', uuid: Utils.getuuid() } if (item.type === 'number') { cell.type = 'number' cell.decimal = item.decimal + + if (item.noValue === 'hide') { + cell.noValue = 'false' + } } columns.push(cell) diff --git a/src/menu/components/table/base-table/columns/editColumn/formconfig.jsx b/src/menu/components/table/base-table/columns/editColumn/formconfig.jsx index 44db9f8..5636097 100644 --- a/src/menu/components/table/base-table/columns/editColumn/formconfig.jsx +++ b/src/menu/components/table/base-table/columns/editColumn/formconfig.jsx @@ -460,6 +460,21 @@ required: true }, { + type: 'radio', + key: 'noValue', + label: '绌哄��', + initVal: card.noValue || 'show', + tooltip: '鏁板�间负 0 鎴栨椂闂村皬浜� 1949-10-02 鏃讹紝鏄惁鏄剧ず', + required: false, + options: [{ + value: 'show', + text: '鏄剧ず' + }, { + value: 'hide', + text: '闅愯棌' + }] + }, + { type: 'multiselect', key: 'blacklist', label: '榛戝悕鍗�', diff --git a/src/menu/components/table/base-table/columns/editColumn/index.jsx b/src/menu/components/table/base-table/columns/editColumn/index.jsx index e4494c0..8af9c30 100644 --- a/src/menu/components/table/base-table/columns/editColumn/index.jsx +++ b/src/menu/components/table/base-table/columns/editColumn/index.jsx @@ -101,6 +101,14 @@ _options.push('sortField') } + if (this.record.Hide !== 'true') { + if (['number', 'formula'].includes(this.record.type)) { + _options.push('noValue') + } else if (this.record.type === 'text' && ['YYYY-MM-DD', 'YYYY-MM-DD HH:mm:ss'].includes(this.record.textFormat)) { + _options.push('noValue') + } + } + return _options } @@ -177,7 +185,7 @@ } } else if (key === 'format' && value === 'percent') { this.props.form.setFieldsValue({postfix: '%'}) - } else if (['perspective', 'eval', 'IsSort'].includes(key)) { + } else if (['perspective', 'eval', 'IsSort', 'textFormat'].includes(key)) { let _options = this.getOptions() this.setState({ 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 5a1a212..c34c943 100644 --- a/src/menu/components/table/edit-table/columns/editColumn/formconfig.jsx +++ b/src/menu/components/table/edit-table/columns/editColumn/formconfig.jsx @@ -743,7 +743,7 @@ key: 'noValue', label: '绌哄��', initVal: card.noValue || 'show', - tooltip: '褰撳�间负0鏃舵槸鍚︽樉绀�', + tooltip: '鏁板�间负 0 鎴栨椂闂村皬浜� 1949-10-02 鏃讹紝鏄惁鏄剧ず', required: false, options: [{ value: 'show', 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 038dee7..fd16488 100644 --- a/src/menu/components/table/edit-table/columns/editColumn/index.jsx +++ b/src/menu/components/table/edit-table/columns/editColumn/index.jsx @@ -99,8 +99,13 @@ } else if (this.record.type === 'custom' && this.record.IsSort === 'true') { _options.push('sortField') } - if (['number', 'formula'].includes(this.record.type) && this.record.Hide !== 'true') { - _options.push('noValue') + + if (this.record.Hide !== 'true') { + if (['number', 'formula'].includes(this.record.type)) { + _options.push('noValue') + } else if (this.record.type === 'text' && ['YYYY-MM-DD', 'YYYY-MM-DD HH:mm:ss'].includes(this.record.textFormat)) { + _options.push('noValue') + } } return _options @@ -232,7 +237,7 @@ return item }) }) - } else if (['editable', 'editType', 'resourceType', 'ctrlField', 'eval', 'Hide', 'IsSort'].includes(key)) { + } else if (['editable', 'editType', 'resourceType', 'ctrlField', 'eval', 'Hide', 'IsSort', 'textFormat'].includes(key)) { let _options = this.getOptions() this.setState({ diff --git a/src/menu/components/table/normal-table/columns/editColumn/formconfig.jsx b/src/menu/components/table/normal-table/columns/editColumn/formconfig.jsx index b535832..b50848d 100644 --- a/src/menu/components/table/normal-table/columns/editColumn/formconfig.jsx +++ b/src/menu/components/table/normal-table/columns/editColumn/formconfig.jsx @@ -436,6 +436,21 @@ required: true }, { + type: 'radio', + key: 'noValue', + label: '绌哄��', + initVal: card.noValue || 'show', + tooltip: '鏁板�间负 0 鎴栨椂闂村皬浜� 1949-10-02 鏃讹紝鏄惁鏄剧ず', + required: false, + options: [{ + value: 'show', + text: '鏄剧ず' + }, { + value: 'hide', + text: '闅愯棌' + }] + }, + { type: 'multiselect', key: 'blacklist', label: '榛戝悕鍗�', diff --git a/src/menu/components/table/normal-table/columns/editColumn/index.jsx b/src/menu/components/table/normal-table/columns/editColumn/index.jsx index e2900f5..bb4f805 100644 --- a/src/menu/components/table/normal-table/columns/editColumn/index.jsx +++ b/src/menu/components/table/normal-table/columns/editColumn/index.jsx @@ -99,6 +99,14 @@ _options.push('sortField') } + if (this.record.Hide !== 'true') { + if (['number', 'formula'].includes(this.record.type)) { + _options.push('noValue') + } else if (this.record.type === 'text' && ['YYYY-MM-DD', 'YYYY-MM-DD HH:mm:ss'].includes(this.record.textFormat)) { + _options.push('noValue') + } + } + return _options } @@ -178,7 +186,7 @@ } } else if (key === 'format' && value === 'percent') { this.props.form.setFieldsValue({postfix: '%'}) - } else if (['perspective', 'eval', 'IsSort'].includes(key)) { + } else if (['perspective', 'eval', 'IsSort', 'textFormat'].includes(key)) { let _options = this.getOptions() this.setState({ diff --git a/src/menu/datasource/verifycard/customscript/index.jsx b/src/menu/datasource/verifycard/customscript/index.jsx index 7c60348..489c1f6 100644 --- a/src/menu/datasource/verifycard/customscript/index.jsx +++ b/src/menu/datasource/verifycard/customscript/index.jsx @@ -243,7 +243,7 @@ </Col> <Col span={24}> <Form.Item label="鍙敤瀛楁" className="field-able"> - <Tooltip mouseLeaveDelay={0.3} mouseEnterDelay={0.3} placement="top" title={'鍏叡鍊硷紝璇锋寜鐓xxx@鏍煎紡浣跨敤銆�'}><span style={{color: '#1890ff'}}>BID, LoginUID, SessionUid, UserID, Appkey, time_id, typename</span></Tooltip>, + <Tooltip mouseLeaveDelay={0.3} mouseEnterDelay={0.3} placement="top" title={'鍏叡鍊硷紝璇锋寜鐓xxx@鏍煎紡浣跨敤銆�'}><span style={{color: '#1890ff'}}>BID, LoginUID, SessionUid, UserID, Appkey, time_id, typename, datam</span></Tooltip>, <Tooltip mouseLeaveDelay={0.3} mouseEnterDelay={0.3} placement="top" title={'绯荤粺鍙橀噺锛岀郴缁熶細瀹氫箟鍙橀噺骞惰祴鍊笺��'}><span style={{color: '#fa8c16'}}>UserName, FullName, RoleID, mk_departmentcode, mk_organization, mk_user_type, mk_nation, mk_province, mk_city, mk_district, mk_address</span></Tooltip>, <Tooltip mouseLeaveDelay={0.3} mouseEnterDelay={0.3} placement="top" title={'鎺掑簭銆佸垎椤典互鍙婃悳绱㈡潯浠跺彉閲忥紝璇锋寜鐓xxx@鏍煎紡浣跨敤銆備娇鐢ˊpageSize@鎴朄orderBy@浠h〃鑷畾涔夊垎椤碉紝鎬绘暟璇蜂互mk_total杩斿洖銆�'}>orderBy, pageSize, pageIndex{usefulFields ? ', ' + usefulFields : ''}{type === 'calendar' ? ', mk_year' : ''}</Tooltip> <Tooltip mouseLeaveDelay={0.3} mouseEnterDelay={0.3} placement="top" title={'url鍙橀噺锛岃鎸夌収@xxx@鏍煎紡浣跨敤銆�'}>{urlFields ? ', ' : ''}<span style={{color: '#13c2c2'}}>{urlFields}</span></Tooltip> diff --git a/src/menu/datasource/verifycard/index.jsx b/src/menu/datasource/verifycard/index.jsx index e103038..ceabb28 100644 --- a/src/menu/datasource/verifycard/index.jsx +++ b/src/menu/datasource/verifycard/index.jsx @@ -545,7 +545,7 @@ submitDataSource = () => { const { config, mainSearch } = this.props - const { activeKey, setting, columns, subColumns, scripts, cols } = this.state + const { activeKey, setting, columns, subColumns, scripts, cols, median } = this.state if (config.subtype === 'dualdatacard') { let arr = columns.map(col => col.field.toLowerCase()) @@ -579,6 +579,25 @@ message: '瀛楁闆嗕腑涓嶅彲浣跨敤' + _arr.join('銆�') + '锛佹敞锛氭瀛楁涓烘彁浜ゆ椂鐨勭郴缁熷瓧娈点��', duration: 5 }) + return Promise.reject() + } + } + + if (median.interType === 'system') { + let _loading = false + if (this.scriptsForm && this.scriptsForm.state.editItem) { + _loading = true + } else if (this.scriptsForm && this.scriptsForm.props.form.getFieldValue('sql') && !/^\s+$/.test(this.scriptsForm.props.form.getFieldValue('sql'))) { + _loading = true + } + + if (_loading) { + notification.warning({ + top: 92, + message: '瀛樺湪鏈繚瀛樿剼鏈紝璇风偣鍑荤‘瀹氫繚瀛橈紝鎴栫偣鍑诲彇娑堟斁寮冧慨鏀癸紒', + duration: 5 + }) + this.setState({activeKey: 'scripts'}) return Promise.reject() } } @@ -624,23 +643,6 @@ } this.sqlverify(() => { resolve({setting, columns, subColumns, scripts, cols }) }, reject, 'submit') } else if (activeKey === 'scripts') { - let _loading = false - if (this.scriptsForm && this.scriptsForm.state.editItem) { - _loading = true - } else if (this.scriptsForm && this.scriptsForm.props.form.getFieldValue('sql') && !/^\s+$/.test(this.scriptsForm.props.form.getFieldValue('sql'))) { - _loading = true - } - - if (_loading) { - notification.warning({ - top: 92, - message: '瀛樺湪鏈繚瀛樿剼鏈紝璇风偣鍑荤‘瀹氫繚瀛橈紝鎴栫偣鍑诲彇娑堟斁寮冧慨鏀癸紒', - duration: 5 - }) - reject() - return - } - this.sqlverify(() => { resolve({setting, columns, subColumns, scripts, cols }) }, reject, 'submit') } }) diff --git a/src/menu/picturecontroller/index.jsx b/src/menu/picturecontroller/index.jsx index 1dac26d..34ffe8a 100644 --- a/src/menu/picturecontroller/index.jsx +++ b/src/menu/picturecontroller/index.jsx @@ -132,6 +132,7 @@ this.resetVideo(result.data || []) } else if (card.typecharone === 'color') { window.GLOB.app_colors = result.data || [] + sessionStorage.setItem('app_colors', JSON.stringify(result.data || [])) this.resetColor(result.data || []) } this.setState({editvisible: false}) @@ -186,6 +187,7 @@ _this.resetVideo(res.data || []) } else if (item.typecharone === 'color') { window.GLOB.app_colors = res.data || [] + sessionStorage.setItem('app_colors', JSON.stringify(res.data || [])) _this.resetColor(res.data || []) } } else { diff --git a/src/menu/urlfieldcomponent/index.jsx b/src/menu/urlfieldcomponent/index.jsx index 69625a0..a25488e 100644 --- a/src/menu/urlfieldcomponent/index.jsx +++ b/src/menu/urlfieldcomponent/index.jsx @@ -63,7 +63,7 @@ let config = JSON.stringify(this.props.config) const _this = this - if (new RegExp(field, 'ig').test(config)) { + if (new RegExp('@' + field + '@', 'ig').test(config)) { confirm({ title: `閰嶇疆涓瓨鍦ˊ${field}@锛岀‘瀹氬垹闄ゅ悧锛焋, content: '', diff --git a/src/mob/colorsketch/index.jsx b/src/mob/colorsketch/index.jsx index 35822cb..ac0a99e 100644 --- a/src/mob/colorsketch/index.jsx +++ b/src/mob/colorsketch/index.jsx @@ -50,6 +50,10 @@ if (app_colors) { this.getColors(app_colors) + } else if (sessionStorage.getItem('app_colors')) { + let app_colors = JSON.parse(sessionStorage.getItem('app_colors')) + window.GLOB.app_colors = app_colors + this.getColors(app_colors) } else { if (loading) { this.getColors([]) @@ -66,6 +70,7 @@ Api.getCloudConfig(param).then(res => { loading = false window.GLOB.app_colors = res.data || [] + sessionStorage.setItem('app_colors', JSON.stringify(res.data || [])) this.getColors(res.data || []) }) } diff --git a/src/tabviews/custom/components/card/cardcellList/index.jsx b/src/tabviews/custom/components/card/cardcellList/index.jsx index d985b05..7e16f86 100644 --- a/src/tabviews/custom/components/card/cardcellList/index.jsx +++ b/src/tabviews/custom/components/card/cardcellList/index.jsx @@ -296,7 +296,7 @@ contents.push( <div className={'ant-col ant-col-' + card.width} key={card.uuid} style={_style_} span={card.width}> <div style={card.style}> - <div className={'ant-mk-text line1' + className} style={{height: card.innerHeight || 'auto'}}><span className="sequence-wrap" style={_style}>{data.$Index || ''}</span></div> + <div className={'ant-mk-text line1' + className} style={{height: card.innerHeight || 'auto'}}><span className="sequence-wrap" style={_style}>{card.prefix || ''}{data.$Index || ''}{card.postfix || ''}</span></div> </div> </div> ) diff --git a/src/tabviews/custom/components/card/data-card/index.jsx b/src/tabviews/custom/components/card/data-card/index.jsx index 1955b65..de3f1a8 100644 --- a/src/tabviews/custom/components/card/data-card/index.jsx +++ b/src/tabviews/custom/components/card/data-card/index.jsx @@ -743,6 +743,7 @@ if (config.setting.supModule && !BID && config.wrap.supKey !== 'false') { // BID 涓嶅瓨鍦ㄦ椂锛屼笉鍋氭煡璇� this.loaded = true + this.requestId = '' this.setState({ activeKey: '', @@ -789,8 +790,12 @@ let _orderBy = orderBy || config.setting.order || '' let param = UtilsDM.getQueryDataParams(config.setting, searches, _orderBy, pageIndex, pageSize, BID) - let result = await Api.genericInterface(param) + this.requestId = config.uuid + new Date().getTime() + + let result = await Api.genericInterface(param, '', '', this.requestId) if (result.status) { + if (result.$requestId && this.requestId !== result.$requestId) return + let start = 1 if (config.setting.laypage) { start = pageSize * (pageIndex - 1) + 1 diff --git a/src/tabviews/custom/components/card/double-data-card/index.jsx b/src/tabviews/custom/components/card/double-data-card/index.jsx index 6ae8f77..4903092 100644 --- a/src/tabviews/custom/components/card/double-data-card/index.jsx +++ b/src/tabviews/custom/components/card/double-data-card/index.jsx @@ -583,6 +583,7 @@ if (config.setting.supModule && !BID && config.wrap.supKey !== 'false') { // BID 涓嶅瓨鍦ㄦ椂锛屼笉鍋氭煡璇� this.loaded = true + this.requestId = '' this.setState({ activeKey: '', @@ -632,8 +633,12 @@ let _orderBy = orderBy || config.setting.order || '' let param = UtilsDM.getQueryDataParams(config.setting, searches, _orderBy, pageIndex, pageSize, BID) - let result = await Api.genericInterface(param) + this.requestId = config.uuid + new Date().getTime() + + let result = await Api.genericInterface(param, '', '', this.requestId) if (result.status) { + if (result.$requestId && this.requestId !== result.$requestId) return + let start = 1 if (config.setting.laypage) { start = pageSize * (pageIndex - 1) + 1 diff --git a/src/tabviews/custom/components/chart/antv-bar-line/index.jsx b/src/tabviews/custom/components/chart/antv-bar-line/index.jsx index f86a91e..75a01b7 100644 --- a/src/tabviews/custom/components/chart/antv-bar-line/index.jsx +++ b/src/tabviews/custom/components/chart/antv-bar-line/index.jsx @@ -256,15 +256,35 @@ style: { fill: _config.plot.color } }} let yc = {label: { style: { fill: _config.plot.color } }} + if (_config.plot.grid === 'hidden') { yc.grid = null } - if (_config.plot.y_line === 'show') { + if (_config.plot.tick === 'hidden') { + xc.tickLine = null + } + if (_config.plot.x_line === 'hidden') { + xc.line = null + } + if (_config.plot.y_line === 'hidden') { + yc.line = null + } else { yc.line = {style: { stroke: '#D1D2CE' }} } + if (_config.plot.x_label === 'hidden') { + xc.label = null + } + if (_config.plot.y_label === 'hidden') { + yc.label = null + } + if (_config.plot.lineColor) { - xc.tickLine = {style: { stroke: _config.plot.lineColor }} - xc.line = { style: { stroke: _config.plot.lineColor } } + if (xc.tickLine !== null) { + xc.tickLine = {style: { stroke: _config.plot.lineColor }} + } + if (xc.line !== null) { + xc.line = { style: { stroke: _config.plot.lineColor } } + } if (yc.grid !== null) { yc.grid = { line: { style: { stroke: _config.plot.lineColor } }} } @@ -929,6 +949,9 @@ val = val + '' val = val.replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,') } + if (plot.labelUnit) { + val = val + plot.labelUnit + } return { content: val, style: { @@ -1221,6 +1244,9 @@ val = val + '' val = val.replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,') } + if (plot.labelUnit) { + val = val + plot.labelUnit + } if (plot.$label === 'true' && plot.labelColor === 'custom' && plot.$colors && plot.$colors.has(key)) { lablecfg.style.fill = plot.$colors.get(key) @@ -1283,6 +1309,9 @@ } else if (plot.show === 'thdSeparator') { val = val + '' val = val.replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,') + } + if (plot.labelUnit) { + val = val + plot.labelUnit } if (plot.$label === 'true' && plot.labelColor === 'custom' && plot.$colors && plot.$colors.has(key)) { lablecfg.style.fill = plot.$colors.get(key) @@ -1380,6 +1409,9 @@ val = val + '' val = val.replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,') } + if (plot.labelUnit) { + val = val + plot.labelUnit + } if (plot.label === 'true' && plot.labelColor === 'custom' && item.color) { lablecfg.style.fill = item.color } @@ -1446,6 +1478,9 @@ } else if (item.show === 'thdSeparator') { val = val + '' val = val.replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,') + } + if (plot.labelUnit) { + val = val + plot.labelUnit } return { @@ -1694,6 +1729,9 @@ val = val + '' val = val.replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,') } + if (plot.labelUnit) { + val = val + plot.labelUnit + } if (plot.label === 'true' && plot.labelColor === 'custom' && plot.$colors && plot.$colors.has(key)) { lablecfg.style.fill = plot.$colors.get(key) @@ -1780,6 +1818,9 @@ val = val + '' val = val.replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,') } + if (plot.labelUnit) { + val = val + plot.labelUnit + } if (plot.label === 'true' && plot.labelColor === 'custom' && plot.$colors && plot.$colors.has(key)) { lablecfg.style.fill = plot.$colors.get(key) diff --git a/src/tabviews/custom/components/chart/antv-dashboard/index.jsx b/src/tabviews/custom/components/chart/antv-dashboard/index.jsx index 605b841..15cf833 100644 --- a/src/tabviews/custom/components/chart/antv-dashboard/index.jsx +++ b/src/tabviews/custom/components/chart/antv-dashboard/index.jsx @@ -3,7 +3,7 @@ import { is, fromJS } from 'immutable' import { Chart, registerShape } from '@antv/g2' import { Spin, notification, Modal } from 'antd' -import { DownloadOutlined } from '@ant-design/icons' +// import { DownloadOutlined } from '@ant-design/icons' import moment from 'moment' import Api from '@/api' @@ -731,7 +731,7 @@ } <NormalHeader config={config} /> <div className="canvas-wrap"> - {config.plot.download === 'enable' && this.state.chart ? <DownloadOutlined onClick={this.downloadImage} className="system-color download"/> : null} + {/* {config.plot.download === 'enable' && this.state.chart ? <DownloadOutlined onClick={this.downloadImage} className="system-color download"/> : null} */} <div className="canvas" id={this.state.chartId}></div> </div> </div> diff --git a/src/tabviews/custom/components/chart/antv-pie/index.jsx b/src/tabviews/custom/components/chart/antv-pie/index.jsx index 4b9a3d2..44ed1cc 100644 --- a/src/tabviews/custom/components/chart/antv-pie/index.jsx +++ b/src/tabviews/custom/components/chart/antv-pie/index.jsx @@ -4,7 +4,7 @@ import { Chart } from '@antv/g2' import DataSet, { DataView } from '@antv/data-set' import { Spin, Empty, notification, Modal } from 'antd' -import { DownloadOutlined } from '@ant-design/icons' +// import { DownloadOutlined } from '@ant-design/icons' import moment from 'moment' import Api from '@/api' @@ -916,7 +916,7 @@ } <NormalHeader config={config} BID={BID} refresh={this.refreshSearch} /> <div className="canvas-wrap"> - {config.plot.download === 'enable' && this.state.chart && !empty ? <DownloadOutlined onClick={this.downloadImage} className="system-color download"/> : null} + {/* {config.plot.download === 'enable' && this.state.chart && !empty ? <DownloadOutlined onClick={this.downloadImage} className="system-color download"/> : null} */} <div className={'canvas' + (empty ? ' empty' : '')} id={this.state.chartId}></div> </div> {empty ? <Empty description={false}/> : null} diff --git a/src/tabviews/custom/components/share/normalTable/index.jsx b/src/tabviews/custom/components/share/normalTable/index.jsx index 2b00baa..66f8c96 100644 --- a/src/tabviews/custom/components/share/normalTable/index.jsx +++ b/src/tabviews/custom/components/share/normalTable/index.jsx @@ -110,7 +110,7 @@ let { col, config, record, className, style, triggerLink, ...resProps } = this.props if (!col) return (<td {...resProps} className={className} style={style}/>) - + if (col.type === 'text') { let content = '' if (record[col.field] !== undefined) { @@ -124,6 +124,10 @@ content = `${content.substr(0, 4)}-${content.substr(5, 2)}-${content.substr(8, 2)} ${content.substr(11, 2)}:${content.substr(14, 2)}:${content.substr(17, 2)}` } else if (col.textFormat === 'encryption') { content = <span>{col.prefix || ''}<Encrypts value={content} />{col.postfix || ''}</span> + } + + if (col.noValue === 'hide' && content < '1949-10-02') { + content = '' } if (col.textFormat !== 'encryption') { @@ -162,21 +166,22 @@ resProps.rowSpan = record['$$' + col.field] } - if (!record.$disabled && (col.linkThdMenu || col.linkurl)) { - content = ( - <div> - <div className="link-menu" onDoubleClick={(e) => triggerLink(e, col, record)}></div> - {content} - </div> - ) - } - resProps.children = content + + if (!record.$disabled && (col.linkThdMenu || col.linkurl)) { + style = style || {} + style.cursor = 'pointer' + + return (<td {...resProps} className={className} onDoubleClick={() => triggerLink(col, record)} style={style}/>) + } } else if (col.type === 'number') { let content = '' try { content = parseFloat(record[col.field]) if (isNaN(content)) { + content = '' + } + if (col.noValue === 'hide' && content === 0) { content = '' } } catch (e) { @@ -235,16 +240,14 @@ resProps.rowSpan = record['$$' + col.field] } - if (!record.$disabled && (col.linkThdMenu || col.linkurl)) { - content = ( - <div> - <div className="link-menu" onDoubleClick={(e) => triggerLink(e, col, record)}></div> - {content} - </div> - ) - } - resProps.children = content + + if (!record.$disabled && (col.linkThdMenu || col.linkurl)) { + style = style || {} + style.cursor = 'pointer' + + return (<td {...resProps} className={className} onDoubleClick={() => triggerLink(col, record)} style={style}/>) + } } else if (col.type === 'picture') { let photos = '' if (record[col.field]) { @@ -352,6 +355,10 @@ // eslint-disable-next-line let func = new Function('data', col.formula) content = func([record]) + + if (col.noValue === 'hide' && content === 0) { + content = '' + } } catch (e) { console.warn(e) content = '' @@ -365,6 +372,10 @@ try { // eslint-disable-next-line content = eval(content) + + if (col.noValue === 'hide' && content === 0) { + content = '' + } } catch (e) { console.info(content) console.warn(e) @@ -795,9 +806,7 @@ } // 瀛楁閫忚 - triggerLink = (e, item, record) => { - e.stopPropagation() - + triggerLink = (item, record) => { let __param = { $searchkey: item.field, $searchval: record[item.field] || '', diff --git a/src/tabviews/custom/components/share/normalTable/index.scss b/src/tabviews/custom/components/share/normalTable/index.scss index 41dce81..6dbd534 100644 --- a/src/tabviews/custom/components/share/normalTable/index.scss +++ b/src/tabviews/custom/components/share/normalTable/index.scss @@ -116,68 +116,35 @@ display: none; } } - .action-col { - .ant-btn > .anticon + span { - margin-left: 3px; - } - button { - border: 0; - background-color: transparent; - color: #1890ff; - box-shadow: none; - padding: 0 5px; - .anticon-loading { - display: none; - } - } - > div { - margin: 0 3px; - } - > button { - margin: 0 3px; - } - .ant-btn.ant-btn-loading:not(.ant-btn-circle):not(.ant-btn-circle-outline):not(.ant-btn-icon-only) { - padding-left: 0px; - } - } } .ant-table-tbody > tr > td[rowspan] { vertical-align: middle; } - .ant-table-tbody > tr > td.ant-table-column-has-actions { - .content { - position: relative; - z-index: 1; - word-wrap: break-word; - word-break: break-word; - } - } + // .ant-table-tbody > tr > td.ant-table-column-has-actions { + // .content { + // position: relative; + // z-index: 1; + // word-wrap: break-word; + // word-break: break-word; + // } + // } .ant-table-tbody > tr > td { position: relative; - .link-menu { - position: absolute; - top: 0px; - left: 0px; - right: 0px; - bottom: 0px; - opacity: 0; - cursor: pointer; - } } - .ant-table-tbody > tr > td .content { - p { - margin-bottom: 2px; - } - span { - display: inline-block; - margin-right: 5px; - } - } - .ant-table-tbody > tr > td .button { - .ant-btn { - margin-bottom: 10px; - } - } + // .ant-table-tbody > tr > td .content { + // p { + // margin-bottom: 2px; + // } + // span { + // display: inline-block; + // margin-right: 5px; + // } + // } + // .ant-table-tbody > tr > td .button { + // .ant-btn { + // margin-bottom: 10px; + // } + // } } } // .ant-table-body::-webkit-scrollbar { diff --git a/src/tabviews/custom/components/table/base-table/index.jsx b/src/tabviews/custom/components/table/base-table/index.jsx index 7c86fca..ec29c8f 100644 --- a/src/tabviews/custom/components/table/base-table/index.jsx +++ b/src/tabviews/custom/components/table/base-table/index.jsx @@ -104,6 +104,7 @@ this.setState({ data: [], selectedData: [], + loading: false, total: 0 }) @@ -112,6 +113,8 @@ if (setting.$hasSyncModule) { MKEmitter.emit('syncBalconyData', config.uuid, [], false) } + + this.requestId = '' return } @@ -137,8 +140,12 @@ let _orderBy = orderBy || setting.order let param = UtilsDM.getQueryDataParams(setting, searches, _orderBy, pageIndex, pageSize, BID) - let result = await Api.genericInterface(param, setting.js_script) + this.requestId = config.uuid + new Date().getTime() + + let result = await Api.genericInterface(param, setting.js_script, '', this.requestId) if (result.status) { + if (result.$requestId && this.requestId !== result.$requestId) return + if (repage === 'false' && result.data && result.data.length === 0 && result.total > 0 && pageIndex > 1) { let _pageIndex = Math.ceil(result.total / pageSize) diff --git a/src/tabviews/custom/components/table/edit-table/index.jsx b/src/tabviews/custom/components/table/edit-table/index.jsx index 77c9061..14776ec 100644 --- a/src/tabviews/custom/components/table/edit-table/index.jsx +++ b/src/tabviews/custom/components/table/edit-table/index.jsx @@ -271,9 +271,12 @@ this.setState({ data: [], selectedData: [], + loading: false, total: 0 }) reset && MKEmitter.emit('resetTable', config.uuid, 'true') // 鍒楄〃閲嶇疆 + + this.requestId = '' return } @@ -299,8 +302,12 @@ let _orderBy = orderBy || setting.order let param = UtilsDM.getQueryDataParams(setting, searches, _orderBy, pageIndex, pageSize, BID) - let result = await Api.genericInterface(param) + this.requestId = config.uuid + new Date().getTime() + + let result = await Api.genericInterface(param, '', '', this.requestId) if (result.status) { + if (result.$requestId && this.requestId !== result.$requestId) return + reset && MKEmitter.emit('resetTable', config.uuid, repage) // 鍒楄〃閲嶇疆 let start = 1 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 ee270d7..4bcdb13 100644 --- a/src/tabviews/custom/components/table/edit-table/normalTable/index.jsx +++ b/src/tabviews/custom/components/table/edit-table/normalTable/index.jsx @@ -767,6 +767,10 @@ content = <span>{col.prefix || ''}<Encrypts value={content} />{col.postfix || ''}</span> } + if (col.noValue === 'hide' && content < '1949-10-02') { + content = '' + } + if (col.textFormat !== 'encryption') { content = (col.prefix || '') + content + (col.postfix || '') } @@ -1107,6 +1111,10 @@ content = <span>{col.prefix || ''}<Encrypts value={content} />{col.postfix || ''}</span> } + if (col.noValue === 'hide' && content < '1949-10-02') { + content = '' + } + if (col.textFormat !== 'encryption') { content = (col.prefix || '') + content + (col.postfix || '') } 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 1f2fb54..a3362b3 100644 --- a/src/tabviews/custom/components/table/edit-table/normalTable/index.scss +++ b/src/tabviews/custom/components/table/edit-table/normalTable/index.scss @@ -70,68 +70,35 @@ color: inherit; overflow: hidden; } - .action-col { - .ant-btn > .anticon + span { - margin-left: 3px; - } - button { - border: 0; - background-color: transparent; - color: #1890ff; - box-shadow: none; - padding: 0 5px; - .anticon-loading { - display: none; - } - } - > div { - margin: 0 3px; - } - > button { - margin: 0 3px; - } - .ant-btn.ant-btn-loading:not(.ant-btn-circle):not(.ant-btn-circle-outline):not(.ant-btn-icon-only) { - padding-left: 0px; - } - } } .ant-table-tbody > tr > td[rowspan] { vertical-align: middle; } - .ant-table-tbody > tr > td.ant-table-column-has-actions { - .content { - position: relative; - z-index: 1; - word-wrap: break-word; - word-break: break-word; - } - } + // .ant-table-tbody > tr > td.ant-table-column-has-actions { + // .content { + // position: relative; + // z-index: 1; + // word-wrap: break-word; + // word-break: break-word; + // } + // } .ant-table-tbody > tr > td { position: relative; - .link-menu { - position: absolute; - top: 0px; - left: 0px; - right: 0px; - bottom: 0px; - opacity: 0; - cursor: pointer; - } } - .ant-table-tbody > tr > td .content { - p { - margin-bottom: 2px; - } - span { - display: inline-block; - margin-right: 5px; - } - } - .ant-table-tbody > tr > td .button { - .ant-btn { - margin-bottom: 10px; - } - } + // .ant-table-tbody > tr > td .content { + // p { + // margin-bottom: 2px; + // } + // span { + // display: inline-block; + // margin-right: 5px; + // } + // } + // .ant-table-tbody > tr > td .button { + // .ant-btn { + // margin-bottom: 10px; + // } + // } } } diff --git a/src/tabviews/custom/components/table/normal-table/index.jsx b/src/tabviews/custom/components/table/normal-table/index.jsx index 676488a..92c7018 100644 --- a/src/tabviews/custom/components/table/normal-table/index.jsx +++ b/src/tabviews/custom/components/table/normal-table/index.jsx @@ -390,6 +390,7 @@ this.setState({ data: [], selectedData: [], + loading: false, total: 0 }) @@ -400,6 +401,7 @@ } this.loaded = true + this.requestId = '' return } @@ -427,8 +429,12 @@ let _orderBy = orderBy || setting.order let param = UtilsDM.getQueryDataParams(setting, searches, _orderBy, pageIndex, pageSize, BID) - let result = await Api.genericInterface(param) + this.requestId = config.uuid + new Date().getTime() + + let result = await Api.genericInterface(param, '', '', this.requestId) if (result.status) { + if (result.$requestId && this.requestId !== result.$requestId) return + this.loaded = true if (config.$cache && type === 'init') { Api.writeCacheConfig(config.uuid, result.data || [], BID) diff --git a/src/tabviews/custom/index.jsx b/src/tabviews/custom/index.jsx index d41d649..983d3c3 100644 --- a/src/tabviews/custom/index.jsx +++ b/src/tabviews/custom/index.jsx @@ -451,6 +451,8 @@ } } + tab.$menuname = (MenuName || '') + '-' + (tab.label || '') + return true }) diff --git a/src/tabviews/custom/popview/index.jsx b/src/tabviews/custom/popview/index.jsx index 2e3bdff..ca70341 100644 --- a/src/tabviews/custom/popview/index.jsx +++ b/src/tabviews/custom/popview/index.jsx @@ -70,6 +70,7 @@ config = JSON.stringify(config) config = config.replace(/@mywebsite@\//ig, window.GLOB.baseurl) config = JSON.parse(config) + config.MenuName = Tab.logLabel || Tab.label || '' } catch (e) { console.warn('Parse Failure') config = '' @@ -227,6 +228,8 @@ } } + tab.$menuname = (Tab.logLabel || Tab.label || '') + '-' + (tab.label || '') + return true }) diff --git a/src/tabviews/zshare/actionList/exceloutbutton/index.jsx b/src/tabviews/zshare/actionList/exceloutbutton/index.jsx index 59c62e1..5db6635 100644 --- a/src/tabviews/zshare/actionList/exceloutbutton/index.jsx +++ b/src/tabviews/zshare/actionList/exceloutbutton/index.jsx @@ -529,6 +529,9 @@ val = Math.round(val * col.round) / col.round // val = val.toFixed(col.decimal) } + if (col.noValue === 'false' && val === 0) { + val = '' + } } _row[col.Column] = val @@ -620,6 +623,9 @@ val = Math.round(val * col.round) / col.round // val = val.toFixed(col.decimal) } + if (col.noValue === 'false' && val === 0) { + val = '' + } } _row[col.Column] = val diff --git a/src/tabviews/zshare/actionList/newpagebutton/index.jsx b/src/tabviews/zshare/actionList/newpagebutton/index.jsx index a3fafce..01d678e 100644 --- a/src/tabviews/zshare/actionList/newpagebutton/index.jsx +++ b/src/tabviews/zshare/actionList/newpagebutton/index.jsx @@ -193,7 +193,7 @@ cancelText: '鏀粯閬囧埌闂', onOk() { // 鏀粯鍚庡埛鏂扮晫闈� - MKEmitter.emit('refreshByButtonResult', btn.$menuId, 'grid', btn) + MKEmitter.emit('reloadMenuView', btn.$MenuID) }, onCancel() { MKEmitter.emit('refreshByButtonResult', btn.$menuId, 'grid', btn) diff --git a/src/tabviews/zshare/actionList/normalbutton/index.jsx b/src/tabviews/zshare/actionList/normalbutton/index.jsx index 30a56a1..f58f2fe 100644 --- a/src/tabviews/zshare/actionList/normalbutton/index.jsx +++ b/src/tabviews/zshare/actionList/normalbutton/index.jsx @@ -1721,9 +1721,9 @@ sql = sql.replace(/@typename@/ig, `'admin'`) if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺 - sql = sql.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, '\'Y\'') + sql = sql.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, `'Y'`) } else { - sql = sql.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'') + sql = sql.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, `''`) } if (window.GLOB.debugger === true) { @@ -3254,6 +3254,20 @@ console.warn(e) _item.value = '' } + } else if (item.interception === 'charTure') { + let str = _item.value.replace(/(^\s*|\s*$)/g, '') + let result = '' + for (let i = 0 ; i < str.length; i++) { + let code = str.charCodeAt(i) + if (code >= 65281 && code <= 65373) { + result += String.fromCharCode(str.charCodeAt(i) - 65248) + } else if (code === 12288) { + result += String.fromCharCode(str.charCodeAt(i) - 12288 + 32) + } else { + result += str.charAt(i) + } + } + _item.value = result } else { _item.value = _item.value.replace(/(^\s*|\s*$)/g, '') } diff --git a/src/tabviews/zshare/actionList/printbutton/index.jsx b/src/tabviews/zshare/actionList/printbutton/index.jsx index da72ac9..6627f32 100644 --- a/src/tabviews/zshare/actionList/printbutton/index.jsx +++ b/src/tabviews/zshare/actionList/printbutton/index.jsx @@ -2186,6 +2186,20 @@ console.warn(e) _item.value = '' } + } else if (item.interception === 'charTure') { + let str = _item.value.replace(/(^\s*|\s*$)/g, '') + let result = '' + for (let i = 0 ; i < str.length; i++) { + let code = str.charCodeAt(i) + if (code >= 65281 && code <= 65373) { + result += String.fromCharCode(str.charCodeAt(i) - 65248) + } else if (code === 12288) { + result += String.fromCharCode(str.charCodeAt(i) - 12288 + 32) + } else { + result += str.charAt(i) + } + } + _item.value = result } else { _item.value = _item.value.replace(/(^\s*|\s*$)/g, '') } diff --git a/src/tabviews/zshare/mutilform/index.jsx b/src/tabviews/zshare/mutilform/index.jsx index 5bf91e8..c987f75 100644 --- a/src/tabviews/zshare/mutilform/index.jsx +++ b/src/tabviews/zshare/mutilform/index.jsx @@ -1379,6 +1379,20 @@ console.warn(e) _item.value = '' } + } else if (item.interception === 'charTure') { + let str = _item.value.replace(/(^\s*|\s*$)/g, '') + let result = '' + for (let i = 0 ; i < str.length; i++) { + let code = str.charCodeAt(i) + if (code >= 65281 && code <= 65373) { + result += String.fromCharCode(str.charCodeAt(i) - 65248) + } else if (code === 12288) { + result += String.fromCharCode(str.charCodeAt(i) - 12288 + 32) + } else { + result += str.charAt(i) + } + } + _item.value = result } else { _item.value = _item.value.replace(/(^\s*|\s*$)/g, '') } diff --git a/src/tabviews/zshare/topSearch/advanceform/index.scss b/src/tabviews/zshare/topSearch/advanceform/index.scss index b3cdf80..fa9af70 100644 --- a/src/tabviews/zshare/topSearch/advanceform/index.scss +++ b/src/tabviews/zshare/topSearch/advanceform/index.scss @@ -22,6 +22,9 @@ .ant-form-item-label { text-overflow: ellipsis; } + label[title=" "]::after, label[title=" "]::after { + display: none; + } .daterange .ant-calendar-picker-input { padding: 4px 20px 4px 5px; font-size: 13px; diff --git a/src/tabviews/zshare/topSearch/index.scss b/src/tabviews/zshare/topSearch/index.scss index 3444190..9d96cca 100644 --- a/src/tabviews/zshare/topSearch/index.scss +++ b/src/tabviews/zshare/topSearch/index.scss @@ -24,6 +24,9 @@ .ant-form-item-label { text-overflow: ellipsis; } + label[title=" "]::after, label[title=" "]::after { + display: none; + } .daterange .ant-calendar-picker-input { padding: 4px 20px 4px 5px; font-size: 13px; diff --git a/src/templates/sharecomponent/actioncomponent/verifyexcelin/columnform/index.jsx b/src/templates/sharecomponent/actioncomponent/verifyexcelin/columnform/index.jsx index 7450d0d..28f2df9 100644 --- a/src/templates/sharecomponent/actioncomponent/verifyexcelin/columnform/index.jsx +++ b/src/templates/sharecomponent/actioncomponent/verifyexcelin/columnform/index.jsx @@ -45,10 +45,11 @@ values.limit = '' } - this.props.columnChange(values) - this.props.form.setFieldsValue({ - Column: '', - Text: '' + this.props.columnChange(values, () => { + this.props.form.setFieldsValue({ + Column: '', + Text: '' + }) }) } }) diff --git a/src/templates/sharecomponent/actioncomponent/verifyexcelin/index.jsx b/src/templates/sharecomponent/actioncomponent/verifyexcelin/index.jsx index a8733e8..3bba3de 100644 --- a/src/templates/sharecomponent/actioncomponent/verifyexcelin/index.jsx +++ b/src/templates/sharecomponent/actioncomponent/verifyexcelin/index.jsx @@ -521,7 +521,7 @@ }) } - columnChange = (values) => { + columnChange = (values, callback) => { let verify = JSON.parse(JSON.stringify(this.state.verify)) let fields = verify.columns.map(item => item.Column) @@ -532,6 +532,8 @@ duration: 5 }) return + } else { + callback() } values.uuid = Utils.getuuid() @@ -902,19 +904,6 @@ </Radio.Group>)} </Form.Item> </Col> - {verify.excelHandle === 'true' ? <Col span={24} style={{paddingLeft: '30px'}}> - <Form.Item wrapperCol={ {xs: { span: 24 }, sm: { span: 24 }} } label=""> - {getFieldDecorator('excel_func', { - initialValue: verify.excel_func || '', - rules: [ - { - required: true, - message: '璇峰~鍐欒嚜瀹氫箟閫昏緫!' - } - ] - })(<CodeMirror mode="text/javascript" theme="cobalt" />)} - </Form.Item> - </Col> : null} {verify.excelHandle !== 'true' ? <Col span={8}> <Form.Item label={ <Tooltip placement="bottomLeft" title="瀵煎叆鏃跺伐浣滆〃鍚嶄笌excel涓繀椤讳竴鑷达紝娉細宸ヤ綔琛ㄥ悕涓篠heet1涓攅xcel涓粎鏈変竴涓伐浣滆〃鏃朵笉杩涜琛ㄥ悕楠岃瘉銆�"> @@ -933,7 +922,7 @@ })(<Input placeholder="" autoComplete="off" />)} </Form.Item> </Col> : null} - {verify.excelHandle !== 'true' ? <Col span={8}> + <Col span={8}> <Form.Item label={ <Tooltip placement="bottomLeft" title="蹇界暐棣栬鏃讹紝浼氭牎楠宔xcel涓〃澶村悕绉颁笌excel鍒楄缃槸鍚︿竴鑷淬��"> <QuestionCircleOutlined className="mk-form-tip" /> @@ -944,6 +933,19 @@ initialValue: verify.range || 0 })(<InputNumber min={0} max={100} precision={0} />)} </Form.Item> + </Col> + {verify.excelHandle === 'true' ? <Col span={24} style={{paddingLeft: '30px'}}> + <Form.Item wrapperCol={ {xs: { span: 24 }, sm: { span: 24 }} } label=""> + {getFieldDecorator('excel_func', { + initialValue: verify.excel_func || '', + rules: [ + { + required: true, + message: '璇峰~鍐欒嚜瀹氫箟閫昏緫!' + } + ] + })(<CodeMirror mode="text/javascript" theme="cobalt" />)} + </Form.Item> </Col> : null} </Row> </Form> diff --git a/src/templates/sharecomponent/actioncomponent/verifyexcelout/columnform/index.jsx b/src/templates/sharecomponent/actioncomponent/verifyexcelout/columnform/index.jsx index 3e535cb..24e658c 100644 --- a/src/templates/sharecomponent/actioncomponent/verifyexcelout/columnform/index.jsx +++ b/src/templates/sharecomponent/actioncomponent/verifyexcelout/columnform/index.jsx @@ -12,11 +12,12 @@ // 琛ㄥ崟鎻愪氦鏃舵鏌ヨ緭鍏ュ�兼槸鍚︽纭� this.props.form.validateFieldsAndScroll((err, values) => { if (!err) { - this.props.columnChange(values) - this.props.form.setFieldsValue({ - Column: '', - Text: '', - Width: 20 + this.props.columnChange(values, () => { + this.props.form.setFieldsValue({ + Column: '', + Text: '', + Width: 20 + }) }) } }) diff --git a/src/templates/sharecomponent/actioncomponent/verifyexcelout/index.jsx b/src/templates/sharecomponent/actioncomponent/verifyexcelout/index.jsx index 5acaeb6..21d53fe 100644 --- a/src/templates/sharecomponent/actioncomponent/verifyexcelout/index.jsx +++ b/src/templates/sharecomponent/actioncomponent/verifyexcelout/index.jsx @@ -68,7 +68,7 @@ editable: true, required: false, keyCol: true, - width: '12%', + width: '8%', render: (text) => { if (text === 'image') { return '鍥剧墖' @@ -90,7 +90,7 @@ inputType: 'radio', editable: true, required: false, - width: '12%', + width: '10%', render: (text) => { if (text !== 'false') { return '鏄�' @@ -122,11 +122,33 @@ editable: true, required: false, keyVals: ['number'], - width: '12%', + width: '10%', render: (text, record) => { if (record.type !== 'number') return '' if (text === 'true') { + return '鏄�' + } else { + return '鍚�' + } + }, + options: [ + {value: 'true', text: '鏄�'}, + {value: 'false', text: '鍚�'} + ] + }, + { + title: '0鍊煎鍑�', + dataIndex: 'noValue', + inputType: 'radio', + editable: true, + required: false, + keyVals: ['number'], + width: '10%', + render: (text, record) => { + if (record.type !== 'number') return '' + + if (text !== 'false') { return '鏄�' } else { return '鍚�' @@ -235,6 +257,7 @@ col.type = col.type || 'text' col.output = col.output || 'true' col.required = col.required || 'false' + col.noValue = col.noValue || 'true' if (!['text', 'image', 'number'].includes(col.type)) { if (/^Decimal/ig.test(col.type)) { @@ -411,7 +434,7 @@ }) } - columnChange = (values) => { + columnChange = (values, callback) => { let verify = JSON.parse(JSON.stringify(this.state.verify)) let fields = verify.columns.map(item => item.Column) @@ -422,6 +445,8 @@ duration: 5 }) return + } else { + callback() } values.uuid = Utils.getuuid() values.abs = 'false' @@ -528,6 +553,26 @@ return } + if (verify.dataType === 'custom') { + if (this.scriptsForm && this.scriptsForm.props.form.getFieldValue('sql') && !/^\s+$/.test(this.scriptsForm.props.form.getFieldValue('sql'))) { + notification.warning({ + top: 92, + message: '瀛樺湪鏈繚瀛樿剼鏈紝璇风偣鍑荤‘瀹氫繚瀛橈紝鎴栫偣鍑诲彇娑堟斁寮冧慨鏀癸紒', + duration: 5 + }) + this.setState({activeKey: 'scripts'}) + return + } + } + if (this.columnRef && this.columnRef.state.editingKey) { + notification.warning({ + top: 92, + message: '瀛楁鏈繚瀛橈紒', + duration: 5 + }) + return + } + if (card.intertype === 'system' && verify.dataType !== 'custom' && verify.columns.length > 0 && config.$c_ds && config.setting.interType === 'system' && config.columns && config.columns.length > 0) { let cols = [] let columns = config.columns.map(c => c.field) @@ -585,15 +630,6 @@ }) }) } else if (activeKey === 'columns') { - if (this.columnRef && this.columnRef.state.editingKey) { - notification.warning({ - top: 92, - message: '瀛楁鏈繚瀛橈紒', - duration: 5 - }) - return - } - if (this.props.card.intertype !== 'system' || verify.dataType !== 'custom') { resolve(verify) } else { @@ -612,15 +648,6 @@ }, verify.scripts) } } else if (activeKey === 'scripts') { - if (this.scriptsForm && this.scriptsForm.props.form.getFieldValue('sql') && !/^\s+$/.test(this.scriptsForm.props.form.getFieldValue('sql'))) { - notification.warning({ - top: 92, - message: '瀛樺湪鏈繚瀛樿剼鏈紝璇风偣鍑荤‘瀹氫繚瀛橈紝鎴栫偣鍑诲彇娑堟斁寮冧慨鏀癸紒', - duration: 5 - }) - return - } - this.setState({loading: true}) this.sqlverify(() => { // 楠岃瘉鎴愬姛 this.setState({ @@ -775,6 +802,8 @@ col.type = col.type || 'text' col.output = col.output || 'true' col.required = col.required || 'false' + col.noValue = col.noValue || 'true' + col.Width = col.Width || 20 if (!['text', 'image', 'number'].includes(col.type)) { if (/^Decimal/ig.test(col.type)) { diff --git a/src/templates/sharecomponent/searchcomponent/index.scss b/src/templates/sharecomponent/searchcomponent/index.scss index f568c19..b82e0a3 100644 --- a/src/templates/sharecomponent/searchcomponent/index.scss +++ b/src/templates/sharecomponent/searchcomponent/index.scss @@ -50,6 +50,9 @@ .ant-form-item-label { float: left; } + label[title=" "]::after, label[title=" "]::after { + display: none; + } .ant-form-item-control-wrapper { float: left; .ant-select { diff --git a/src/templates/zshare/formconfig.jsx b/src/templates/zshare/formconfig.jsx index 6b339c9..c2a388a 100644 --- a/src/templates/zshare/formconfig.jsx +++ b/src/templates/zshare/formconfig.jsx @@ -2064,6 +2064,7 @@ key: 'inputType', label: '鍔犲瘑鏄剧ず', initVal: card.inputType || 'text', + tooltip: '杈撳叆妗嗗唴瀹逛互 ****** 鏄剧ず銆�', required: false, options: [{ value: 'text', @@ -2074,17 +2075,23 @@ }] }, { - type: 'radio', + type: 'select', key: 'interception', - label: '鎴彇鏂瑰紡', + label: '鏂囨湰棰勫鐞�', initVal: card.interception || 'true', - tooltip: '鎻愪氦鏃剁殑鏂囨湰澶勭悊鏂瑰紡锛岀┖鐧藉瓧绗︽寚寮�澶存垨缁撳熬鐨勭┖鐧藉瓧绗︺��', + tooltip: '鎻愪氦鏃剁殑鏂囨湰澶勭悊鏂瑰紡銆傛敞锛氬叏瑙掕浆鍗婅鏃朵細鍘婚櫎棣栧熬绌烘牸', options: [{ value: 'false', text: '鏃�' }, { value: 'true', - text: '绌虹櫧瀛楃' + text: '鍘绘帀棣栧熬绌烘牸' + // }, { + // value: 'char', + // text: '鍏ㄨ杞崐瑙�' + }, { + value: 'charTure', + text: '鍏ㄨ杞崐瑙�' }, { value: 'func', text: '鑷畾涔夊嚱鏁�' diff --git a/src/templates/zshare/verifycard/baseform/index.jsx b/src/templates/zshare/verifycard/baseform/index.jsx index c408e74..44e887b 100644 --- a/src/templates/zshare/verifycard/baseform/index.jsx +++ b/src/templates/zshare/verifycard/baseform/index.jsx @@ -507,7 +507,19 @@ </Form.Item> </Col> : null} {verify.printEnable === 'true' ? <Col span={8}> - <Form.Item label="鎵撳嵃妯℃澘" required> + <Form.Item label="鎵撳嵃妯℃澘" required help={(() => { + if (verify.printTempId) { + return <span onClick={() => { + sessionStorage.setItem('mk-print-temp', verify.printTempId) + window.open('#/hs') + + setTimeout(() => { + sessionStorage.removeItem('mk-print-temp') + }, 50) + }} style={{color: '#1890ff', cursor: 'pointer', fontSize: '13px'}}>#鏌ョ湅妯℃澘</span> + } + return null + })()}> <MkPrintTemps value={verify.printTempId} onChange={this.onPrintIdChange}/> </Form.Item> </Col> : null} diff --git a/src/templates/zshare/verifycard/callbackcustomscript/index.jsx b/src/templates/zshare/verifycard/callbackcustomscript/index.jsx index bad06ba..c0c0a6c 100644 --- a/src/templates/zshare/verifycard/callbackcustomscript/index.jsx +++ b/src/templates/zshare/verifycard/callbackcustomscript/index.jsx @@ -12,7 +12,8 @@ static propTpyes = { btn: PropTypes.object, // 鎸夐挳淇℃伅 initsql: PropTypes.string, // 鍒濆鍖栬剼鏈� - usefulfields: PropTypes.string, // 鍙敤瀛楁 + formfields: PropTypes.string, + colfields: PropTypes.string, systemScripts: PropTypes.array, // 绯荤粺鑴氭湰 customScripts: PropTypes.array, // 鑷畾涔夎剼鏈� scriptsChange: PropTypes.func // 琛ㄥ崟 @@ -56,6 +57,15 @@ } if (!err) { + if (/^[\s\n]+$/.test(values.sql)) { + notification.warning({ + top: 92, + message: '璇疯緭鍏ql!', + duration: 5 + }) + return + } + values.uuid = editItem ? editItem.uuid : '' values.position = values.position || (editItem ? editItem.position : 'front') @@ -115,6 +125,7 @@ // 鏁版嵁鏉冮檺 sql = sql.replace(/@\$|\$@/ig, '').replace(/\$check@|@check\$/ig, '') + sql = sql.replace(/@datam@/ig, `''`) sql = sql.replace(/@typename@/ig, `'debug'`) if (skip) { @@ -187,7 +198,7 @@ } render() { - const { usefulfields, systemScripts, btn, type } = this.props + const { formfields, colfields, systemScripts, btn, type } = this.props const { getFieldDecorator } = this.props.form const { editItem, skip } = this.state const formItemLayout = { @@ -201,27 +212,26 @@ } } - // let _usefulfields = usefulfields ? usefulfields.replace(/(BID|ID|LoginUID|SessionUid|UserID|Appkey|UserName|FullName|RoleID|mk_departmentcode|mk_organization|mk_nation|mk_province|mk_city|mk_district|mk_address|mk_user_type|BillCode|BVoucher|FIBVoucherDate|FiYear|ModularDetailCode),\s/ig, '') : null - return ( <Form {...formItemLayout} className="verify-form verify-custom-callback-scripts" id="verify-custom-callback-scripts"> <Row gutter={24}> {!type ? <Col span={8}> - <Form.Item label={'琛ㄥ悕'} style={{whiteSpace: 'nowrap', margin: 0}}> + <Form.Item label="琛ㄥ悕" style={{whiteSpace: 'nowrap', margin: 0}}> {btn.cbTable} </Form.Item> </Col> : null} {!type ? <Col span={10}> - <Form.Item label={'鎶ラ敊瀛楁'} style={{margin: 0, whiteSpace: 'nowrap'}}> + <Form.Item label="鎶ラ敊瀛楁" style={{margin: 0, whiteSpace: 'nowrap'}}> ErrorCode锛堝鍔犲悗缂�NT琛ㄧず鏁版嵁涓嶅洖婊氾紝濡侲NT銆丯NT銆丗NT銆丯MNT銆丆NT銆�-2NT锛�, retmsg </Form.Item> </Col> : null} {!type ? <Col span={24} className="sqlfield"> - <Form.Item label={'鍙敤瀛楁'}> - <Tooltip mouseLeaveDelay={0.3} mouseEnterDelay={0.3} placement="top" title={'鍏叡鍊硷紝璇锋寜鐓xxx@鏍煎紡浣跨敤銆�'}><span style={{color: '#1890ff'}}>BID, ID, LoginUID, SessionUid, UserID, Appkey, time_id, typename</span></Tooltip>, + <Form.Item label="鍙敤瀛楁"> + <Tooltip mouseLeaveDelay={0.3} mouseEnterDelay={0.3} placement="top" title={'鍏叡鍊硷紝璇锋寜鐓xxx@鏍煎紡浣跨敤銆�'}><span style={{color: '#1890ff'}}>BID, ID, LoginUID, SessionUid, UserID, Appkey, time_id, typename, datam</span></Tooltip>, <Tooltip mouseLeaveDelay={0.3} mouseEnterDelay={0.3} placement="top" title={'绯荤粺鍙橀噺锛岀郴缁熶細瀹氫箟鍙橀噺骞惰祴鍊笺��'}><span style={{color: '#fa8c16'}}>UserName, FullName, RoleID, mk_departmentcode, mk_organization, mk_user_type, mk_nation, mk_province, mk_city, mk_district, mk_address, mk_deleted</span></Tooltip>, <Tooltip mouseLeaveDelay={0.3} mouseEnterDelay={0.3} placement="top" title={'绯荤粺鍙橀噺锛岀郴缁熶細瀹氫箟鍙橀噺骞跺湪鍗曞彿鐢熸垚鎴栧垱寤哄嚟璇佹椂浣跨敤銆�'}><span style={{color: '#13c2c2'}}>BillCode, BVoucher, FIBVoucherDate, FiYear, ModularDetailCode</span></Tooltip> - {usefulfields ? <span>, {usefulfields}</span> : ''} + {formfields ? <Tooltip mouseLeaveDelay={0.3} mouseEnterDelay={0.3} placement="top" title="琛ㄥ崟鍙橀噺锛岀郴缁熶細瀹氫箟鍙橀噺骞惰祴鍊笺��">, <span style={{color: '#8E44AD'}}>{formfields}</span></Tooltip> : ''} + {colfields ? <Tooltip mouseLeaveDelay={0.3} mouseEnterDelay={0.3} placement="top" title="瀛楁闆嗗彉閲忥紝绯荤粺浼氬畾涔夊彉閲忓苟璧嬪�笺��">, {colfields}</Tooltip> : ''} </Form.Item> </Col> : null} {!type ? <Col span={8} style={{whiteSpace: 'nowrap'}}> @@ -242,7 +252,7 @@ </Form.Item> </Col> : null} {!type ? <Col span={8}> - <Form.Item label={'蹇嵎娣诲姞'} style={{marginBottom: 0}}> + <Form.Item label="蹇嵎娣诲姞" style={{marginBottom: 0}}> <Select allowClear showSearch diff --git a/src/templates/zshare/verifycard/customform/index.jsx b/src/templates/zshare/verifycard/customform/index.jsx index ee29cbe..a111016 100644 --- a/src/templates/zshare/verifycard/customform/index.jsx +++ b/src/templates/zshare/verifycard/customform/index.jsx @@ -10,7 +10,8 @@ class CustomForm extends Component { static propTpyes = { btn: PropTypes.object, // 鎸夐挳 - usefulfields: PropTypes.string, // 鍙敤瀛楁 + formfields: PropTypes.string, + colfields: PropTypes.string, initsql: PropTypes.string, // 鍙敤瀛楁 customChange: PropTypes.func // 琛ㄥ崟 } @@ -111,7 +112,7 @@ } render() { - const { usefulfields, btn } = this.props + const { formfields, colfields, btn } = this.props const { getFieldDecorator } = this.props.form const formItemLayout = { labelCol: { @@ -124,8 +125,6 @@ } } - // let _usefulfields = usefulfields ? usefulfields.replace(/(BID|ID|LoginUID|SessionUid|UserID|Appkey|UserName|FullName|RoleID|mk_departmentcode|mk_organization|mk_nation|mk_province|mk_city|mk_district|mk_address|mk_user_type|BillCode|BVoucher|FIBVoucherDate|FiYear|ModularDetailCode),\s/ig, '') : null - return ( <Form {...formItemLayout} className="verify-form" id="verifycard2"> <Row gutter={24}> @@ -134,7 +133,8 @@ <Tooltip mouseLeaveDelay={0.3} mouseEnterDelay={0.3} placement="top" title={'鍏叡鍊硷紝璇锋寜鐓xxx@鏍煎紡浣跨敤銆�'}><span style={{color: '#1890ff'}}>BID, ID, LoginUID, SessionUid, UserID, Appkey, time_id</span></Tooltip>, <Tooltip mouseLeaveDelay={0.3} mouseEnterDelay={0.3} placement="top" title={'绯荤粺鍙橀噺锛岀郴缁熶細瀹氫箟鍙橀噺骞惰祴鍊笺��'}><span style={{color: '#fa8c16'}}>UserName, FullName, RoleID, mk_departmentcode, mk_organization, mk_user_type, mk_nation, mk_province, mk_city, mk_district, mk_address, mk_deleted</span></Tooltip>, <Tooltip mouseLeaveDelay={0.3} mouseEnterDelay={0.3} placement="top" title={'绯荤粺鍙橀噺锛岀郴缁熶細瀹氫箟鍙橀噺骞跺湪鍗曞彿鐢熸垚鎴栧垱寤哄嚟璇佹椂浣跨敤銆�'}><span style={{color: '#13c2c2'}}>BillCode, BVoucher, FIBVoucherDate, FiYear, ModularDetailCode</span></Tooltip> - {usefulfields ? <span>, {usefulfields}</span> : ''} + {formfields ? <Tooltip mouseLeaveDelay={0.3} mouseEnterDelay={0.3} placement="top" title="琛ㄥ崟鍙橀噺锛岀郴缁熶細瀹氫箟鍙橀噺骞惰祴鍊笺��">, <span style={{color: '#8E44AD'}}>{formfields}</span></Tooltip> : ''} + {colfields ? <Tooltip mouseLeaveDelay={0.3} mouseEnterDelay={0.3} placement="top" title="瀛楁闆嗗彉閲忥紝绯荤粺浼氬畾涔夊彉閲忓苟璧嬪�笺��">, {colfields}</Tooltip> : ''} </Form.Item> </Col> <Col span={21} className="sql"> diff --git a/src/templates/zshare/verifycard/customscript/index.jsx b/src/templates/zshare/verifycard/customscript/index.jsx index b0e413a..0a068a3 100644 --- a/src/templates/zshare/verifycard/customscript/index.jsx +++ b/src/templates/zshare/verifycard/customscript/index.jsx @@ -12,7 +12,8 @@ static propTpyes = { type: PropTypes.any, btn: PropTypes.object, - usefulfields: PropTypes.string, + formfields: PropTypes.string, + colfields: PropTypes.string, initsql: PropTypes.string, defaultsql: PropTypes.string, useDefaultSql: PropTypes.any, @@ -276,7 +277,7 @@ } render() { - const { usefulfields, systemScripts, btn, type, workFlow } = this.props + const { formfields, colfields, systemScripts, btn, type, workFlow } = this.props const { getFieldDecorator } = this.props.form const { editItem, skip } = this.state const formItemLayout = { @@ -291,8 +292,6 @@ } let _type = type || '' - - // let _usefulfields = usefulfields ? usefulfields.replace(/(BID|ID|LoginUID|SessionUid|UserID|Appkey|UserName|FullName|RoleID|mk_departmentcode|mk_organization|mk_nation|mk_province|mk_city|mk_district|mk_address|mk_user_type|BillCode|BVoucher|FIBVoucherDate|FiYear|ModularDetailCode),\s/ig, '') : null return ( <Form {...formItemLayout} className="verify-form verify-custom-scripts" id={'verify-custom-scripts' + _type}> @@ -309,11 +308,12 @@ </Col> : null} {!_type ? <Col span={24} className="sqlfield"> <Form.Item label={'鍙敤瀛楁'}> - <Tooltip mouseLeaveDelay={0.3} mouseEnterDelay={0.3} placement="top" title={'鍏叡鍊硷紝璇锋寜鐓xxx@鏍煎紡浣跨敤銆�'}><span style={{color: '#1890ff'}}>BID, ID, LoginUID, SessionUid, UserID, Appkey, time_id, typename</span></Tooltip>, - <Tooltip mouseLeaveDelay={0.3} mouseEnterDelay={0.3} placement="top" title={'绯荤粺鍙橀噺锛岀郴缁熶細瀹氫箟鍙橀噺骞惰祴鍊笺��'}><span style={{color: '#fa8c16'}}>UserName, FullName, RoleID, mk_departmentcode, mk_organization, mk_user_type, mk_nation, mk_province, mk_city, mk_district, mk_address, mk_deleted</span></Tooltip>, - <Tooltip mouseLeaveDelay={0.3} mouseEnterDelay={0.3} placement="top" title={'绯荤粺鍙橀噺锛岀郴缁熶細瀹氫箟鍙橀噺骞跺湪鍗曞彿鐢熸垚鎴栧垱寤哄嚟璇佹椂浣跨敤銆�'}><span style={{color: '#13c2c2'}}>BillCode, BVoucher, FIBVoucherDate, FiYear, ModularDetailCode</span></Tooltip> - {usefulfields ? <span>, {usefulfields}</span> : ''} - {window.GLOB.process && workFlow === 'true' ? <Tooltip mouseLeaveDelay={0.3} mouseEnterDelay={0.3} placement="top" title={'宸ヤ綔娴佸彉閲忥紝璇锋寜鐓xxx@鏍煎紡浣跨敤銆傛敞锛歝heck_userids銆乶otice_userids 鍦ㄥ鎵规垨椹冲洖鏃舵湁鏁堛��'}>,<span style={{color: 'purple'}}> works_flow_code, works_flow_name, works_flow_param, works_flow_detail_id, status, statusname, work_group, work_grade, start_type, check_type, notice_type, check_userids, notice_userids</span></Tooltip> : null} + <Tooltip mouseLeaveDelay={0.3} mouseEnterDelay={0.3} placement="top" title="鍏叡鍊硷紝璇锋寜鐓xxx@鏍煎紡浣跨敤銆�"><span style={{color: '#1890ff'}}>BID, ID, LoginUID, SessionUid, UserID, Appkey, time_id, typename, datam</span></Tooltip>, + <Tooltip mouseLeaveDelay={0.3} mouseEnterDelay={0.3} placement="top" title="绯荤粺鍙橀噺锛岀郴缁熶細瀹氫箟鍙橀噺骞惰祴鍊笺��"><span style={{color: '#fa8c16'}}>UserName, FullName, RoleID, mk_departmentcode, mk_organization, mk_user_type, mk_nation, mk_province, mk_city, mk_district, mk_address, mk_deleted</span></Tooltip>, + <Tooltip mouseLeaveDelay={0.3} mouseEnterDelay={0.3} placement="top" title="绯荤粺鍙橀噺锛岀郴缁熶細瀹氫箟鍙橀噺骞跺湪鍗曞彿鐢熸垚鎴栧垱寤哄嚟璇佹椂浣跨敤銆�"><span style={{color: '#13c2c2'}}>BillCode, BVoucher, FIBVoucherDate, FiYear, ModularDetailCode</span></Tooltip> + {formfields ? <Tooltip mouseLeaveDelay={0.3} mouseEnterDelay={0.3} placement="top" title="琛ㄥ崟鍙橀噺锛岀郴缁熶細瀹氫箟鍙橀噺骞惰祴鍊笺��">, <span style={{color: '#8E44AD'}}>{formfields}</span></Tooltip> : ''} + {colfields ? <Tooltip mouseLeaveDelay={0.3} mouseEnterDelay={0.3} placement="top" title="瀛楁闆嗗彉閲忥紝绯荤粺浼氬畾涔夊彉閲忓苟璧嬪�笺��">, {colfields}</Tooltip> : ''} + {window.GLOB.process && workFlow === 'true' ? <Tooltip mouseLeaveDelay={0.3} mouseEnterDelay={0.3} placement="top" title="宸ヤ綔娴佸彉閲忥紝璇锋寜鐓xxx@鏍煎紡浣跨敤銆傛敞锛歝heck_userids銆乶otice_userids 鍦ㄥ鎵规垨椹冲洖鏃舵湁鏁堛��">,<span style={{color: 'purple'}}> works_flow_code, works_flow_name, works_flow_param, works_flow_detail_id, status, statusname, work_group, work_grade, start_type, check_type, notice_type, check_userids, notice_userids</span></Tooltip> : null} </Form.Item> </Col> : null} {!_type ? <Col span={8} style={{whiteSpace: 'nowrap'}}> diff --git a/src/templates/zshare/verifycard/index.jsx b/src/templates/zshare/verifycard/index.jsx index 1b7d9be..4617c6c 100644 --- a/src/templates/zshare/verifycard/index.jsx +++ b/src/templates/zshare/verifycard/index.jsx @@ -44,7 +44,8 @@ emailCodes: [], // 閭妯℃澘 verify: {}, fields: [], - usefulfields: '', + formfields: '', + colfields: '', defaultsql: '', // 榛樿Sql orderModular: [], orderModularDetail: [], @@ -715,15 +716,12 @@ _fields = card.modal.fields || [] } - let _usefulfields = ['UserName', 'FullName', 'RoleID', 'mk_departmentcode', 'mk_organization', 'mk_user_type', 'mk_nation', 'mk_province', 'mk_city', 'mk_district', 'mk_address', 'BillCode', 'BVoucher', 'FIBVoucherDate', 'FiYear', 'ModularDetailCode', 'tbid', 'mk_deleted'] + let sysfields = ['UserName', 'FullName', 'RoleID', 'mk_departmentcode', 'mk_organization', 'mk_user_type', 'mk_nation', 'mk_province', 'mk_city', 'mk_district', 'mk_address', 'BillCode', 'BVoucher', 'FIBVoucherDate', 'FiYear', 'ModularDetailCode', 'tbid', 'mk_deleted', 'bid'] let _declare = ['@UserName nvarchar(50)', '@FullName nvarchar(50)', '@RoleID nvarchar(512)', '@mk_departmentcode nvarchar(512)', '@mk_organization nvarchar(512)', '@mk_user_type nvarchar(20)', '@mk_nation nvarchar(50)', '@mk_province nvarchar(50)', '@mk_city nvarchar(50)', '@mk_district nvarchar(50)', '@mk_address nvarchar(100)', '@ErrorCode nvarchar(50)', '@retmsg nvarchar(4000)', '@BillCode nvarchar(50)', '@BVoucher nvarchar(50)', '@FIBVoucherDate nvarchar(50)', '@FiYear nvarchar(50)', '@ModularDetailCode nvarchar(50)', '@bid nvarchar(50)', '@tbid nvarchar(50)', '@mk_deleted int'] let _select = ['@UserName=\'\'', '@FullName=\'\'', '@RoleID=\'\'', '@mk_departmentcode=\'\'', '@mk_organization=\'\'', '@mk_user_type=\'\'', '@mk_nation=\'\'', '@mk_province=\'\'', '@mk_city=\'\'', '@mk_district=\'\'', '@mk_address=\'\'', '@ErrorCode=\'\'', '@retmsg=\'\'', '@BillCode=\'\'', '@BVoucher=\'\'', '@FIBVoucherDate=\'\'', '@FiYear=\'\'', '@ModularDetailCode=\'\'', '@bid=\'\'', '@mk_deleted=1'] - let fieldArr = _usefulfields.map(_f => _f.toLowerCase()) - let hasBid = false - - _usefulfields = [] - fieldArr.push('bid') + let fieldArr = sysfields.map(_f => _f.toLowerCase()) + let hasBid = false let verIndex = _fields.findIndex(item => item.type === 'vercode') if (verIndex > -1) { @@ -746,6 +744,7 @@ }) } + let formfields = [] _fields = _fields.filter(_f => _f.field) _fields.forEach(_f => { if (_f.field.toLowerCase() === 'bid') { @@ -756,7 +755,7 @@ fieldArr.push(_f.field.toLowerCase()) - _usefulfields.push(_f.field) + formfields.push(_f.field) let _fieldlen = _f.fieldlength || 50 @@ -799,6 +798,7 @@ let unionFields = fromJS(_fields).toJS() let formArr = _fields.map(_f => _f.field.toLowerCase()) + let colfields = [] if (card.Ot !== 'notRequired' && columns) { columns.forEach(_f => { if (!_f.field) return @@ -813,7 +813,7 @@ if (fieldArr.includes(key)) return fieldArr.push(key) - _usefulfields.push(_f.field) + colfields.push(_f.field) if (_f.datatype) { // 鑷畾涔夊瓧娈� if (/decimal/ig.test(_f.datatype)) { @@ -1033,7 +1033,8 @@ columnsFields: _columns, initsql: _sql, defaultsql: _defaultsql, - usefulfields: _usefulfields.join(', '), + formfields: formfields.join(', '), + colfields: colfields.join(', '), uniqueColumns: this.state.uniqueColumns.map(col => { if (col.dataIndex === 'field') { col.options = uniqueFields @@ -1261,7 +1262,7 @@ verify.scripts.push(values) } - if (/@bvoucher(\s|\))/ig.test(values.sql)) { + if (/@bvoucher(\s|\))/ig.test(values.sql) && !/s_BVoucher_Create/ig.test(values.sql)) { if (verify.voucher && verify.voucher.enabled) { } else if (card.Ot !== 'notRequired' && columns) { @@ -1664,7 +1665,7 @@ render() { const { card, columns } = this.props - const { activeKey, verifyInter, verify, fields, uniqueFields, uniqueColumns, unionFields, onceUniqueColumns, columnsFields, contrastColumns, customColumns, orderColumns, scriptsColumns, cbScriptsColumns, orderModular, orderModularDetail, voucher, voucherDetail, notes, emailCodes, appType } = this.state + const { activeKey, verifyInter, verify, fields, uniqueFields, uniqueColumns, unionFields, onceUniqueColumns, columnsFields, contrastColumns, customColumns, orderColumns, scriptsColumns, cbScriptsColumns, orderModular, orderModularDetail, voucher, voucherDetail, notes, emailCodes, appType, formfields, colfields } = this.state const formItemLayout = { labelCol: { xs: { span: 24 }, @@ -1706,7 +1707,8 @@ <CustomForm btn={this.props.card} initsql={this.state.initsql} - usefulfields={this.state.usefulfields} + formfields={formfields} + colfields={colfields} customChange={this.customChange} wrappedComponentRef={(inst) => this.customForm = inst} /> @@ -1778,7 +1780,8 @@ customScripts={verify.scripts} useDefaultSql={verify.default !== 'false'} defaultsql={this.state.defaultsql} - usefulfields={this.state.usefulfields} + formfields={formfields} + colfields={colfields} systemScripts={this.state.systemScripts} scriptsChange={this.scriptsChange} wrappedComponentRef={(inst) => this.scriptsFullForm = inst} @@ -1792,7 +1795,8 @@ customScripts={verify.scripts} useDefaultSql={verify.default !== 'false'} defaultsql={this.state.defaultsql} - usefulfields={this.state.usefulfields} + formfields={formfields} + colfields={colfields} systemScripts={this.state.systemScripts} scriptsChange={this.scriptsChange} wrappedComponentRef={(inst) => this.scriptsForm = inst} @@ -1817,7 +1821,8 @@ btn={this.props.card} initsql={this.state.initsql} customScripts={verify.cbScripts} - usefulfields={this.state.usefulfields} + formfields={formfields} + colfields={colfields} systemScripts={this.state.systemScripts} scriptsChange={this.cbScriptsChange} wrappedComponentRef={(inst) => this.cbscriptsFullForm = inst} @@ -1827,7 +1832,8 @@ btn={this.props.card} initsql={this.state.initsql} customScripts={verify.cbScripts} - usefulfields={this.state.usefulfields} + formfields={formfields} + colfields={colfields} systemScripts={this.state.systemScripts} scriptsChange={this.cbScriptsChange} wrappedComponentRef={(inst) => this.cbscriptsForm = inst} diff --git a/src/utils/utils-custom.js b/src/utils/utils-custom.js index 8926d01..9390ede 100644 --- a/src/utils/utils-custom.js +++ b/src/utils/utils-custom.js @@ -1649,6 +1649,16 @@ if (card.$c_ds) { columns = card.columns.map(c => c.field) + + if (card.setting.primaryKey && !columns.includes(card.setting.primaryKey)) { + let key = card.setting.primaryKey.toLowerCase() + columns.forEach(f => { + if (f.toLowerCase() === key) { + card.setting.primaryKey = f + } + }) + } + if (card.setting.interType === 'system' && card.setting.execute !== 'false' && !card.setting.dataresource) { errors.push({ level: 0, detail: '鏈缃暟鎹簮锛�'}) } else if (card.setting.interType === 'system' && card.setting.execute === 'false' && card.scripts.filter(script => script.status !== 'false').length === 0) { diff --git a/src/utils/utils-datamanage.js b/src/utils/utils-datamanage.js index 91e58db..91dfd4a 100644 --- a/src/utils/utils-datamanage.js +++ b/src/utils/utils-datamanage.js @@ -297,7 +297,7 @@ // exec_type 瑙g爜瀛楁锛歀Text銆丩Text1銆丩Text2銆乧ustom_script銆丏ateCount - param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss.SSS') param.secretkey = Utils.encrypt('', param.timestamp) param.username = userName @@ -572,9 +572,7 @@ fullName: sessionStorage.getItem('Full_Name') || '' } - if (config.MenuName) { - param.menuname = config.MenuName - } + param.menuname = config.MenuName || config.$menuname || '' param.exec_type = window.GLOB.execType || 'y' param.LText = Utils.formatOptions(_LText.join(' union all '), param.exec_type) diff --git a/src/utils/utils.js b/src/utils/utils.js index cc96970..a904374 100644 --- a/src/utils/utils.js +++ b/src/utils/utils.js @@ -726,9 +726,9 @@ if (item.type === 'date') { if (!item.value) { if (['>=', '>'].includes(item.match)) { - item.value = '1970-01-01 00:00:00.000' + item.value = '1900-01-01 00:00:00.000' } else if (['<=', '<'].includes(item.match)) { - item.value = '2050-01-01 00:00:00.000' + item.value = '3000-01-01 00:00:00.000' } } else if (search.precision === 'day') { if (['>=', '>'].includes(item.match)) { @@ -749,8 +749,8 @@ if (item.match === '=') { options.push(item) } else { - let _startval = item.value ? moment(item.value, 'YYYY-MM').startOf('month').format('YYYY-MM-DD') + ' 00:00:00.000' : '1970-01-01 00:00:00.000' - let _endval = item.value ? moment(item.value, 'YYYY-MM').endOf('month').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' : '2050-01-01 00:00:00.000' + let _startval = item.value ? moment(item.value, 'YYYY-MM').startOf('month').format('YYYY-MM-DD') + ' 00:00:00.000' : '1900-01-01 00:00:00.000' + let _endval = item.value ? moment(item.value, 'YYYY-MM').endOf('month').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' : '3000-01-01 00:00:00.000' let copy = JSON.parse(JSON.stringify(item)) copy.key = copy.key + '1' @@ -773,8 +773,8 @@ options.push(item) options.push(copy) } else if (item.type === 'dateweek') { - let _startval = item.value ? moment(item.value, 'YYYY-MM-DD').startOf('week').format('YYYY-MM-DD') + ' 00:00:00.000' : '1970-01-01 00:00:00.000' - let _endval = item.value ? moment(item.value, 'YYYY-MM-DD').endOf('week').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' : '2050-01-01 00:00:00.000' + let _startval = item.value ? moment(item.value, 'YYYY-MM-DD').startOf('week').format('YYYY-MM-DD') + ' 00:00:00.000' : '1900-01-01 00:00:00.000' + let _endval = item.value ? moment(item.value, 'YYYY-MM-DD').endOf('week').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' : '3000-01-01 00:00:00.000' let copy = JSON.parse(JSON.stringify(item)) copy.key = copy.key + '1' @@ -785,8 +785,8 @@ options.push(item) options.push(copy) } else if (item.type === 'daterange') { - let _startval = '1970-01-01 00:00:00.000' - let _endval = '2050-01-01 00:00:00.000' + let _startval = '1900-01-01 00:00:00.000' + let _endval = '3000-01-01 00:00:00.000' if (item.value) { let val = item.value.split(',') diff --git a/src/views/login/index.jsx b/src/views/login/index.jsx index 4e1cb3a..2d3f44e 100644 --- a/src/views/login/index.jsx +++ b/src/views/login/index.jsx @@ -956,6 +956,7 @@ <a target="_blank" rel="noopener noreferrer" href={webSite} dangerouslySetInnerHTML={{ __html: copyRight.replace(/\s/ig, ' ') }}></a> : <p dangerouslySetInnerHTML={{ __html: copyRight ? copyRight.replace(/\s/ig, ' ') : '' }}></p> } + <br/> {ICP ? <a target="_blank" rel="noopener noreferrer" href="https://beian.miit.gov.cn/#/Integrated/index" dangerouslySetInnerHTML={{ __html: ICP.replace(/\s/ig, ' ') }}></a> : null} </div> {/* 缂栬緫鐘舵�佺櫥褰� */} diff --git a/src/views/login/index.scss b/src/views/login/index.scss index 6d63473..58f4397 100644 --- a/src/views/login/index.scss +++ b/src/views/login/index.scss @@ -236,12 +236,13 @@ text-align: center; color: var(--mk-sys-font-color); padding-top: 20px; - p span.split { - margin-right: 15px; + p { + margin-bottom: 5px; + } + p + br { + display: none; } a { - display: block; - margin-bottom: 5px; color: var(--mk-sys-font-color); } } diff --git a/src/views/printTemplate/index.jsx b/src/views/printTemplate/index.jsx index 39c625f..dcb5d22 100644 --- a/src/views/printTemplate/index.jsx +++ b/src/views/printTemplate/index.jsx @@ -320,6 +320,9 @@ if (keyCode === 46 && editItemId && editItemType !== 'Template') { this.deleteItem() } + if (e.ctrlKey && keyCode === 81 && editItemId && editItemType !== 'Template') { + this.copyItem() + } } } @@ -706,6 +709,51 @@ }) } + copyItem = () => { + const { editItemId, config, fields } = this.state + + let cell = config.elements.filter(item => item.uuid === editItemId)[0] + + if (!cell) return + + let item = {...cell} + + item.left = item.left + parseInt(item.width / 4) + item.top = item.top + parseInt(item.height / 4) + item.uuid = Utils.getuuid() + + if (item.left + item.width > config.width) { + item.left = config.width - item.width + } + if (item.top + item.height > config.height) { + item.top = config.height - item.height + } + + let _config = fromJS(config).toJS() + + _config.elements.push(item) + + let _formlist = [] + if (item.type === 'text') { + _formlist = getTextForm(item, fields) + } else if (item.type === 'barcode') { + _formlist = getBarcodeForm(item, fields) + } else if (item.type === 'qrcode') { + _formlist = getQrcodeForm(item, fields) + } else if (item.type === 'image') { + _formlist = getImageForm(item, fields) + } + + this.setState({ + config: _config, + editItemId: item.uuid, + editItemType: item.type, + formlist: _formlist + }, () => { + this.resetview() + }) + } + deleteItem = () => { const _this = this const { editItemId, config } = this.state @@ -896,7 +944,10 @@ return ( <div className="print-template"> <DndProvider backend={HTML5Backend}> - <header className="print-header-container ant-menu-dark">妯℃澘鍒朵綔</header> + <header className="print-header-container ant-menu-dark"> + 妯℃澘鍒朵綔 + <div>蹇嵎閿細Delete锛堝垹闄ゅ厓绱狅級銆乧trl + q锛堝鍒跺厓绱狅級</div> + </header> <aside className="tools"> <Card className="tool-bar" title="宸ュ叿鏍�"> {printItems.map((item, index) => { diff --git a/src/views/printTemplate/index.scss b/src/views/printTemplate/index.scss index cd65a0b..0ca8cae 100644 --- a/src/views/printTemplate/index.scss +++ b/src/views/printTemplate/index.scss @@ -20,6 +20,13 @@ text-align: center; color: #fff; background: #001529; + + div { + position: absolute; + top: 0px; + right: 30px; + font-size: 14px; + } } .tools { width: 240px; diff --git a/src/views/rolemanage/index.jsx b/src/views/rolemanage/index.jsx index 171b2c2..cd23aaa 100644 --- a/src/views/rolemanage/index.jsx +++ b/src/views/rolemanage/index.jsx @@ -379,7 +379,8 @@ ParentID: 'mk_app', TypeCharOne: app.kei_no, typename: app.typename, - lang: app.lang + lang: app.lang, + TYPE: 30 }).then(res => { if (res.status) { this.setState({ -- Gitblit v1.8.0