From 76427d51a079a5fd1f45bf7188249e7a4647ae05 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期一, 14 九月 2020 10:37:25 +0800 Subject: [PATCH] 2020-09-14 --- src/templates/sharecomponent/actioncomponent/verifyexcelout/index.jsx | 122 ++++++++++++++++++++++++++++++++-------- 1 files changed, 96 insertions(+), 26 deletions(-) diff --git a/src/templates/sharecomponent/actioncomponent/verifyexcelout/index.jsx b/src/templates/sharecomponent/actioncomponent/verifyexcelout/index.jsx index 6621ff3..bcb6274 100644 --- a/src/templates/sharecomponent/actioncomponent/verifyexcelout/index.jsx +++ b/src/templates/sharecomponent/actioncomponent/verifyexcelout/index.jsx @@ -1,17 +1,18 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' import { fromJS } from 'immutable' -import { Form, Tabs, Row, Col, Button, Table, Popconfirm, Icon, notification, Modal, message, InputNumber, Radio, Input } from 'antd' +import { Form, Tabs, Row, Col, Button, Table, Popconfirm, Icon, notification, Modal, message, InputNumber, Radio } from 'antd' import moment from 'moment' import Api from '@/api' import Utils from '@/utils/utils.js' import ColumnForm from './columnform' +import CodeMirror from '@/templates/zshare/codemirror' import './index.scss' const { TabPane } = Tabs -const { TextArea } = Input +const { confirm } = Modal class VerifyCard extends Component { static propTpyes = { @@ -27,24 +28,17 @@ { title: this.props.dict['model.form.field'], dataIndex: 'Column', - width: '20%' + width: '25%' }, { title: this.props.dict['model.name'], dataIndex: 'Text', - width: '20%' - }, - { - title: this.props.dict['model.export'], - dataIndex: 'export', - width: '20%', - editable: true, - render: (text, record) => record.export !== 'false' ? this.props.dict['model.true'] : this.props.dict['model.false'] + width: '25%' }, { title: this.props.dict['model.form.columnWidth'], dataIndex: 'Width', - width: '20%' + width: '25%' }, { title: '鎿嶄綔', @@ -57,9 +51,8 @@ <span className="operation-btn" title={this.props.dict['header.form.up']} onClick={() => this.handleUpDown(record, 'columns', 'up')} style={{color: '#1890ff'}}><Icon type="arrow-up" /></span> <span className="operation-btn" title={this.props.dict['header.form.down']} onClick={() => this.handleUpDown(record, 'columns', 'down')} style={{color: '#ff4d4f'}}><Icon type="arrow-down" /></span> <Popconfirm - title={this.props.dict['header.form.query.delete']} - okText={this.props.dict['model.confirm']} - cancelText={this.props.dict['model.cancel']} + overlayClassName="popover-confirm" + title={this.props.dict['model.query.delete']} onConfirm={() => this.handleDelete(record, 'columns') }> <span style={{color: '#ff4d4f', cursor: 'pointer'}}><Icon type="delete" /></span> @@ -79,18 +72,28 @@ } _verify.enable = _verify.enable || 'false' - _verify.columns = _verify.columns || [] - _verify.columns = _verify.columns.map(col => { - col.Width = col.Width || 20 - return col - }) - if (card.intertype !== 'inner' || card.innerFunc) { + // 鍚屾鏄剧ず鍒� + if (!_verify.columns || _verify.columns.length === 0) { + _verify.columns = [] + config.columns.forEach(item => { + if (!item.field) return + + _verify.columns.push({ + Column: item.field, + Text: item.label, + Width: 20, + uuid: Utils.getuuid() + }) + }) + } + + if (card.intertype !== 'system') { _verify.enable = 'false' } let defaultscript = '' - if (!_verify.script && card.intertype === 'inner' && !card.innerFunc) { + if (!_verify.script && card.intertype === 'system') { let search = this.formatSearch(config.search) search = Utils.joinMainSearchkey(search) search = search ? 'where ' + search : '' @@ -163,6 +166,15 @@ } }) } else { + let fields = verify.columns.map(item => item.Column) + if (fields.includes(values.Column)) { + notification.warning({ + top: 92, + message: values.Column + '瀛楁宸插瓨鍦紒', + duration: 5 + }) + return + } values.uuid = Utils.getuuid() verify.columns.push(values) } @@ -339,7 +351,7 @@ param.LText = param.LText.replace(/@\$|\$@/ig, '') param.LText = Utils.formatOptions(param.LText) - param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + '.000' + param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') param.secretkey = Utils.encrypt(param.LText, param.timestamp) Api.getLocalConfig(param).then(res => { @@ -373,6 +385,48 @@ }) } + columnFieldInput = () => { + const { config } = this.props + const { verify } = this.state + + let columns = fromJS(verify.columns).toJS() + let fields = columns.map(item => item.Column) + + config.columns.forEach(item => { + if (fields.includes(item.field) || !item.field) return + fields.push(item.field) + + columns.push({ + Column: item.field, + Text: item.label, + Width: 20, + uuid: Utils.getuuid() + }) + }) + + this.setState({ + verify: {...verify, columns: columns} + }) + } + + clearField = () => { + const { verify } = this.state + const _this = this + + confirm({ + content: `纭畾娓呯┖Excel鍒楀悧锛焋, + onOk() { + _this.setState({ + verify: { + ...verify, + columns: [] + } + }) + }, + onCancel() {} + }) + } + render() { const { card } = this.props const { verify, excelColumns, defaultscript } = this.state @@ -391,12 +445,23 @@ return ( <div id="verify-excelout-box-tab"> <Tabs defaultActiveKey="1" className="verify-card-box" onChange={this.tabchange}> - <TabPane tab="Excel瀵煎嚭鍒�" key="1"> + <TabPane tab={ + <span> + Excel瀵煎嚭鍒� + {verify.columns.length ? <span className="count-tip">{verify.columns.length}</span> : null} + </span> + } key="1"> <ColumnForm dict={this.props.dict} columnChange={this.columnChange} wrappedComponentRef={(inst) => this.columnForm = inst} /> + <Button className="excel-col-add mk-green" title="娣诲姞鏄剧ず鍒楀瓧娈�" onClick={this.columnFieldInput}> + 鍚屾鏄剧ず鍒� + </Button> + <Button className="excel-col-add mk-red" title="娓呯┖Excel鍒�" onClick={this.clearField}> + 娓呯┖Excel鍒� + </Button> <Table bordered rowKey="uuid" @@ -406,7 +471,12 @@ pagination={false} /> </TabPane> - {card.intertype === 'inner' && !card.innerFunc ? <TabPane tab="鑷畾涔夎剼鏈�" key="6"> + {card.intertype === 'system' ? <TabPane tab={ + <span> + 鑷畾涔夎剼鏈� + {verify.enable === 'true' ? <span className="count-tip">1</span> : null} + </span> + } key="6"> <Form {...formItemLayout} className="verify-form"> <Row gutter={24}> <Col span={8}> @@ -427,7 +497,7 @@ message: this.props.dict['form.required.input'] + 'sql!' } ] - })(<TextArea rows={15} />)} + })(<CodeMirror />)} </Form.Item> </Col> </Row> -- Gitblit v1.8.0