优化保存配置

pull/93/head
Zoe 6 years ago
parent 7ddd0ced0c
commit 45ccb77a39

@ -206,7 +206,7 @@ export class Board extends Entity
let extrudeSettings = { let extrudeSettings = {
steps: 1, steps: 1,
bevelEnabled: false, bevelEnabled: false,
amount: this.m_Thickness depth: this.m_Thickness
}; };
let geo = new ExtrudeGeometry(this.m_Shape.Shape, extrudeSettings); let geo = new ExtrudeGeometry(this.m_Shape.Shape, extrudeSettings);
geo.translate(0, 0, -this.m_Thickness); geo.translate(0, 0, -this.m_Thickness);

@ -64,6 +64,12 @@ export class BoardModal extends React.Component<BoardModalProps, BoardModalState
handleSaveConfig = async () => handleSaveConfig = async () =>
{ {
let name = this.state.configName; let name = this.state.configName;
if (name === "")
{
alert("输入名称");
return;
}
let dbstore = await IndexedDbStore.CADStore(); let dbstore = await IndexedDbStore.CADStore();
let brStore = this.props.store; let brStore = this.props.store;
let type = this.props.type; let type = this.props.type;
@ -81,7 +87,7 @@ export class BoardModal extends React.Component<BoardModalProps, BoardModalState
let brDataMap = await dbstore.Get(StoreName.ConfigData, type) as Map<string, configOption> || new Map(); let brDataMap = await dbstore.Get(StoreName.ConfigData, type) as Map<string, configOption> || new Map();
let isContinue = true; let isContinue = true;
if (brDataMap.get(name)) if (brDataMap.has(name))
{ {
isContinue = confirm("该名字存在,是否覆盖值"); isContinue = confirm("该名字存在,是否覆盖值");
} }
@ -97,18 +103,24 @@ export class BoardModal extends React.Component<BoardModalProps, BoardModalState
//删除配置 //删除配置
handleDeleteConfig = async () => handleDeleteConfig = async () =>
{ {
// 删除视图中的对应项
let configs = this.state.configs; let configs = this.state.configs;
let currentName = this.state.configName; let currentName = this.state.configName;
configs.delete(currentName); configs.delete(currentName);
this.setState({ configs }); this.setState({ configs });
//删除数据库中的对应项
let dbstore = await IndexedDbStore.CADStore(); let dbstore = await IndexedDbStore.CADStore();
let type = this.props.type; let type = this.props.type;
let brDataMap = await dbstore.Get(StoreName.ConfigData, type) as Map<string, configOption>; let brDataMap = await dbstore.Get(StoreName.ConfigData, type) as Map<string, configOption>;
brDataMap.delete(currentName); brDataMap.delete(currentName);
dbstore.Put(StoreName.ConfigData, type, brDataMap); dbstore.Put(StoreName.ConfigData, type, brDataMap);
this.setState({ configName: "默认" }); //切换到第一项
await this.changeBoardOption("默认"); let confNames = Array.from(brDataMap.keys());
let newName = confNames.length > 0 ? confNames[0] : "";
this.setState({ configName: newName });
await this.changeBoardOption(newName);
} }
//更新配置 //更新配置
changeBoardOption = async (k: string) => changeBoardOption = async (k: string) =>
@ -137,7 +149,18 @@ export class BoardModal extends React.Component<BoardModalProps, BoardModalState
let type = this.props.type; let type = this.props.type;
let brDataMap = await dbstore.Get(StoreName.ConfigData, type) as Map<string, configOption> || new Map(); let brDataMap = await dbstore.Get(StoreName.ConfigData, type) as Map<string, configOption> || new Map();
this.setState({ configs: brDataMap }); this.setState({ configs: brDataMap });
console.log(this.state.configs.size);
let confNames = Array.from(brDataMap.keys());
//如果没保存过配置,添加一个默认
if (confNames.length === 0)
{
this.setState({ configName: "默认" });
await this.handleSaveConfig();
}
else
{
this.setState({ configName: confNames[0] });
}
} }
render() render()
{ {
@ -206,8 +229,7 @@ export class BoardModal extends React.Component<BoardModalProps, BoardModalState
<Button <Button
minimal={true} minimal={true}
rightIcon="caret-down" rightIcon="caret-down"
disabled={this.state.configs.size === 0}> ></Button>} />}
</Button>} />}
/> />
</div> </div>

Loading…
Cancel
Save