weaver_trunk_cli/pc4mobx/portal4public/components/wea-license/WeaLicenseCluster.js

222 lines
8.1 KiB
JavaScript

import React from 'react';
import { Button } from 'antd';
import { WeaTools, WeaLocaleProvider, WeaDialog, WeaSearchGroup, WeaFormItem, WeaTab } from 'ecCom';
import { toJS } from 'mobx';
import { WeaForm, WeaTableNew, WeaSwitch } from 'comsMobx';
const { TableStore } = WeaTableNew;
const WeaTable = WeaTableNew.WeaTable;
const getLabel = WeaLocaleProvider.getLabel;
let tableStore = new TableStore();
const searchForm = new WeaForm();
// import './style/';
import WeaLicenseSubmitCluster from '../wea-license-submit/';
import WeaNonStandard from '../wea-non-standard/';
class WeaLicenseCluster extends React.Component {
state = { loading: false, nsusecnt: 0, data: {}, showSearchAd: false };
constructor(props) {
super(props);
this.getButtons = this.getButtons.bind(this);
this.onCancel = this.onCancel.bind(this);
// this.onShow = this.onShow.bind(this);
this.searchForm = new WeaForm();
this.getCondition();
this.searchForm.setCondition(this.condition);
this.getTable(false);
}
componentWillReceiveProps(nextProps) {
const { visible } = nextProps;
if (visible) {
this.getTable(false);
}
}
render() {
const { visible, style = {} } = this.props;
const { loading, showSearchAd } = this.state;
return (
<React.Fragment ecId={`${this && this.props && this.props.ecId || ''}_React.Fragment@8rawx8`}>
<WeaNonStandard ecId={`${this && this.props && this.props.ecId || ''}_WeaNonStandard@kigbtu`} ref="WeaNonStandard" />
<WeaLicenseSubmitCluster ecId={`${this && this.props && this.props.ecId || ''}_WeaLicenseSubmitCluster@i4n24d`} ref="WeaLicenseSubmitCluster" />
<WeaDialog ecId={`${this && this.props && this.props.ecId || ''}_WeaDialog@h3d2kz`}
visible={visible}
loading={loading}
title={getLabel(18014, '授权信息')}
icon="icon-portal-license"
iconBgcolor="#a7adb5"
style={{ width: style.width || 1000, height: style.height || 563 }}
zIndex={100}
hasScroll={false}
buttons={this.getButtons()}
onCancel={this.onCancel}
>
<WeaTab ecId={`${this && this.props && this.props.ecId || ''}_WeaTab@9pmalo`}
datas={[]}
keyParam="viewcondition" // 主键
countParam="groupid" // 数量
searchType="{['base','advanced']}"
searchsBaseValue={searchForm.getFormParams().ip}
advanceHeight={160}
searchsAd={this.getAdvancedSearch(searchForm, toJS(this.state.advancedSearchConditionInfo), false, 2)}
showSearchAd={showSearchAd}
buttonsAd={this.getTabButtonsAd()}
setShowSearchAd={bool =>
this.setPanelStatus(bool)
}
hideSearchAd={() =>
this.setPanelStatus(false)
}
onSearch={() => this.getTable(true)}
onSearchChange={(value) => {
searchForm.updateFields({ ip: value });
}}
/>
<WeaTable ecId={`${this && this.props && this.props.ecId || ''}_WeaTable@vxugqs`}
comsWeaTableStore={tableStore}
hasOrder={true}
needScroll={true}
uniqueId={true}
onOperatesClick={this.onOperatesClick}
getColumns={this.getColumns}
/>
</WeaDialog>
</React.Fragment>
);
}
getButtons() {
const { data } = this.state;
let buttons = [];
if (data.canEdit) {
buttons.push(<Button ecId={`${this && this.props && this.props.ecId || ''}_Button@t875w5`} type="primary" onClick={() => this.refs.WeaLicenseSubmit.onShow()}>{getLabel(18640, '提交license')}</Button>);
}
return buttons;
}
// onCancel() {
// this.setState({ visible: false });
// }
// onShow() {
// this.setState({ visible: true, loading: true });
// WeaTools.callApi('/api/system/license/licenseInfo', 'POST', {}).then(data => {
// this.setState({ loading: false, data: data });
// });
// WeaTools.callApi('/api/portal/unStandardFuncInfo/count', 'POST', {}).then(data => {
// this.setState({ nsusecnt: data.onCount });
// });
// }
onCancel = () => {
this.props.onHide();
searchForm.resetForm();
};
getTabButtonsAd() {
const btn = [
(<Button ecId={`${this && this.props && this.props.ecId || ''}_Button@l5rkn4`} type="primary"
onClick={() => {
this.getTable(true);
this.setPanelStatus(false);
}}
>{getLabel(197, '搜索')}</Button>),
(<Button ecId={`${this && this.props && this.props.ecId || ''}_Button@mx57u1`} onClick={() => { searchForm.resetForm(); }}>{getLabel(2022, '重置')}</Button>),
(<Button ecId={`${this && this.props && this.props.ecId || ''}_Button@5jysiu`} onClick={() => this.setPanelStatus(false)}>{getLabel(31129, '取消')}</Button>),
];
return btn;
}
getCondition() {
WeaTools.callApi('/api/system/license/searchCondition', 'GET', {}).then((res) => {
this.setState({ advancedSearchConditionInfo: res.conditions });
searchForm.initFormFields(res.conditions);
});
}
setPanelStatus(bool) {
this.setState({ showSearchAd: bool });
}
getTable(params) {
WeaTools.callApi('/api/system/license/listLicense', 'POST', searchForm.getFormParams()).then((res) => {
// this.setState({
// noright: res.noright
// });
if (res.sessionkey) {
if (params) {
tableStore.getDatas(res.sessionkey, 1);
} else {
tableStore.getDatas(res.sessionkey);
}
}
});
}
getAdvancedSearch = (form, datas, needTigger = true, col = 1, labelCol, fieldcol) => {
const { isFormInit } = form;
let group = [];
const formParams = form.getFormParams();
isFormInit && datas && datas.map((c) => {
let items = [];
c.items.map((fields) => {
items.push({
com: (<WeaFormItem ecId={`${this && this.props && this.props.ecId || ''}_WeaFormItem@zkowx6`}
label={`${fields.label}`}
labelCol={{ span: labelCol || `${fields.labelcol}` }}
viewAttr={fields.viewAttr}
wrapperCol={{ span: fieldcol || `${fields.fieldcol}` }}
>
<WeaSwitch ecId={`${this && this.props && this.props.ecId || ''}_WeaSwitch@b6cd0t`} fieldConfig={fields} form={form} formParams={formParams} />
</WeaFormItem>),
colSpan: 1,
});
});
if (needTigger) {
group.push(<WeaSearchGroup ecId={`${this && this.props && this.props.ecId || ''}_WeaSearchGroup@zanio3`} col={col} needTigger={needTigger} title={c.title} showGroup={c.defaultshow} items={items} />);
} else {
group.push(<WeaSearchGroup ecId={`${this && this.props && this.props.ecId || ''}_WeaSearchGroup@50b79d`} col={col} needTigger={needTigger} showGroup={c.defaultshow} items={items} />);
}
});
return group;
}
getColumns = (columns) => {
let cols = columns ? columns.map((col) => {
if (col.dataIndex == 'id') {
col.render = (text, record) => (
<a href="javascript:;" className="child-item" onClick={() => this.refs.WeaLicenseSubmitCluster.onShow({ addr: record.id })}>
{record.id}
</a>);
}
if (col.dataIndex == 'addr') {
col.render = (text, record) => (
<a href="javascript:;" className="child-item" onClick={() => this.refs.WeaLicenseSubmitCluster.onShow({ addr: record.id })}>
{record.addr}
</a>);
}
if (col.dataIndex == 'onCount') {
col.render = (text, record) => (record.isCurrentNode == 'true' ? (
<div className="wea-field-readonly">
<a style={{ color: 'blue' }} href="javascript:;" className="child-item" onClick={() => this.refs.WeaNonStandard.onShow()}>
{record.onCount}
</a>
</div>
) : (<div>{record.onCount}</div>));
}
return col;
}) : [];
return cols;
}
onOperatesClick = (record, index, operate) => {
if (operate.index == '0') {
this.refs.WeaLicenseSubmitCluster.onShow({ addr: record.id });
}
}
}
export default WeaLicenseCluster;