feat(task): 支持创建任务时右键取消已选人员

This commit is contained in:
kuaifan 2026-09-07 00:45:16 +00:00
parent 10474f481c
commit a3bfc74159
3 changed files with 30 additions and 2 deletions

View File

@ -19,7 +19,7 @@ negative:
- 任务名称必填且最长 255 字符
- 描述富文本最长 50000 字符
- 一个任务最多 50 个子任务
last_verified: v1.7.90
last_verified: v1.9.18
---
# 完整创建任务(详情页所有字段)
@ -46,6 +46,11 @@ last_verified: v1.7.90
2. 点「保存」,任务出现在所选列底部
3. 创建后可继续打开详情页改字段,所有改动即时写入并广播给项目成员
## 取消已选人员
- 创建任务对话框展开「高级选项」后,右键负责人、协助人员或子任务负责人的已选头像,可立即取消该人的选择,无需打开人员选择弹窗或再次确认;仅修改当前创建表单。
- 左键点击头像仍打开人员选择弹窗,移动端沿用弹窗内取消选择的操作。指定可见人员和任务详情页不启用此右键操作。
- 保留原有联动:负责人变化后,如果协助人员为空且当前用户不在负责人中,会自动将当前用户加入协助人员。
## 不支持
- 创建时不能直接上传附件,必须保存后再传
- 不允许任务名称为空(会被服务端拒绝)

View File

@ -2,7 +2,7 @@
<div class="common-user-select" :class="warpClass">
<ul v-if="!module">
<template v-for="userid in values">
<li v-if="userid" :key="userid" @click="onSelection">
<li v-if="userid" :key="userid" @click="onSelection" @contextmenu="onContextRemove($event, userid)">
<UserAvatar :userid="userid" :size="avatarSize" :show-icon="avatarIcon" :show-name="avatarName"/>
</li>
</template>
@ -300,6 +300,12 @@ export default {
default: false
},
//
contextmenuRemove: {
type: Boolean,
default: false
},
//
disabled: {
type: Boolean,
@ -854,6 +860,20 @@ export default {
})
},
onContextRemove(event, userid) {
if (!this.contextmenuRemove) {
return
}
event.preventDefault()
event.stopPropagation()
if (this.disabled || this.submittIng > 0 || this.showModal || this.isUncancelable(userid)) {
return
}
this.selects = $A.cloneJSON(this.values)
this.onRemoveItem(userid)
this.onSubmit()
},
onRemoveItem(userid) {
if (this.isUncancelable(userid)) {
return

View File

@ -95,6 +95,7 @@
<FormItem :label="$L('负责人')" >
<UserSelect
v-model="addData.owner"
contextmenu-remove
:multiple-max="10"
:title="$L('选择任务负责人')"
:project-id="addData.project_id"
@ -104,6 +105,7 @@
<FormItem :label="$L('协助人员')" >
<UserSelect
v-model="addData.assist"
contextmenu-remove
:multiple-max="10"
:title="$L('选择任务协助人员')"
:project-id="addData.project_id"
@ -161,6 +163,7 @@
<Col span="4">
<UserSelect
v-model="item.owner"
contextmenu-remove
:multiple-max="1"
:title="$L('选择负责人')"
:project-id="addData.project_id"