@@ -111,6 +126,8 @@ export default {
systemTemplateShow: false,
systemTemplateData: [],
+ systemTemplateIsMultiple: false,
+ systemTemplateMultipleData: [],
}
},
computed: {
@@ -176,22 +193,40 @@ export default {
$A.messageWarning('请输入模板名称')
return
}
+ let savePromises = []
+ if (this.systemTemplateIsMultiple) {
+ if (this.systemTemplateMultipleData.length === 0) {
+ $A.messageWarning('请选择示例模板')
+ return
+ }
+ savePromises = this.systemTemplateMultipleData.map(item => {
+ const template = { ...this.editingTemplate, id: null, name: item.name, title: item.title, content: item.content }
+ return this.handleSaveCall(template)
+ })
+ } else {
+ savePromises.push(this.handleSaveCall(this.editingTemplate))
+ }
try {
- await this.$store.dispatch("call", {
- url: 'project/task/template_save',
- data: this.editingTemplate,
- method: 'post',
- spinner: 300
- })
- $A.messageSuccess('保存成功')
+ const results = await Promise.all(savePromises)
+ $A.messageSuccess(results.length === 1 ? results[0].msg : '全部保存成功')
this.showEditModal = false
this.loadTemplates()
- } catch ({msg}) {
- $A.messageError(msg || '保存失败')
+ } catch (error) {
+ $A.messageError(error.msg || '保存失败')
}
},
+ // 保存模板请求
+ async handleSaveCall(data) {
+ return this.$store.dispatch("call", {
+ url: 'project/task/template_save',
+ data,
+ method: 'post',
+ spinner: 300
+ })
+ },
+
// 删除模板
async handleDelete(template) {
$A.modalConfirm({
@@ -199,14 +234,14 @@ export default {
content: '确定要删除该模板吗?',
onOk: async () => {
try {
- await this.$store.dispatch("call", {
+ const {msg} = await this.$store.dispatch("call", {
url: 'project/task/template_delete',
data: {
id: template.id
},
spinner: 300
})
- $A.messageSuccess('删除成功')
+ $A.messageSuccess(msg || '删除成功')
this.loadTemplates()
} catch ({msg}) {
$A.messageError(msg || '删除失败')
@@ -218,7 +253,7 @@ export default {
// 设置默认模板
async handleSetDefault(template) {
try {
- await this.$store.dispatch("call", {
+ const {msg} = await this.$store.dispatch("call", {
url: 'project/task/template_default',
data: {
id: template.id,
@@ -226,7 +261,7 @@ export default {
},
spinner: 300
})
- $A.messageSuccess('设置成功')
+ $A.messageSuccess(msg || '设置成功')
this.loadTemplates()
} catch ({msg}) {
$A.messageError(msg || '设置失败')
@@ -244,6 +279,15 @@ export default {
this.editingTemplate.name = item.name
this.editingTemplate.title = item.title
this.editingTemplate.content = item.content
+ //
+ if (this.systemTemplateIsMultiple) {
+ const index = this.systemTemplateMultipleData.indexOf(item)
+ if (index === -1) {
+ this.systemTemplateMultipleData.push(item)
+ } else {
+ this.systemTemplateMultipleData.splice(index, 1)
+ }
+ }
}
}
}
diff --git a/resources/assets/sass/dark.scss b/resources/assets/sass/dark.scss
index dba230526..5495ea282 100644
--- a/resources/assets/sass/dark.scss
+++ b/resources/assets/sass/dark.scss
@@ -631,4 +631,14 @@ body.dark-mode-reverse {
}
}
}
+
+ .project-task-template-system {
+ ul {
+ > li {
+ &.selected {
+ color: black;
+ }
+ }
+ }
+ }
}
diff --git a/resources/assets/sass/pages/components/project-task-template.scss b/resources/assets/sass/pages/components/project-task-template.scss
index e7ee6a457..6a703031f 100644
--- a/resources/assets/sass/pages/components/project-task-template.scss
+++ b/resources/assets/sass/pages/components/project-task-template.scss
@@ -4,11 +4,12 @@
flex-direction: column;
.header {
- padding: 20px 20px 10px;
+ height: 60px;
+ padding: 10px 20px;
display: flex;
align-items: center;
justify-content: flex-start;
-
+
@media screen and (min-width: 500px) {
justify-content: space-between;
}
@@ -30,15 +31,15 @@
.empty {
text-align: center;
- padding: 40px 0;
- color: $primary-text-color;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
-
- .empty-text {
- font-size: 14px;
+ flex-direction: column;
+ padding: 20px;
+ color: $primary-text-color;
+ > button {
+ margin-top: 18px;
}
}
}
@@ -86,11 +87,12 @@
}
.template-actions {
- margin-top: 12px;
+ margin-top: 4px;
text-align: right;
> button {
- margin-right: 12px;
+ margin-top: 8px;
+ margin-right: 8px;
height: 28px;
padding: 0 12px;
font-size: 13px;
@@ -128,6 +130,11 @@
&:hover {
background-color: #e0e0e0;
}
+
+ &.selected {
+ background-color: $primary-color;
+ color: white;
+ }
}
}
}