!2885 修复:模板上传表达式点击太快导致参数消失

pull/2794/MERGE
黄诗津 3 months ago
parent 04b067ffad
commit ac78b868b3

@ -24,6 +24,7 @@ import { FileServer } from '../../../DatabaseServices/FileServer';
import { HardwareCompositeEntity } from '../../../DatabaseServices/Hardware/HardwareCompositeEntity';
import { HardwareTopline } from '../../../DatabaseServices/Hardware/HardwareTopline';
import { ObjectId } from '../../../DatabaseServices/ObjectId';
import { TemplateParam } from '../../../DatabaseServices/Template/Param/TemplateParam';
import { PositioningBoardSpace } from '../../../DatabaseServices/Template/Positioning/PositioningBoardSpace';
import { EditorOnlineTemplate, GetOnlineTemplate, ReplaceTemplate, SetTemplatePositionAndSetParent, UploadTemplate } from '../../../DatabaseServices/Template/TempateUtils';
import { TemplateRecord } from '../../../DatabaseServices/Template/TemplateRecord';
@ -62,7 +63,8 @@ import { TemplateDrawHingeTool } from './TemplateDrawHingeTool';
import { TemplateList } from './TemplateList';
@observer
export class TemplateManage extends React.Component<ITemplateManage, {}> {
export class TemplateManage extends React.Component<ITemplateManage, {}>
{
private option: TemplateOptionInfo = {
roomName: "",
cabName: "",
@ -103,6 +105,8 @@ export class TemplateManage extends React.Component<ITemplateManage, {}> {
commonPanel = React.createRef<CommonPanel>();
@observable currentDirId: string = DirectoryId.TemplateDir;
//保存当前界面参数信息
curParams: TemplateParam[] = [];
constructor(props)
{
@ -1129,6 +1133,7 @@ export class TemplateManage extends React.Component<ITemplateManage, {}> {
currentProps={this.currentProps}
currentInfo={this.currentTemplateInfo}
editor={this.handleEditor}
params={this.curParams}
cabOption={this.templateManageOption.option}
insert={this.handleInsert}
isShowDetail={true}

@ -55,10 +55,12 @@ const IconStyle: React.CSSProperties = {
};
@observer
export class TemplateDetail extends React.Component<ITemplateDetailProps> {
export class TemplateDetail extends React.Component<ITemplateDetailProps>
{
static defaultProps = {
isShowTag: true
};
isUpdateParam = false;
private renderHandleConfig = () =>
{
const store = DoorStore.GetInstance();
@ -254,7 +256,11 @@ export class TemplateDetail extends React.Component<ITemplateDetailProps> {
<Button
text="上传表达式"
intent={Intent.SUCCESS}
onClick={this.handleUpdateParam}
onClick={() =>
{
if (!this.isUpdateParam)
this.handleUpdateParam();
}}
/>
</div>
}
@ -306,6 +312,7 @@ export class TemplateDetail extends React.Component<ITemplateDetailProps> {
}
private handleUpdateParam = async () =>
{
this.isUpdateParam = true;
for (let i = 0; i < this.props.params.length; i++)
{
this.props.params[i].name = this.props.updateParams[i].name;
@ -325,6 +332,7 @@ export class TemplateDetail extends React.Component<ITemplateDetailProps> {
timeout: 1000
});
}
this.isUpdateParam = false;
};
private addTag = () =>
{

@ -54,6 +54,7 @@ export interface ITemplateListProps
searchDir?: boolean;
isShowDetail?: boolean;//显示参数列表
isFromResource?: boolean;//是门窗的资源
params?: TemplateParam[];
}
export interface ITempItemBack
@ -71,8 +72,8 @@ export interface ITempItemBack
}
@observer
export class TemplateList extends React.Component<ITemplateListProps> {
private _params: TemplateParam[] = [];
export class TemplateList extends React.Component<ITemplateListProps>
{
private watchDir: Function;
openResourceTree = observable.box(false);
store: TempalteEditorStore;
@ -119,7 +120,7 @@ export class TemplateList extends React.Component<ITemplateListProps> {
style={{ width: 310 }}
updateParams={this.props.currentProps}
currentInfo={this.props.currentInfo}
params={this._params}
params={this.props.params}
getData={this.props.getData}
showSelectTemp={this.props.forbidDelete}
selectInfo={this.props.selectInfo}
@ -165,7 +166,8 @@ export class TemplateList extends React.Component<ITemplateListProps> {
this.props.currentInfo.isHinge = this.props.currentDir.path.includes("铰链");
this.props.currentInfo.isKuGan = this.props.currentDir.path.includes("裤杆");
let pars = TemplateParamsIn(JSON.parse(inflateBase64(temp.props)));
this._params = pars;
this.props.params.length = 0;
pars.forEach(p => { this.props.params.push(p); });
observable(this.props.currentProps).replace(pars.map(p =>
{
return {

Loading…
Cancel
Save