diff --git a/resources/assets/js/pages/manage/components/TaskAdd.vue b/resources/assets/js/pages/manage/components/TaskAdd.vue index 3fd66a852..91bf3b7bf 100644 --- a/resources/assets/js/pages/manage/components/TaskAdd.vue +++ b/resources/assets/js/pages/manage/components/TaskAdd.vue @@ -12,6 +12,11 @@ @on-visible-change="cascaderShow=!cascaderShow" filterable/> +
project_id == this.addData.project_id) || [] } }, @@ -315,6 +325,12 @@ export default { 'addData.project_id'(projectId) { if (projectId > 0) { $A.IDBSave("cacheAddTaskProjectId", projectId); + this.$store.dispatch("updateTaskTemplates", projectId).then(() => { + const defaultTemplate = this.taskTemplateList.find(({is_default}) => is_default); + if (defaultTemplate) { + this.setTaskTemplate(defaultTemplate); + } + }) } }, 'addData.column_id'(columnId) { @@ -609,6 +625,13 @@ export default { break; } }, + + setTaskTemplate(item) { + this.addData.name = item.title + this.addData.content = nostyle(item.content, { + sanitize: false, + }); + } } } diff --git a/resources/assets/js/store/actions.js b/resources/assets/js/store/actions.js index 7cc2ca2aa..64dcc7676 100644 --- a/resources/assets/js/store/actions.js +++ b/resources/assets/js/store/actions.js @@ -2506,6 +2506,23 @@ export default { }); }, + /** + * 更新任务模板 + * @param state + * @param dispatch + * @param projectId + * @returns {Promise} + */ + async updateTaskTemplates({state, dispatch}, projectId) { + const {data} = await dispatch("call", { + url: 'project/task/template_list', + data: { + project_id: projectId + }, + }) + state.taskTemplates = state.taskTemplates.filter(template => template.project_id !== projectId).concat(data || []) + }, + /** *****************************************************************************************/ /** ************************************** 会话 **********************************************/ /** *****************************************************************************************/ diff --git a/resources/assets/js/store/state.js b/resources/assets/js/store/state.js index 986b26096..5b9c16601 100644 --- a/resources/assets/js/store/state.js +++ b/resources/assets/js/store/state.js @@ -149,6 +149,7 @@ export default { taskLogs: [], taskOperation: {}, taskArchiveView: 0, + taskTemplates: [], // 任务等待状态 taskOneLoad: {}, diff --git a/resources/assets/sass/dark.scss b/resources/assets/sass/dark.scss index fa2b13f7f..dba230526 100644 --- a/resources/assets/sass/dark.scss +++ b/resources/assets/sass/dark.scss @@ -621,4 +621,14 @@ body.dark-mode-reverse { } } } + + .task-add { + .task-add-template { + > li { + &.active { + color: black; + } + } + } + } } diff --git a/resources/assets/sass/pages/components/task-add.scss b/resources/assets/sass/pages/components/task-add.scss index f21e8d5d5..0b3d11027 100644 --- a/resources/assets/sass/pages/components/task-add.scss +++ b/resources/assets/sass/pages/components/task-add.scss @@ -68,6 +68,30 @@ } } } + .task-add-template { + display: flex; + flex-wrap: wrap; + gap: 12px; + margin-bottom: 20px; + + > li { + list-style: none; + padding: 7px 15px; + background-color: #f5f5f5; + border-radius: 20px; + transition: all 0.3s ease; + cursor: pointer; + + &:hover { + background-color: #e0e0e0; + } + + &.active { + background-color: $primary-color; + color: white; + } + } + } .task-add-form, .task-add-advanced { .calculate-dropdown {