diff --git a/app/Http/Controllers/Api/ProjectController.php b/app/Http/Controllers/Api/ProjectController.php
index 7289c1571..a661b8540 100755
--- a/app/Http/Controllers/Api/ProjectController.php
+++ b/app/Http/Controllers/Api/ProjectController.php
@@ -1239,6 +1239,7 @@ class ProjectController extends AbstractController
$headings[] = Doo::translate('父级任务ID');
$headings[] = Doo::translate('所属项目');
$headings[] = Doo::translate('任务标题');
+ $headings[] = Doo::translate('任务标签');
$headings[] = Doo::translate('任务开始时间');
$headings[] = Doo::translate('任务结束时间');
$headings[] = Doo::translate('完成时间');
@@ -1259,7 +1260,7 @@ class ProjectController extends AbstractController
'style' => 'font-weight: bold;padding-bottom: 4px;',
];
//
- $builder = ProjectTask::select(['project_tasks.*', 'project_task_users.userid as ownerid'])
+ $builder = ProjectTask::with(['taskTag'])->select(['project_tasks.*', 'project_task_users.userid as ownerid'])
->join('project_task_users', 'project_tasks.id', '=', 'project_task_users.task_id')
->where('project_task_users.owner', 1)
->whereIn('project_task_users.userid', $userid)
@@ -1341,6 +1342,9 @@ class ProjectController extends AbstractController
$task->parent_id ?: '-',
Base::filterEmoji($task->project?->name) ?: '-',
Base::filterEmoji($task->name),
+ $task->taskTag->map(function ($tag) {
+ return Base::filterEmoji($tag->name);
+ })->join(', ') ?: '-',
$task->start_at ?: '-',
$task->end_at ?: '-',
$task->complete_at ?: '-',
@@ -1463,6 +1467,7 @@ class ProjectController extends AbstractController
$headings[] = Doo::translate('父级任务ID');
$headings[] = Doo::translate('所属项目');
$headings[] = Doo::translate('任务标题');
+ $headings[] = Doo::translate('任务标签');
$headings[] = Doo::translate('任务开始时间');
$headings[] = Doo::translate('任务结束时间');
$headings[] = Doo::translate('任务计划用时');
@@ -1471,7 +1476,8 @@ class ProjectController extends AbstractController
$headings[] = Doo::translate('创建人');
$data = [];
//
- ProjectTask::whereNull('complete_at')
+ ProjectTask::with(['taskTag'])
+ ->whereNull('complete_at')
->whereNotNull('end_at')
->where('end_at', '<=', Carbon::now())
->orderBy('end_at')
@@ -1502,11 +1508,14 @@ class ProjectController extends AbstractController
$task->parent_id ?: '-',
Base::filterEmoji($task->project?->name) ?: '-',
Base::filterEmoji($task->name),
+ $task->taskTag->map(function ($tag) {
+ return Base::filterEmoji($tag->name);
+ })->join(', ') ?: '-',
$task->start_at ?: '-',
$task->end_at ?: '-',
$planTime,
$overTime,
- implode("、", $ownerNames),
+ implode(', ', $ownerNames),
Base::filterEmoji(User::userid2nickname($task->userid)) . " (ID: {$task->userid})",
];
}
diff --git a/resources/assets/js/pages/manage/components/ProjectTaskTag/add.vue b/resources/assets/js/pages/manage/components/ProjectTaskTag/add.vue
index b5c483e1e..50e6d00ae 100644
--- a/resources/assets/js/pages/manage/components/ProjectTaskTag/add.vue
+++ b/resources/assets/js/pages/manage/components/ProjectTaskTag/add.vue
@@ -58,6 +58,12 @@ import Tags from "./tags.vue";
export default {
name: "TaskTagAdd",
components: {Tags},
+ props: {
+ projectId: {
+ type: [Number, String],
+ required: true
+ }
+ },
data() {
return {
loadIng: 0,
@@ -89,11 +95,25 @@ export default {
}
},
methods: {
- onOpen(tag) {
+ onOpen(tag = null) {
+ if (tag === null) {
+ tag = this.getEmptyTag()
+ }
this.editingTag = { ...tag }
this.showEditModal = true
},
+ // 获取空标签对象
+ getEmptyTag() {
+ return {
+ id: null,
+ project_id: this.projectId,
+ name: '',
+ desc: '',
+ color: ''
+ }
+ },
+
// 保存标签
async handleSave() {
if (!this.editingTag.name) {
@@ -118,7 +138,7 @@ export default {
const results = await Promise.all(savePromises)
$A.messageSuccess(results.length === 1 ? results[0].msg : '全部保存成功')
this.showEditModal = false
- this.$emit('on-save')
+ this.$emit('on-save', results)
} catch (error) {
$A.messageError(error.msg || '保存失败')
}
diff --git a/resources/assets/js/pages/manage/components/ProjectTaskTag/index.vue b/resources/assets/js/pages/manage/components/ProjectTaskTag/index.vue
index 08288e70a..765207b6e 100644
--- a/resources/assets/js/pages/manage/components/ProjectTaskTag/index.vue
+++ b/resources/assets/js/pages/manage/components/ProjectTaskTag/index.vue
@@ -7,7 +7,7 @@