| | |
| | | { |
| | | "appId": "201912040924165801464FF1788654BC5AC73", |
| | | "appkey": "20191106103859640976D6E924E464D029CF0", |
| | | "appId": "202108312122504607B107A83F55B40C98CCF", |
| | | "appkey": "20210831212235413F287EC3BF489424496C8", |
| | | "mainSystemApi": "http://sso.mk9h.cn/cloud/webapi/dostars", |
| | | "systemType": "", |
| | | "externalDatabase": "", |
| | | "lineColor": "", |
| | | "filter": "false", |
| | | "defaultApp": "mk", |
| | | "defaultApp": "mkindustry", |
| | | "defaultLang": "zh-CN", |
| | | "WXAppID": "", |
| | | "WXminiAppID": "", |
| | |
| | | "transfer": "false", |
| | | "keepPassword": "true", |
| | | "platforms": ["H5", "wechat", "android", "ios", "wxMiniProgram"], |
| | | "host": "http://qingqiumarket.cn", |
| | | "service": "MKWMS/" |
| | | "host": "http://demo.mk9h.cn", |
| | | "service": "erp_new/" |
| | | } |
| | |
| | | |
| | | let checkAll = '' |
| | | if ((cards.subtype === 'datacard' || cards.subtype === 'dualdatacard') && card.$cardType === 'extendCard') { |
| | | checkAll = card.setting.checkAll === 'show' ? ' mk-checkable' : '' |
| | | checkAll = card.setting.checkAll === 'show' ? ' mk-checkable mk-extend-card' : '' |
| | | if (checkAll && cards.wrap.selStyle === 'check square') { |
| | | checkAll = ' mk-checkable square' |
| | | checkAll = ' mk-checkable square mk-extend-card' |
| | | } |
| | | } else if (cards.subtype === 'datacard') { |
| | | if (cards.wrap.selStyle === 'check') { |
| | |
| | | borderRightWidth: '1px', borderRightColor: '#e8e8e8', |
| | | borderBottomWidth: '1px', borderBottomColor: '#e8e8e8', |
| | | paddingTop: '15px', paddingBottom: '15px', paddingLeft: '15px', paddingRight: '15px', |
| | | marginLeft: '8px', marginRight: '8px', marginBottom: '8px' |
| | | marginLeft: '8px', marginRight: '8px' |
| | | }, |
| | | backElements: [{ |
| | | uuid: Utils.getuuid(), |
| | |
| | | |
| | | let _style = resetStyle(card.style) |
| | | |
| | | let extraName = '' |
| | | card.subcards.forEach(subcard => { |
| | | if (subcard.$cardType === 'extendCard') return |
| | | if (subcard.setting.controlIcon === 'left') { |
| | | extraName = ' mk-control-icon' |
| | | } |
| | | }) |
| | | |
| | | return ( |
| | | <div className={'menu-double-data-card-edit-box ' + appType} style={_style} onClick={this.clickComponent} id={card.uuid}> |
| | | <NormalHeader config={card} updateComponent={this.updateComponent}/> |
| | |
| | | <ToolOutlined /> |
| | | </Popover> |
| | | <ActionComponent config={card} setSubConfig={this.setSubConfig} updateaction={this.updateComponent}/> |
| | | <div className={'float-' + (card.wrap.cardFloat || 'left') + ' select-' + card.wrap.selStyle}> |
| | | <div className={'select-' + card.wrap.selStyle + extraName}> |
| | | {card.subcards.map(subcard => { |
| | | if (subcard.$cardType === 'extendCard') { |
| | | return (<CardComponent key={subcard.uuid} cards={card} card={subcard} move={this.move} updateElement={this.updateCard} deleteElement={this.deleteCard}/>) |
| | |
| | | font-size: 16px; |
| | | } |
| | | } |
| | | .float-center { |
| | | text-align: center; |
| | | >.ant-col { |
| | | display: inline-block; |
| | | float: none; |
| | | text-align: left; |
| | | vertical-align: top; |
| | | } |
| | | } |
| | | .float-right { |
| | | text-align: right; |
| | | >.ant-col { |
| | | display: inline-block; |
| | | float: none; |
| | | text-align: left; |
| | | vertical-align: top; |
| | | } |
| | | } |
| | | // .float-center { |
| | | // text-align: center; |
| | | // >.ant-col { |
| | | // display: inline-block; |
| | | // float: none; |
| | | // text-align: left; |
| | | // vertical-align: top; |
| | | // } |
| | | // } |
| | | // .float-right { |
| | | // text-align: right; |
| | | // >.ant-col { |
| | | // display: inline-block; |
| | | // float: none; |
| | | // text-align: left; |
| | | // vertical-align: top; |
| | | // } |
| | | // } |
| | | .select-tabs { |
| | | .card-item { |
| | | border-top: none!important; |
| | |
| | | margin-left: 2px; |
| | | } |
| | | } |
| | | .select-check.mk-control-icon { |
| | | .mk-extend-card { |
| | | >.circle-select { |
| | | margin-right: 35px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .menu-double-data-card-edit-box::-webkit-scrollbar { |
| | |
| | | {value: 'check square', label: '勾选(方框)'} |
| | | ] |
| | | }, |
| | | // { |
| | | // type: 'radio', |
| | | // field: 'cardFloat', |
| | | // label: '对齐方式', |
| | | // initval: wrap.cardFloat || 'left', |
| | | // tooltip: '设置卡片的对齐方式。', |
| | | // required: false, |
| | | // options: [ |
| | | // {value: 'left', label: '左对齐'}, |
| | | // {value: 'center', label: '居中'}, |
| | | // {value: 'right', label: '右对齐'}, |
| | | // ], |
| | | // }, |
| | | { |
| | | type: 'radio', |
| | | field: 'parity', |
| | |
| | | display: none; |
| | | } |
| | | >.anticon-plus-square { |
| | | margin: auto 5px; |
| | | margin: auto; |
| | | width: 30px; |
| | | font-size: 18px; |
| | | } |
| | | } |
| | |
| | | {value: 'collapse', label: '合并'}, |
| | | ], |
| | | controlFields: [ |
| | | {field: 'position', values: ['default']}, |
| | | // {field: 'position', values: ['default']}, |
| | | {field: 'controlIcon', values: ['unfold', 'collapse']}, |
| | | ], |
| | | forbid: type !== 'main' |
| | |
| | | |
| | | if (newcard.OpenType === 'excelIn') { |
| | | newcard.label = item.text |
| | | newcard.class = item.class || 'dgreen' |
| | | newcard.class = 'dgreen' |
| | | newcard.Ot = 'notRequired' |
| | | } else if (newcard.OpenType === 'excelOut') { |
| | | newcard.label = item.text |
| | |
| | | const { config, mainSearch } = this.props |
| | | const { activeKey, setting, columns, subColumns, scripts } = this.state |
| | | |
| | | if (config.subtype === 'dualdatacard') { |
| | | let arr = columns.map(col => col.field.toLowerCase()) |
| | | let _arr = [] |
| | | subColumns.forEach(col => { |
| | | if (arr.includes(col.field.toLowerCase())) { |
| | | _arr.push(col.field) |
| | | } |
| | | }) |
| | | |
| | | if (_arr.length > 0) { |
| | | notification.warning({ |
| | | top: 92, |
| | | message: '子表中字段' + _arr.join('、') + '与主表字段重复!', |
| | | duration: 5 |
| | | }) |
| | | return Promise.reject() |
| | | } |
| | | } |
| | | |
| | | return new Promise((resolve, reject) => { |
| | | if (activeKey === 'setting') { |
| | | this.settingForm.handleConfirm().then(res => { |
| | |
| | | initialValue: setting.subBID || '' |
| | | })( |
| | | <Select> |
| | | {columns.map((option, i) => |
| | | {this.props.subColumns.map((option, i) => |
| | | <Select.Option key={i} value={option.field}> |
| | | {option.label} |
| | | </Select.Option> |
| | |
| | | if (selectedData.length > 0) { |
| | | checkAll = selectedData.length < data.length ? ' half' : ' whole' |
| | | } |
| | | if (card.setting.controlIcon === 'left') { |
| | | checkAll += ' mk-extend-icon' |
| | | } |
| | | } else if (card.setting.display !== 'default' && card.setting.controlIcon === 'left') { |
| | | mainBox = 'flex-card ' |
| | | } |
| | | |
| | | return ( |
| | | <div className="custom-data-card-box" id={'anchor' + config.uuid} style={config.style}> |
| | | <div className="double-data-card-box" id={'anchor' + config.uuid} style={config.style}> |
| | | {loading ? |
| | | <div className="loading-mask"> |
| | | {data ? <div className="ant-spin-blur"></div> : null} |
| | |
| | | let className = 'card-item-wrap mk-card ' + mainBox |
| | | let subClass = 'mk-unfold' |
| | | let unfold = true |
| | | if (config.wrap.parity === 'true') { |
| | | if (index % 2 === 1) { |
| | | className += 'mk-parity-bg ' |
| | | } |
| | | } |
| | | |
| | | if (item.$disabled) { |
| | | className = 'mk-disabled ' + mainBox |
| | | } else if (activeKey === index) { |
| | |
| | | <div className={className} style={wrapStyle}> |
| | | <CardItem card={card} cards={config} data={item} onDoubleClick={() => this.onDoubleClick(index, subClass)} onClick={() => {this.changeCard(index, item, subClass)}}> |
| | | <span className="circle-select"></span> |
| | | {card.setting.display !== 'default' && card.setting.controlIcon === 'left' ? (!unfold ? <PlusSquareOutlined className={subClass} onClick={(e) => this.changeUnfold(e, index, subClass)}/> : <MinusSquareOutlined className={subClass} onClick={(e) => this.changeUnfold(e, index, subClass)}/>) : null} |
| | | {card.setting.display !== 'default' && card.setting.controlIcon !== 'left' ? <UpOutlined className={subClass} onClick={(e) => this.changeUnfold(e, index, subClass)}/> : null} |
| | | {card.setting.controlIcon === 'left' ? (!unfold ? <PlusSquareOutlined className={subClass} onClick={(e) => this.changeUnfold(e, index, subClass)}/> : <MinusSquareOutlined className={subClass} onClick={(e) => this.changeUnfold(e, index, subClass)}/>) : null} |
| | | {card.setting.controlIcon === 'right' ? <UpOutlined className={subClass} onClick={(e) => this.changeUnfold(e, index, subClass)}/> : null} |
| | | </CardItem> |
| | | <div className={'sub-card-wrap ' + subClass}> |
| | | <div className={'sub-card-wrap ' + subClass + (config.wrap.parity === 'true' ? ' mk-parity-bg' : '')}> |
| | | {item.children.map((cell, index) => <Col key={'sub' + index} span={subcard.setting.width || 24}> |
| | | <CardItem card={subcard} cards={subconfig} data={cell} /> |
| | | </Col>)} |
| | |
| | | .custom-data-card-box { |
| | | .double-data-card-box { |
| | | background: #ffffff; |
| | | background-position: center center; |
| | | background-repeat: no-repeat; |
| | |
| | | color: #bcbcbc!important; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .mk-parity-bg { |
| | | .card-item-box { |
| | | background-color: var(--mk-sys-color1); |
| | | } |
| | | } |
| | | } |
| | |
| | | transform: rotate(180deg); |
| | | } |
| | | >.anticon-plus-square { |
| | | margin: auto 5px; |
| | | margin: auto; |
| | | width: 30px; |
| | | font-size: 18px; |
| | | } |
| | | >.anticon-plus-square.mk-disabled { |
| | |
| | | cursor: not-allowed; |
| | | } |
| | | >.anticon-minus-square { |
| | | margin: auto 5px; |
| | | margin: auto; |
| | | width: 30px; |
| | | font-size: 18px; |
| | | } |
| | | } |
| | |
| | | } |
| | | } |
| | | } |
| | | .circle-select.mk-extend-icon { |
| | | margin-right: 35px; |
| | | } |
| | | |
| | | .sub-card-wrap.mk-parity-bg { |
| | | .ant-col:nth-child(even){ |
| | | .card-item-box { |
| | | background-color: var(--mk-sys-color1); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .custom-data-card-box::-webkit-scrollbar { |
| | | .double-data-card-box::-webkit-scrollbar { |
| | | width: 7px; |
| | | height: 7px; |
| | | } |
| | | .custom-data-card-box::-webkit-scrollbar-thumb { |
| | | .double-data-card-box::-webkit-scrollbar-thumb { |
| | | border-radius: 5px; |
| | | box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.13); |
| | | background: rgba(0, 0, 0, 0.13); |
| | | } |
| | | .custom-data-card-box::-webkit-scrollbar-track { |
| | | .double-data-card-box::-webkit-scrollbar-track { |
| | | box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.05); |
| | | border-radius: 3px; |
| | | border: 1px solid rgba(0, 0, 0, 0.07); |
| | | background: rgba(0, 0, 0, 0); |
| | | } |
| | | .custom-card-box::after { |
| | | content: ' '; |
| | | display: block; |
| | | clear: both; |
| | | } |
| | |
| | | let LText = '' |
| | | let DateCount = '' |
| | | |
| | | if (setting.sub_field) { |
| | | arrFields = arrFields + ',' + setting.sub_field |
| | | } |
| | | |
| | | if (_dataresource && setting.laypage && orderBy && !id) { |
| | | LText = `/*system_query*/select top ${pageSize} ${arrFields} from (select ${arrFields} ,ROW_NUMBER() over(order by ${orderBy}) as rows from ${_dataresource} ${_search}) tmptable where rows > ${pageSize * (pageIndex - 1)} order by tmptable.rows ` |
| | | DateCount = `/*system_query*/select count(1) as total from ${_dataresource} ${_search}` |
| | | if (setting.sub_field) { |
| | | DateCount = `/*system_query*/select count(1) as total from (select distinct ${setting.primaryKey} from ${_dataresource} ${_search})a` |
| | | } else { |
| | | DateCount = `/*system_query*/select count(1) as total from ${_dataresource} ${_search}` |
| | | } |
| | | } else if (_dataresource && orderBy) { |
| | | LText = `/*system_query*/select ${arrFields} from (select ${arrFields} ,ROW_NUMBER() over(order by ${orderBy}) as rows from ${_dataresource} ${_search}) tmptable order by tmptable.rows ` |
| | | } else if (_dataresource) { |