weaver_trunk_cli/pc4mobx/esearch/components/weesoSearchSet.js

1273 lines
51 KiB
JavaScript
Raw Normal View History

2024-05-15 16:50:21 +08:00
import React from "react";
import { WeaDialog, WeaTop, WeaSteps, WeaNewScroll, WeaSearchGroup, WeaFormItem, WeaButtonIcon,
WeaLocaleProvider, WeaRightMenu, WeaInput, WeaUpload, WeaHelpfulTip, WeaInputSearch } from "ecCom";
import { Button, Row, message, Modal, Icon, Tooltip } from 'antd';
import { inject, observer } from 'mobx-react';
import {WeaTableNew, WeaSwitch, WeaLogView} from 'comsMobx';
import { toJS } from 'mobx';
import NoRight from '../util/NoRight';
const {WeaTable} = WeaTableNew;
const Step = WeaSteps.Step;
const getLabel = WeaLocaleProvider.getLabel;
const WeaLogViewComp = WeaLogView.Component;
const store = [
'weesoSeachSetStore',
'weesoStore'
];
@inject(...store)
@observer
export default class WeesoSearchSet extends React.Component {
constructor(props) {
super(props);
this.state = {
weesoSearchPageSetHeight: 590,
};
this.customStepRef = React.createRef();
this.customStepTopRef = React.createRef();
this.weesoSearchPageSetRef = React.createRef();
}
componentDidMount() {
const { getSeachTable, getSeachCustomTable, doSaveSearchTag,
doSaveHistorySearch, page_uuid
} = this.props.weesoSeachSetStore;
getSeachTable();
getSeachCustomTable();
}
componentDidUpdate() {
if(this.weesoSearchPageSetRef && this.weesoSearchPageSetRef.current && this.weesoSearchPageSetRef.current.state) {
if(this.weesoSearchPageSetRef.current.state.height !== this.state.weesoSearchPageSetHeight) {
this.setState({ weesoSearchPageSetHeight: this.weesoSearchPageSetRef.current.state.height });
}
}
}
openView = (page_uuid) => {
if(page_uuid) {
const { addSubdomainUrl } = this.props.weesoStore;
window.open(`${addSubdomainUrl('/spa/esearch/static/index.html#/main/esearch/weeso?page_uuid=')}${page_uuid}`);
}
}
onOperatesClick = (record,index,operate,flag, type) => {
const { setState, getCusPageSetDtl, doSaveCusPageSetDtl, getCusPageSetList, delCusPageSet, getSearchTagDtl,
search_type, delSearchTag, showAndHideSearchTag, getCustompageBaseDatas, recordParams
} = this.props.weesoSeachSetStore;
if(type === 'searchSet') { // 搜索页面
setState({ recordParams: record, commonPageType: '' });
if(operate.index === '0') { // {getLabel('221','预览') }
this.openView(record.page_uuid);
} else if(operate.index === '1') { // 编辑
setState({ customizationDialogVisible: true, recordId: record.randomFieldId, currentStep: 0, commonPageType: 'edit' }, () => {
getCusPageSetDtl({
id: record.randomFieldId,
type: '1',
page_uuid: record.page_uuid
});
});
} else if(operate.index === '2') { // 另存为
doSaveCusPageSetDtl({
fromSaveAsNew: '1',
id: record.randomFieldId,
}, (ret) => {
setState({ customizationDialogVisible: true, recordId: ret.newId, currentStep: 0, commonPageType: 'saveas', recordParams: { randomFieldId: ret.newId, page_uuid: ret.newPage_uuid } });
getCusPageSetDtl({
id: ret.newId,
type: '1',
page_uuid: ret.newPage_uuid
});
getCusPageSetList();
});
} else if(operate.index === '3') { // 删除
this.delCusPageSet(record.randomFieldId);
} else if(operate.index === '4') { // 日志
setState({ logvisible: true });
}
} else if(type === 'searchCustom') { // 常用条件设置
setState({ commonConditionParams: record });
if(operate.index === '0') { // 编辑
let p = {
id: record.randomFieldId
}
if(!(this.props.page === 'maintenanceKey' && this.props.lvisible === true)) {
p = {
...p,
page_uuid: recordParams.page_uuid || ''
}
}
getSearchTagDtl(p, () => {
if(this.props.page === 'maintenanceKey' && this.props.lvisible === true) {
setState({ maintenanceKeyAddCommonVisible: true, addRecordId: record.randomFieldId });
} else {
setState({ addCommonVisible: true, addRecordId: record.randomFieldId });
}
getCustompageBaseDatas({
cuspage_type: '3'
});
});
} else if(operate.index === '1') { // 隐藏
showAndHideSearchTag({ id: record.randomFieldId , enable: 0 }, () => {
this.getCommonConditionSetTable();
getCustompageBaseDatas({
cuspage_type: '3'
});
});
} else if(operate.index === '2') { // 取消隐藏
showAndHideSearchTag({ id: record.randomFieldId , enable: 1 }, () => {
this.getCommonConditionSetTable();
getCustompageBaseDatas({
cuspage_type: '3'
});
});
} else if(operate.index === '3') { // 删除
this.deleteRecords(getLabel(127574, '确定删除吗?'), () => {
let p = {
id: record.randomFieldId,
};
if(this.props.page === 'maintenanceKey' && this.props.lvisible === true) {
} else {
p = {
...p,
page_uuid: recordParams.page_uuid,
fromSystem: 1,
};
}
delSearchTag(p, () => {
this.getCommonConditionSetTable();
getCustompageBaseDatas({
cuspage_type: '3'
});
});
},);
}
}
}
onTopBtnClick = (type) => {
const { setState, customizationDialogVisible, getCusPageSetDtl, searchTableStore } = this.props.weesoSeachSetStore;
if(type === 'add') {
setState({ customizationDialogVisible: true, recordId: '', currentStep: 0, commonPageType: 'create', pageCusCurrentId: '' }, () => {
getCusPageSetDtl({ type: '1' });
});
} else if(type === 'del') {
this.delCusPageSet(toJS(searchTableStore.selectedRowKeys));
}
}
delCusPageSet = (ids) => {
const { getCusPageSetList, delCusPageSet } = this.props.weesoSeachSetStore;
this.deleteRecords(getLabel(127574, '确定删除吗?'), () => {
delCusPageSet({ id: ids }, () => {
getCusPageSetList();
});
},);
}
copyUrl = (url) => {
let mark = document.createElement('input');
mark.value = url;
document.body.appendChild(mark);
mark.select();
let successful = document.execCommand('Copy');
if(successful) {
message.success(getLabel('125245','复制成功'));
mark && document.body.removeChild(mark);
}
}
onFormItemChange = (formObj) => {
let _this = this;
const { setState } = this.props.weesoSeachSetStore;
setState({ searchTagParams: {} });
if(formObj.tagName) {
if(window.esearch_debounce) clearTimeout(window.esearch_debounce);
window.esearch_debounce = setTimeout(() => {// 防抖
const { addCommonForm } = _this.props.weesoSeachSetStore;
const formParams = addCommonForm.getFormParams();
if(formParams.tagTitle === '' && formParams.tagName !== '') {
addCommonForm.updateFields({ tagTitle: formParams.tagName });
}
}, 500);
}
}
imgVisible = (domkey, type, imgValue) => {
let uploadBool = false;
if(domkey === 'page_resultLogo') {
if(type === 'create' || type === 'create-edit') {
if(imgValue === undefined || imgValue === '') {
uploadBool = true;
}
} else {
if(imgValue === undefined || imgValue === '') {
uploadBool = true;
}
}
}
if(domkey === 'page_icon') {
if(type === 'create' || type === 'create-edit') {
if(imgValue === undefined || imgValue === '') {
if(type === 'create') {
uploadBool = false;
} else {
uploadBool = true;
}
}
} else {
if(imgValue === undefined || imgValue === '') {
uploadBool = true;
}
}
}
return uploadBool;
}
imgV = (domkey, type, imgValue) => {
let bool = true;
if(domkey === 'page_icon') {
if(imgValue === undefined || imgValue === '') {
bool = false;
} else if(imgValue === 'CLASSNAME:icon-coms-ws') {
bool = false;
}
}
return bool;
}
resetDefaultIcon = () => {
let { commonPageType,setState } = this.props.weesoSeachSetStore;
setState({ commonPageType: 'create' });
}
getSearchs(form, conditioninfo, type) {
let { currentStep, commonPageType, hasPageIcon, hasPageResultLogo, setState, page_icon_dir, recordParams } = this.props.weesoSeachSetStore;
if(form === undefined || conditioninfo === undefined) return
const { isFormInit } = form;
const formParams = form.getFormParams();
let group = [];
let isstep2 = Number(currentStep) === 2;
isFormInit &&
toJS(conditioninfo).map((c, _index) => {
let items = [];
c.items.map(field => {
let col = 1;
if(type === 'viewUrl') {
items.push({
com: (
<WeaFormItem ecId={`${this && this.props && this.props.ecId || ''}_WeaFormItem@k2i1qo@${field.domkey[0]}`}
className={field.domkey ? field.domkey[0] : ''}
label={`${field.label}`}
labelCol={{ span: `${field.labelcol}` }}
ratio1to2
error={form.getError(field)}
tipPosition="bottom"
wrapperCol={{ span: `${field.fieldcol}` }}
>
<WeaInput ecId={`${this && this.props && this.props.ecId || ''}_WeaInput@es0cqz@${field.domkey[0]}`} className="esearch-view-url-input" viewAttr={field.viewAttr} value={field.value} hasBorder />
<span className="esearch-view-url-icon" onClick={() => {
this.copyUrl(field.value);
}} >
<i className="icon-coms-copy"/>
</span>
</WeaFormItem>
),
col: col,
hide: form.isHide(field, (keys, allParams) => {
return false;
})
});
} else {
let pointPerson = false;
if(field.domkey && field.domkey[0] === 'CREATERID_select' && formParams.CREATERID_select === '2') { // 创建人--指定人员
field.selectLinkageDatas && field.selectLinkageDatas[2] && (field.selectLinkageDatas[2].viewAttr = 3);
(formParams.CREATERID === '' || formParams.CREATERID === undefined) && (pointPerson = true);
}
if(type !== 'add-common-conditions') {
if(field.domkey && (field.domkey[0] === 'WORKFLOWID' || field.domkey[0] === 'firstDirectory')) { // 流程-路径, 文档-目录必填
field.viewAttr = 3;
}
if(field.domkey && field.domkey[0] === 'CREATEDATE_date_select' && formParams.CREATEDATE_date_select === '5') { // 创建时间--自定义
field.selectLinkageDatas && field.selectLinkageDatas[5] && (field.selectLinkageDatas[5].viewAttr = 3);
}
}
if(type === 'add-common-conditions') {
if(field.domkey && field.domkey[0] === 'CREATEDATE_date_select' && formParams.CREATEDATE_date_select === '5') { // 创建时间--自定义
field.selectLinkageDatas && field.selectLinkageDatas[5] && (field.selectLinkageDatas[5].viewAttr = 3);
}
}
const deleteIcon = (
<Icon ecId={`${this && this.props && this.props.ecId || ''}_Icon@4ybvf8@deleteImg`} type="cross-circle-o" title={getLabel(16075, '删除图片')} domkey={field.domkey[0]} onClick={(e, ) => {
if(commonPageType === 'create') {
setState({ commonPageType: 'create-edit' });
if(e && e.target.getAttribute('domkey') === 'page_icon') {
form.updateFields({ page_icon: { value: '' } });
}
if(e && e.target.getAttribute('domkey') === 'page_resultLogo') {
form.updateFields({ page_resultLogo: { value: '' } });
}
} else {
if(e && e.target.getAttribute('domkey') === 'page_icon') {
setState({ hasPageIcon: false });
form.updateFields({ page_icon: { value: '' } });
}
if(e && e.target.getAttribute('domkey') === 'page_resultLogo') {
setState({ hasPageResultLogo: false });
form.updateFields({ page_resultLogo: { value: '' } });
}
}
}} />
);
items.push({
com: (
<WeaFormItem ecId={`${this && this.props && this.props.ecId || ''}_WeaFormItem@beij2y@${field.domkey[0]}`}
label={`${field.label}`}
labelCol={{ span: isstep2 ? 12 : `${field.labelcol}` }}
ratio1to2={!isstep2}
error={form.getError(field)}
tipPosition="bottom"
wrapperCol={{ span: isstep2 ? 12 : `${field.fieldcol}` }}
className={ field.domkey[0] === 'CREATERID_select' && pointPerson ? 'point-person':'' }
>
{
(field.domkey[0] === 'page_icon' || field.domkey[0] === 'page_resultLogo') ?
<div className='upload-img-area'>
{
this.imgVisible(field.domkey[0], commonPageType, formParams[field.domkey[0]]) ?
<WeaUpload ecId={`${this && this.props && this.props.ecId || ''}_WeaUpload@4hgehn@${field.domkey[0]}`}
btnSize="small"
uploadUrl={field.uploadUrl}
category="string"
viewAttr={field.domkey[0] === 'page_resultLogo' ? 3: field.viewAttr}
isDetail={true}
editable={true}
showUploader={true}
showUploadTime={true}
uploadParams={{ test: 1 }}
clearWhenReset={false}
showClearAll={false}
showScan={true}
limitType="gif,bmp,png,jpg"
onChange={(ids, list) => {
form.updateFields({ [field.domkey[0]]: { value: ids[0] } });
}}
/>
:
<div className='img-area'>
{ ((commonPageType === 'create' && field.domkey[0] === 'page_icon' && formParams.page_icon === '') || (field.domkey[0] === 'page_icon'&& formParams.page_icon === 'CLASSNAME:icon-coms-ws') ) && <span>
<i className='icon-coms-ws' />
{ deleteIcon }
</span>
}
{ !this.imgVisible(field.domkey[0], commonPageType, formParams[field.domkey[0]]) && this.imgV(field.domkey[0], commonPageType, formParams[field.domkey[0]]) && <span>
<img width={36} height={36} src={`${page_icon_dir}${formParams[field.domkey[0]]}`} />
{ deleteIcon }
</span>
}
</div>
}
{field.domkey[0] === 'page_icon' && <div className='img-area-desc'>{getLabel('524263','建议上传图片大小为36px*36px') }</div> }
{field.domkey[0] === 'page_resultLogo' && <div className='img-area-desc'>{getLabel('524264','建议上传图片大小为70px*40px')}</div> }
{recordParams.page_uuid === "FULLSEARCH" && field.domkey[0] === 'page_icon' && commonPageType !== 'create' && formParams.page_icon === '' && <div className='img-refresh'>
<Tooltip ecId={`${this && this.props && this.props.ecId || ''}_Tooltip@niz9v2@tooltip`} title={getLabel('524372','恢复成默认图片')} onClick={this.resetDefaultIcon}>
<i className="icon-coms-Refresh" />
</Tooltip>
</div> }
</div>
:
<WeaSwitch ecId={`${this && this.props && this.props.ecId || ''}_WeaSwitch@gy1vru@${field.domkey[0]}`} fieldConfig={field} form={form} onChange={this.onFormItemChange}/>
}
{
field.domkey[0] === 'page_descStr' && <WeaHelpfulTip ecId={`${this && this.props && this.props.ecId || ''}_WeaHelpfulTip@dfji91@${field.domkey[0]}`}
className='img-page-descStr-tip'
width={230}
title={<div className='img-page_descStr'>
<span>{getLabel('524265','描述的位置说明') }</span>
<img width={219} height={94} src={require('../util/img/page_descStr.png')} />
</div>}
placement="bottomLeft"
/>
}
</WeaFormItem>
),
col: col,
hide: form.isHide(field, (keys, allParams) => {
let bool = true;
if(type === 'setpage') {
if(currentStep === 0) {
if(keys[0] === 'doc_sourceType') {// 文档来源
bool = false;
formParams['search_type'] === "DOC" && (bool = true);
}
if(keys[0] === 'firstDirectory') {// 目录
bool = false;
formParams['search_type'] === "DOC" && (bool = true);
formParams['doc_sourceType'] == '1' && (bool = false);
}
if(keys[0] === 'wf_sourceType') {// 流程来源
bool = false;
formParams['search_type'] === "WF" && (bool = true);
}
if(keys[0] === 'WORKFLOWID') {// 路径
bool = false;
formParams['search_type'] === "WF" && (bool = true);
formParams['wf_sourceType'] == '1' && (bool = false);
}
if(keys[0] === 'page_descStr') {// 描述
bool = true;
formParams['search_type'] === "ALL" && (bool = false);
}
}
if(currentStep === 2) {
keys[0] === "page_resultLogo" && formParams['page_resultShowLogo'] === "0" && (bool = false);
}
}
return !bool;
})
});
}
});
group.push(
<WeaSearchGroup ecId={`${this && this.props && this.props.ecId || ''}_WeaSearchGroup@zm9hah@${_index}`}
className="esearch-group"
needTigger={false}
title={c.title}
showGroup={c.defaultshow}
items={items}
/>
);
});
if(type === 'viewUrl') {
group = <div className="weeso-search-add-common">{ group }</div>
}
return group;
}
stepOne = (callback) => {// 页面基本设置
const { stepForm, doSaveCusPageSetDtl, setState, recordParams, currentStep, recordId } = this.props.weesoSeachSetStore;
let formParams = stepForm.getFormParams();
let current = parseInt(currentStep, 10);
stepForm.validateForm().then(f => {
if (f.isValid) {
if((formParams.search_type === "WF" && formParams.wf_sourceType !== '1' && formParams.WORKFLOWID === '' )
|| (formParams.search_type === "DOC" && formParams.doc_sourceType !== '1' && formParams.firstDirectory === '' )
) {
message.error(getLabel('524259','必填项未填写!') );
} else {
doSaveCusPageSetDtl({
type: 1,
id: recordId,
page_uuid: recordParams.page_uuid,
...formParams
}, (ret) => {
setState({ recordParams: ret });
typeof callback === 'function' && callback(ret);
});
}
} else {
f.showErrors();
}
});
}
stepThree = (callback) => {// 搜索结果页设置
const { currentStep, setState, getCusPageSetDtl, recordId, stepForm,
doSaveCusPageSetDtl, recordParams
} = this.props.weesoSeachSetStore;
const formParams = stepForm.getFormParams();
if(formParams.page_resultShowLogo == '1' && formParams.page_resultLogo === '') {
message.error(getLabel('524259','必填项未填写!') );
} else {
stepForm.validateForm().then(f => {
if (f.isValid) {
doSaveCusPageSetDtl({
type: 3,
id: recordId,
page_uuid: recordParams.page_uuid,
...formParams
}, (ret) => {
if(ret && ret.status === 'success') {
typeof callback === 'function' && callback(ret);
}
});
} else {
f.showErrors();
}
});
}
}
onStepClick = (type, btntype, callback) => {
const { currentStep, setState, stepContents, getCusPageSetDtl, recordId, stepForm,
doSaveCusPageSetDtl, getCusPageSetList, recordParams, hasPageIcon, commonPageType
} = this.props.weesoSeachSetStore;
let current = parseInt(currentStep, 10);
if(type === 'next-step' && currentStep < stepContents.length || btntype === 'viewBtn') {
if(current === 0) { // 页面基本设置
let formParams = stepForm.getFormParams();
if(commonPageType === 'create') {//新建且没有点击过删除默认图片
formParams = {
...formParams,
page_icon: "CLASSNAME:icon-coms-ws",
};
}
stepForm.validateForm().then(f => {
if (f.isValid) {
if((formParams.search_type === "WF" && formParams.wf_sourceType !== '1' && formParams.WORKFLOWID === '' )
|| (formParams.search_type === "DOC" && formParams.doc_sourceType !== '1' && formParams.firstDirectory === '' )
) {
message.error(getLabel('524259','必填项未填写!') );
} else {
doSaveCusPageSetDtl({
type: 1,
id: recordId,
page_uuid: recordParams.page_uuid,
...formParams
}, (ret) => {
if(btntype === 'viewBtn') {// 新建{getLabel('221','预览') }
typeof callback === 'function' && callback(recordParams.page_uuid);
} else {
setState({ currentStep: current + 1, recordParams: ret});
this.getCommonConditionSetTable(ret);
}
});
}
} else {
f.showErrors();
}
});
} else if(current === 1) {
getCusPageSetDtl({ id: recordId,type: current + 2, page_uuid: recordParams.page_uuid }, (ret) => {
if(btntype === 'viewBtn') {
typeof callback === 'function' && callback(recordParams.page_uuid);
}else {
setState({ currentStep: current + 1});
}
});
} else if(current === 2) {// 搜索结果设置
const formParams = stepForm.getFormParams();
if(formParams.page_resultShowLogo == '1' && formParams.page_resultLogo === '') {
message.error(getLabel('524259','必填项未填写!') );
} else {
stepForm.validateForm().then(f => {
if (f.isValid) {
doSaveCusPageSetDtl({
type: 3,
id: recordId,
page_uuid: recordParams.page_uuid,
...formParams
}, (ret) => {
if(btntype === 'viewBtn') {
typeof callback === 'function' && callback(recordParams.page_uuid);
}else {
setState({ currentStep: current + 1});
getCusPageSetDtl({ id: recordId,type: current + 2, page_uuid: ret.page_uuid });
}
});
} else {
f.showErrors();
}
});
}
} else if(current === 3) {
if(btntype === 'viewBtn') {
typeof callback === 'function' && callback(recordParams.page_uuid);
}
}
} else if((type === 'pre-step' || type === 'click-step-pre')&& currentStep > 0) {
if(current === 2 && (type !== 'click-step-pre')) {
this.stepThree(() => {
setState({ currentStep: current - 1});
getCusPageSetDtl({ id: recordId,type: current, page_uuid: recordParams.page_uuid });
});
} else {
setState({ currentStep: current - 1});
getCusPageSetDtl({ id: recordId,type: current, page_uuid: recordParams.page_uuid });
}
this.getCommonConditionSetTable(recordParams);
}
}
preStep = (type) => {
if(type === 'click-step-pre') {
this.onStepClick('click-step-pre');
} else {
this.onStepClick('pre-step');
}
}
nextStep = () => {
this.onStepClick('next-step');
}
viewBtn = () => {
this.onStepClick('pre-step', 'viewBtn',this.openView);
}
getCommonConditionSetTable = (params) => {
const { getSearchTagList, recordId, addRecordId } = this.props.weesoSeachSetStore;
if(this.props.page === 'maintenanceKey' && this.props.lvisible === true) {
getSearchTagList();
} else {
let p = {
infoSetId: recordId,
fromSystem: 1
};
if(params && params.page_uuid) {
p = {
...p,
page_uuid: params.page_uuid
}
}
getSearchTagList(p);
}
}
stepComplete = () => {
const { setState, getCusPageSetList } = this.props.weesoSeachSetStore;
setState({ customizationDialogVisible: false });
getCusPageSetList();
}
getCumtonDialogBtns = () => {
const { currentStep, stepContents } = this.props.weesoSeachSetStore;
let btns = [];
let nextStep = false, preStep = false;
if(currentStep > 0) {
btns.push(
<Button ecId={`${this && this.props && this.props.ecId || ''}_Button@gmysai@preStep`} type="primary" disabled={preStep} key={'pre'} className="topbtn" onClick={this.preStep}>
{getLabel('1876','上一步') }
</Button>,
);
}
if(currentStep < stepContents.length - 1) {
btns.push(
<Button ecId={`${this && this.props && this.props.ecId || ''}_Button@4yo93q@nextStep`} type="primary" disabled={nextStep} key={'next'} className="topbtn" onClick={this.nextStep}>
{getLabel('1402','下一步') }
</Button>,
);
}
if(currentStep === stepContents.length - 1) {
btns.push(
<Button ecId={`${this && this.props && this.props.ecId || ''}_Button@ge5nh4@view`} type="primary" className="topbtn" key={'view'} onClick={this.viewBtn}>
{getLabel('221','预览') }
</Button>,
);
btns.push(
<Button ecId={`${this && this.props && this.props.ecId || ''}_Button@086b0m@complete`} type="primary" className="topbtn" key={'complete'} onClick={this.stepComplete}>
{getLabel('555','完成') }
</Button>,
);
}
return btns;
}
getSearchDialogBtns = () => {
let btns = [];
btns.push(
<Button ecId={`${this && this.props && this.props.ecId || ''}_Button@1atsqv@searchsetSave`} type="primary" className="topbtn" key={'searchset-save'} onClick={() => {}}>
{getLabel('555','完成') }
</Button>,
);
return btns;
}
getRightMenu(btns) {
let btnArr = [];
Array.isArray(btns) && btns.forEach(res => {
let icon = <i className="icon-coms02-preview" />;
if(res.key === 'pre') {
icon = <i className="icon-coms-Last-step" />;
} else if(res.key === 'next') {
icon = <i className="icon-coms-Next-step" />;
} else if(res.key === 'searchset-save') {
icon = <i className="icon-coms-Preservation" />;
} else if(res.key === "complete") {
icon = <i className="icon-coms-complete" />;
} else if(res.key.indexOf('save') > -1) {
icon = <i className="icon-coms-Preservation" />;
}
btnArr.push({
key: res.key,
icon: icon,
content : res.props ? res.props.children : '',
onClick : res.props ? res.props.onClick : null
});
});
return btnArr;
}
filterParams = () => {
let { browserKeyArr, addCommonForm } = this.props.weesoSeachSetStore;
const formParams = addCommonForm.getFormParams();
let search_json = { ...formParams };
delete search_json.showorder;
delete search_json.tagName;
delete search_json.tagTitle;
browserKeyArr = toJS(browserKeyArr);
Object.keys(search_json).forEach(key => {
if(browserKeyArr.some(v => v === key)) {
if(search_json[key] !== '') {
search_json[key] = search_json[key].split(',');
} else {
delete search_json[key];
}
}
});
return search_json;
}
addCommonSaveBtn = () => {
const { addCommonForm, doSaveSearchTag, commonConditionParams, addRecordId, recordId,
recordParams, getCustompageBaseDatas, editCommonConditionRetdatas
} = this.props.weesoSeachSetStore;
let { browserKeyArr } = this.props.weesoSeachSetStore;
addCommonForm.validateForm().then(f => {
if (f.isValid) {
const formParams = addCommonForm.getFormParams();
let bool = false;
if(formParams.CREATEDATE_date_select === '5' &&(formParams.CREATEDATE_range_picker_end === '' || formParams.CREATEDATE_range_picker_end === undefined)) {
bool = true;
}
if(formParams.CREATERID_select === '2' &&(formParams.CREATERID === '' || formParams.CREATERID === undefined)) {
bool = true;
}
if(bool) {
message.error(getLabel('524259','必填项未填写!') );
return;
}
let search_json = { ...formParams };
delete search_json.showorder;
delete search_json.tagName;
delete search_json.tagTitle;
browserKeyArr = toJS(browserKeyArr);
Object.keys(search_json).forEach(key => {
if(browserKeyArr.some(v => v === key)) {
if(search_json[key] !== '') {
search_json[key] = search_json[key].split(',');
} else {
delete search_json[key];
}
}
});
let p = {
...formParams,
id: commonConditionParams.randomFieldId,
search_json: JSON.stringify(search_json)
};
if(!(this.props.page === 'maintenanceKey' && this.props.lvisible === true)) {
if(recordParams.page_uuid) {
p = {
...p,
fromSystem: 1,
page_uuid: recordParams.page_uuid
};
} else {
p = {
...p,
fromSystem: 1,
};
}
}
if(editCommonConditionRetdatas.search_type) {
p = {
...p,
search_type: editCommonConditionRetdatas.search_type
};
}
doSaveSearchTag({ ...p }, (ret) => {
this.addCommononCancel();
this.getCommonConditionSetTable(ret);
getCustompageBaseDatas({
cuspage_type: '3'
});
});
} else {
f.showErrors();
}
})
}
addCommonBtns = () => {
let btns = [];
btns.push(
<Button ecId={`${this && this.props && this.props.ecId || ''}_Button@7pe4x6@save`} type="primary" key={'save'} onClick={this.addCommonSaveBtn}>
{getLabel('30986','保存') }
</Button>,
);
return btns;
}
addCommononCancel = () => {
const { setState } = this.props.weesoSeachSetStore;
setState({ addCommonVisible: false, maintenanceKeyAddCommonVisible: false });
}
getAddCommonConditions = () => {
const dialogW = 600, dialogH = 350;
const { collectParams, addCommonVisible, maintenanceKeyAddCommonVisible, setState, addCommonForm, addCommonConditions } = this.props.weesoSeachSetStore;
let dialogVisible = addCommonVisible;
if(this.props.page === "maintenanceKey") {
dialogVisible = maintenanceKeyAddCommonVisible;
}
return(<WeaDialog ecId={`${this && this.props && this.props.ecId || ''}_WeaDialog@800rm4`}
className="weeso-search-add-common"
visible={dialogVisible}
title={getLabel('524266','添加常用条件') }
icon={'icon-coms-ws'}
iconBgcolor='#A0B0BA'
style={{ width: dialogW, height: dialogH }}
buttons={this.addCommonBtns()}
onCancel={this.addCommononCancel}
moreBtn={{
datas : this.getRightMenu(this.addCommonBtns()),
collectParams : collectParams
}}
>
<WeaRightMenu ecId={`${this && this.props && this.props.ecId || ''}_WeaRightMenu@h4p4je`}
datas={this.getRightMenu(this.addCommonBtns())}
collectParams={collectParams}
>
<WeaNewScroll ecId={`${this && this.props && this.props.ecId || ''}_WeaNewScroll@avg8ek`}
className={'add-common-form'}
height={dialogH}
>
{ this.getSearchs(addCommonForm, addCommonConditions, 'add-common-conditions') }
</WeaNewScroll>
</WeaRightMenu>
</WeaDialog>);
}
getUrlDialog = () => {
const dialogW = 600, dialogH = 200;
const { collectParams, urlDialogVisible, setState, stepForm, stepConditions } = this.props.weesoSeachSetStore;
return(<WeaDialog ecId={`${this && this.props && this.props.ecId || ''}_WeaDialog@jgticu`}
className="weeso-search-add-common"
visible={urlDialogVisible}
title={getLabel('524267','查看URL地址') }
icon={'icon-coms-ws'}
iconBgcolor='#A0B0BA'
style={{ width: dialogW, height: dialogH }}
// buttons={this.addCommonBtns()}
onCancel={() => { setState({ urlDialogVisible: false }) }}
// moreBtn={{
// datas : this.getRightMenu(this.addCommonBtns()),
// collectParams : collectParams
// }}
>
{ this.getSearchs(stepForm, stepConditions, 'viewUrl') }
</WeaDialog>);
}
getColumns = (e) => {
let newColumns = '';
newColumns = e.map(column => {
let newColumn = column;
newColumn.render = (text, record, index) => { //前端元素转义
let valueSpan = record[newColumn.dataIndex + "span"] !== undefined ? record[newColumn.dataIndex + "span"] : record[newColumn.dataIndex];
return (
newColumn.dataIndex == "page_uuid" ?
<div className="wea-url-name" style={{cursor: 'pointer'}} onClick={() => {
const { setState, getCusPageSetDtl } = this.props.weesoSeachSetStore;
setState({ urlDialogVisible: true, recordId: record.randomFieldId });
getCusPageSetDtl({ id: record.randomFieldId,type: '4' });
}} dangerouslySetInnerHTML={{__html: getLabel('33564','查看') }}/>
:
<div className="wea-url" dangerouslySetInnerHTML={{__html: valueSpan}}/>
)
}
return newColumn;
});
return newColumns;
}
deleteRecords = (msg, onOk, onCancel) => {
Modal.confirm({
title: getLabel('131329','信息确认') ,
content: msg,
onOk() {
typeof onOk === 'function' && onOk();
},
onCancel() {
typeof onCancel === 'function' && onCancel();
},
});
}
maintenanceKeyAdd = (type) => {
const { dialogVisible, setState, searchTableStore, customizationDialogVisible, form, conditions, currentStep,
collectParams, stepForm, stepConditions, commonConditionTableStore, getSearchTagDtl, search_type, recordId,
commonConditionParams,recordParams
} = this.props.weesoSeachSetStore;
const { defalutMoreKey } = this.props.weesoStore;
let param = {};
if(!(this.props.page === 'maintenanceKey' && this.props.lvisible === true)) {
param = {
page_uuid: recordParams.page_uuid,
};
}
if(type === 'commonSet') {
param = {
...param,
search_type: defalutMoreKey
};
}
getSearchTagDtl({ id: '', ...param }, () => {
if(this.props.page === 'maintenanceKey' && this.props.lvisible === true) {
setState({ addCommonVisible: false, maintenanceKeyAddCommonVisible: true, commonConditionParams: {} });
} else {
setState({ addCommonVisible: true, maintenanceKeyAddCommonVisible: false, commonConditionParams: {} });
}
});
}
maintenanceKeyDel = () => {
const { delSearchTag, commonConditionTableStore, recordI, recordParams, getCustompageBaseDatas } = this.props.weesoSeachSetStore;
let ids = toJS(commonConditionTableStore.selectedRowKeys);
let params = {
id: ids,
};
this.deleteRecords(getLabel(127574, '确定删除吗?'), () => {
if(!(this.props.page === 'maintenanceKey' && this.props.lvisible === true)) {
params = {
...params,
page_uuid: recordParams.page_uuid,
fromSystem: 1
};
}
delSearchTag(params, () => {
this.getCommonConditionSetTable();
getCustompageBaseDatas({
cuspage_type: '3'
});
});
},);
}
searchPageCusCancel = () => {
const { setState, commonPageType, pageCusCurrentId, delCusPageSet, currentStep, defalutStepForm, stepForm } = this.props.weesoSeachSetStore;
if(String(currentStep) === '1' || (String(currentStep) === '4' && commonPageType.indexOf('create') === -1 )) {
setState({ customizationDialogVisible: false, recordParams: {} });
} else {
let isModify = false;
if(typeof defalutStepForm.getFormParams === 'function') {
const defalutStepFormParams = defalutStepForm.getFormParams();
const stepFormParams = stepForm.getFormParams();
Object.keys(defalutStepForm.getFormParams()).forEach(key => {
if(String(defalutStepFormParams[key]) !== String(stepFormParams[key])) {
isModify = true;
}
});
}
if(isModify) {
this.deleteRecords(getLabel('524268','数据未保存,确定退出吗?') ,() => {
if(commonPageType === 'create' && pageCusCurrentId !== '') {
delCusPageSet({ id: pageCusCurrentId }, () => {
setState({ customizationDialogVisible: false, recordParams: {} });
});
} else {
setState({ customizationDialogVisible: false, recordParams: {} });
}
});
} else {
setState({ customizationDialogVisible: false, recordParams: {} });
}
}
}
searchPageCancel = () => {
}
closeLog = () => {
const { setState, } = this.props.weesoSeachSetStore;
setState({ logvisible: false });
}
onSearch = (value) => {
const { getCusPageSetList, setState } = this.props.weesoSeachSetStore;
getCusPageSetList({ page_title: value || '' });
}
onSearchChange = (value) => {
const { setState } = this.props.weesoSeachSetStore;
setState({ searchDefinePageInputVal: value });
}
onCommonSearchChange = (value) => {
const { setState } = this.props.weesoSeachSetStore;
setState({ searchDefineCommonInputVal: value });
}
onCommonSearch = (value) => {
const { getSearchTagList } = this.props.weesoSeachSetStore;
getSearchTagList({ tagTitle: value || '' });
}
onCloseSearchDefineDialog = () => {
const { setState } = this.props.weesoSeachSetStore;
setState({ dialogVisible: false, searchDefineCommonInputVal: '', searchDefinePageInputVal: '' });
}
onStepChange = (e) => {
if(e) {
const { currentStep, setState, stepContents, getCusPageSetDtl, recordId, stepForm,
doSaveCusPageSetDtl, getCusPageSetList, recordParams, hasPageIcon, commonPageType
} = this.props.weesoSeachSetStore;
if(commonPageType !== 'saveas' && commonPageType !== 'edit') return;
const current = Number(currentStep); // 当前步
const now = Number(e.step);
if(now > current) {// 往后
if(current === 0) {
this.stepOne((ret) => {
setState({ currentStep: now });
if(now === 1) {
this.getCommonConditionSetTable(ret);
}
if(now === 2) {
getCusPageSetDtl({ id: recordId,type: 3, page_uuid: recordParams.page_uuid }, (ret) => {
});
}
if(now === 3) {
getCusPageSetDtl({ id: recordId,type: 4, page_uuid: ret.page_uuid });
}
});
}
if(current === 1) {
if(now === 2) {
this.nextStep();
}
if(now === 3) {
setState({ currentStep: now });
getCusPageSetDtl({ id: recordId,type: 4, page_uuid: recordParams.page_uuid });
}
}
if(current === 2) {
this.nextStep();
}
}
if(now < current) {// 往前
if(current === 1) {
this.preStep();
}
if(current === 2) {
this.stepThree(() => {
if(now === 0 ) {
setState({ currentStep: now });
getCusPageSetDtl({ id: recordId,type: 1, page_uuid: recordParams.page_uuid });
}
if(now === 1 ) {
this.preStep('click-step-pre');
}
});
}
if(current === 3) {
if(now === 0) {
setState({ currentStep: now });
getCusPageSetDtl({ id: recordId,type: 1, page_uuid: recordParams.page_uuid });
}
if(now === 1) {
setState({ currentStep: now });
this.getCommonConditionSetTable();
}
if(now === 2) {
this.preStep();
}
}
}
}
}
maintenanceKey_Add = () => {
this.maintenanceKeyAdd('commonSet');
}
render() {
const { dialogVisible, setState, searchTableStore, customizationDialogVisible, form, conditions, currentStep,
collectParams, stepForm, stepConditions, commonConditionTableStore, getSearchTagDtl, search_type,recordParams,
logStore, logvisible, logSmallType, logType, searchPageRight, commonPageType
} = this.props.weesoSeachSetStore;
let { stepContents, } = this.props.weesoSeachSetStore;
const { weesoSearchPageSetHeight } = this.state;
stepContents = toJS(stepContents);
const dialogH = weesoSearchPageSetHeight, dialogW = 900;
const stepTopH = this.customStepTopRef&&this.customStepTopRef.current ? this.customStepTopRef.current.offsetHeight : 160;
if(this.props.page === 'maintenanceKey') {
return(<div className="weeso-search-set-container">
<WeaSearchGroup ecId={`${this && this.props && this.props.ecId || ''}_WeaSearchGroup@zavpq9`}
className="customization-commonset"
title=' '
needTigger={false}
showGroup={true}
customComponent={
<div className="commonset-btn-group">
<span className="commonset-btn">
<WeaButtonIcon ecId={`${this && this.props && this.props.ecId || ''}_WeaButtonIcon@kbs0u5`} buttonType='add' type="primary" onClick={this.maintenanceKey_Add} />
</span>
<span className="commonset-btn">
<WeaButtonIcon ecId={`${this && this.props && this.props.ecId || ''}_WeaButtonIcon@ekiwq0`} buttonType='del' type="primary" disabled={commonConditionTableStore.selectedRowKeys.length === 0} onClick={this.maintenanceKeyDel} />
</span>
<span className="commonset-btn">
<WeaInputSearch ecId={`${this && this.props && this.props.ecId || ''}_WeaInputSearch@8teyzj`}
onSearch={this.onCommonSearch}
onSearchChange={this.onCommonSearchChange}
/>
</span>
</div>
}
>
<WeaTable ecId={`${this && this.props && this.props.ecId || ''}_WeaTable@u82boj`}
className="weeso-search-set-weatable"
comsWeaTableStore={commonConditionTableStore}
hasOrder={true}
needScroll={true}
scroll={{ y: this.props.dialogheight - 45 - 46 - 44 - 20 }}
onOperatesClick={(record,index,operate,flag) => this.onOperatesClick(record,index,operate,flag, 'searchCustom')}
/>
</WeaSearchGroup>
{ this.getAddCommonConditions() }
</div>)
}
return(<div className="weeso-search-set-container">
<WeaDialog ecId={`${this && this.props && this.props.ecId || ''}_WeaDialog@e0ngff`}
className="weeso-search-set"
ref={this.weesoSearchPageSetRef}
visible={dialogVisible}
title={getLabel('523791','搜索页面定制') }
icon={'icon-coms-ws'}
iconBgcolor='#A0B0BA'
style={{ width: dialogW, height: dialogH }}
onCancel={this.onCloseSearchDefineDialog}
// buttons={this.getSearchDialogBtns()}
// moreBtn={{
// datas : this.getRightMenu(this.getSearchDialogBtns()),
// collectParams : collectParams
// }}
>
{!searchPageRight && <NoRight ecId={`${this && this.props && this.props.ecId || ''}_NoRight@wyhtrn`} />}
{searchPageRight && <WeaRightMenu ecId={`${this && this.props && this.props.ecId || ''}_WeaRightMenu@xdzlum`}
datas={this.getRightMenu()}
collectParams={collectParams}
>
<WeaSearchGroup ecId={`${this && this.props && this.props.ecId || ''}_WeaSearchGroup@69z48p`}
className="weeso-search-set-topbtn"
title=' '
needTigger={false}
showGroup={true}
customComponent={
<div className="topbtn-group">
<span className="topbtn">
<WeaButtonIcon ecId={`${this && this.props && this.props.ecId || ''}_WeaButtonIcon@o547p2`} buttonType='add' type="primary" onClick={() => {
this.onTopBtnClick("add");
}} />
</span>
<span className="topbtn">
<WeaButtonIcon ecId={`${this && this.props && this.props.ecId || ''}_WeaButtonIcon@jcatm3`} buttonType='del' type="primary" disabled={searchTableStore.selectedRowKeys.length === 0} onClick={() => {
this.onTopBtnClick("del")
}} />
</span>
<span className="topbtn">
<WeaInputSearch ecId={`${this && this.props && this.props.ecId || ''}_WeaInputSearch@8teyzj`}
onSearch={this.onSearch}
onSearchChange={this.onSearchChange}
/>
</span>
</div>
}
>
<WeaTable ecId={`${this && this.props && this.props.ecId || ''}_WeaTable@arcfoh`}
className="weeso-search-set-weatable"
comsWeaTableStore={searchTableStore}
hasOrder={true}
needScroll={true}
scroll={{ y: dialogH - 53 - 42 - 44 - 20 }}
onOperatesClick={(record,index,operate,flag) => this.onOperatesClick(record,index,operate,flag, 'searchSet')}
getColumns={this.getColumns}
/>
</WeaSearchGroup>
</WeaRightMenu>}
</WeaDialog>
<WeaDialog ecId={`${this && this.props && this.props.ecId || ''}_WeaDialog@hwf9x2`}
className="weeso-search-set-customization"
visible={customizationDialogVisible}
title={getLabel('523791','搜索页面定制') }
icon={'icon-coms-ws'}
iconBgcolor='#A0B0BA'
style={{ width: dialogW, height: dialogH }}
buttons={this.getCumtonDialogBtns()}
onCancel={this.searchPageCusCancel}
moreBtn={{
datas : this.getRightMenu(this.getCumtonDialogBtns()),
collectParams : collectParams
}}
>
<WeaRightMenu ecId={`${this && this.props && this.props.ecId || ''}_WeaRightMenu@og1mid`}
datas={this.getRightMenu(this.getCumtonDialogBtns())}
collectParams={collectParams}
>
<div ref={this.customStepTopRef} className={commonPageType}>
<Row ecId={`${this && this.props && this.props.ecId || ''}_Row@cxto7x`} className={'customization-step'} ref={this.customStepRef}>
<WeaSteps ecId={`${this && this.props && this.props.ecId || ''}_WeaSteps@q7kkwk`} current={currentStep}>
{
stepContents && stepContents.map(res => (<Step ecId={`${this && this.props && this.props.ecId || ''}_Step@45vvw0@${currentStep}`} onClick={() => this.onStepChange(res)} description={res.label} />))
}
</WeaSteps>
</Row>
</div>
<WeaNewScroll ecId={`${this && this.props && this.props.ecId || ''}_WeaNewScroll@f0vi68`}
className={'customization-table'}
height={ dialogH - stepTopH }
>
{ currentStep !== 1 && currentStep !== 3 && this.getSearchs(stepForm, stepConditions, 'setpage') }
{ currentStep === 1 && <WeaSearchGroup ecId={`${this && this.props && this.props.ecId || ''}_WeaSearchGroup@6qmj4e`}
className="customization-commonset"
title=' '
needTigger={false}
showGroup={true}
customComponent={
<div className="commonset-btn-group">
<span className="commonset-btn">
<WeaButtonIcon ecId={`${this && this.props && this.props.ecId || ''}_WeaButtonIcon@95jlb2`} buttonType='add' type="primary" onClick={this.maintenanceKeyAdd} />
</span>
<span className="commonset-btn">
<WeaButtonIcon ecId={`${this && this.props && this.props.ecId || ''}_WeaButtonIcon@bm8jlh`} buttonType='del' type="primary" disabled={commonConditionTableStore.selectedRowKeys.length === 0} onClick={this.maintenanceKeyDel} />
</span>
</div>
}
>
<WeaTable ecId={`${this && this.props && this.props.ecId || ''}_WeaTable@8lbvzr`}
className="weeso-search-set-weatable"
comsWeaTableStore={commonConditionTableStore}
hasOrder={true}
needScroll={true}
scroll={{ y: dialogH - stepTopH - 53 - 46 - 44 - 17 }}
onOperatesClick={(record,index,operate,flag) => this.onOperatesClick(record,index,operate,flag, 'searchCustom')}
/>
</WeaSearchGroup> }
{ currentStep === 3 && this.getSearchs(stepForm, stepConditions, 'viewUrl')}
</WeaNewScroll>
</WeaRightMenu>
</WeaDialog>
{ this.getAddCommonConditions() }
{ this.getUrlDialog() }
<WeaLogViewComp ecId={`${this && this.props && this.props.ecId || ''}_WeaLogViewComp@gc5kjl`} targetId={recordParams.randomFieldId} visible={logvisible} onCancel={this.closeLog} logStore={logStore} logType={logType} logSmallType={logSmallType}/>
</div>);
}
}