diff --git a/src/views/system/devtools/template/TemplateModal.vue b/src/views/system/devtools/template/TemplateModal.vue index 4645517..1f6f1cf 100644 --- a/src/views/system/devtools/template/TemplateModal.vue +++ b/src/views/system/devtools/template/TemplateModal.vue @@ -149,7 +149,9 @@ } function handleEditTab() { - openPromptModal(true, { _tag: 'edit' }); + if (state.typeActiveKey == '0' ? state.mainActiveKey : state.childActiveKey) { + openPromptModal(true, { _tag: 'edit' }); + } } function handleRemoveTab(targetKey: string) { @@ -184,22 +186,23 @@ } } - function handlePrompt({ name }) { - const index = state.templateObjs.findIndex(item => (item.index || item.id) == (state.typeActiveKey == '0' ? state.mainActiveKey : state.childActiveKey)); - let template: templateTypePartial = { - name, - contents: '', - isChild: state.typeActiveKey, - index: `t${Date.now()}` - }; - if (index != -1) { - template = Object.assign({}, state.templateObjs[index], { name }); - state.templateObjs.splice(index, 1, template); - } else state.templateObjs.push(template); - // 设置自动选择tab - if (state.typeActiveKey == '0'){ - state.mainActiveKey = (template.index || template.id)!; - } else state.childActiveKey = (template.index || template.id)!; + function handlePrompt({ name, tag }) { + if (tag === 'add') { + const template: templateTypePartial = { + name, + contents: '', + isChild: state.typeActiveKey, + index: `t${Date.now()}` + }; + state.templateObjs.push(template); + // 设置新增后自动选择tab + state.typeActiveKey == '0' ? (state.mainActiveKey = template.index!) : (state.childActiveKey = template.index!); + } else { + const index = state.templateObjs.findIndex(item => (item.index || item.id) == (state.typeActiveKey == '0' ? state.mainActiveKey : state.childActiveKey)); + if (index != -1) { + state.templateObjs.splice(index, 1, Object.assign({}, state.templateObjs[index], { name })); + } + } } /** 处理弹出框提交 */ diff --git a/src/views/system/devtools/template/TemplatePromptModal.vue b/src/views/system/devtools/template/TemplatePromptModal.vue index dfda8c9..d6771a2 100644 --- a/src/views/system/devtools/template/TemplatePromptModal.vue +++ b/src/views/system/devtools/template/TemplatePromptModal.vue @@ -27,6 +27,7 @@ /** 类型规范统一声明定义区域 */ interface WindowState { + tag: string; name: string; } @@ -37,6 +38,7 @@ const FormItem = Form.Item; const useForm = Form.useForm; const modelRef = reactive({ + tag: '', name: '' }); const rulesRef = reactive({ @@ -54,6 +56,7 @@ resetFields(); clearValidate(); // 处理设置数据 + modelRef.tag = data._tag; const props: Partial = { confirmLoading: false }; switch (data._tag) { case 'add':