czh-20260616-更换选人组件;调深系统颜色
This commit is contained in:
@@ -260,21 +260,19 @@ export const createTaskFormSchema: FormSchema[] = [
|
||||
{
|
||||
label: '负责人',
|
||||
field: 'assigneeId',
|
||||
component: 'JSelectUser',
|
||||
component: 'SzDeptUserSelect',
|
||||
componentProps: {
|
||||
labelKey: 'realname',
|
||||
rowKey: 'id',
|
||||
isRadioSelection: true,
|
||||
valueKey: 'id',
|
||||
multi: false,
|
||||
},
|
||||
},
|
||||
{
|
||||
label: '分配人',
|
||||
field: 'assignId',
|
||||
component: 'JSelectUser',
|
||||
component: 'SzDeptUserSelect',
|
||||
componentProps: {
|
||||
labelKey: 'realname',
|
||||
rowKey: 'id',
|
||||
isRadioSelection: true,
|
||||
valueKey: 'id',
|
||||
multi: false,
|
||||
},
|
||||
},
|
||||
{
|
||||
|
||||
@@ -68,11 +68,11 @@
|
||||
</span>
|
||||
</div>
|
||||
<div class="add-panel-body">
|
||||
<SzUserSelect
|
||||
<SzDeptUserModal
|
||||
v-model:value="addForm.userIds"
|
||||
:labelKey="'realname'"
|
||||
:rowKey="'id'"
|
||||
placeholder="搜索并选择用户(支持多选)"
|
||||
valueKey="id"
|
||||
:role="1"
|
||||
:secLevel="secretLevel"
|
||||
/>
|
||||
<div class="add-panel-row">
|
||||
<span class="add-panel-label">权限</span>
|
||||
@@ -106,7 +106,7 @@
|
||||
import { ref, reactive, computed, nextTick } from 'vue';
|
||||
import { message } from 'ant-design-vue';
|
||||
import Icon from '/@/components/Icon/index';
|
||||
import SzUserSelect from '/@/components/semri/userComponent/SzUserSelect.vue';
|
||||
import SzDeptUserModal from '/@/components/semri/deptUserComponent/SzDeptUserModal.vue';
|
||||
import { getCollaborators, addCollaborator, removeCollaborator, updateCollaboratorPermission } from '../TaskList.api';
|
||||
import { getAvatarColor } from '../types';
|
||||
import { checkUserSecLevel } from '../utils/taskUtils';
|
||||
|
||||
@@ -11,6 +11,12 @@
|
||||
<Icon icon="ant-design:plus-outlined" />
|
||||
</a-button>
|
||||
</a-tooltip>
|
||||
<a-input-search
|
||||
v-model:value="searchKeyword"
|
||||
placeholder="搜索计划名称"
|
||||
class="list-search-input"
|
||||
allow-clear
|
||||
/>
|
||||
</div>
|
||||
<a-tooltip title="使用帮助">
|
||||
<a-button type="text" size="small" class="help-btn" @click="helpModalOpen = true">
|
||||
@@ -813,13 +819,15 @@
|
||||
</template>
|
||||
</div>
|
||||
|
||||
<UserSelectModal
|
||||
<SzDeptUserModal
|
||||
ref="userSelectModalRef"
|
||||
hide-trigger
|
||||
:title="userSelectModalType === 'assignee' ? '选择负责人' : userSelectModalType === 'participant' ? '选择参与人' : '选择关注人'"
|
||||
:user-ids="userSelectModalCurrentIds"
|
||||
:user-names="userSelectModalCurrentNames"
|
||||
:multiple="true"
|
||||
:secret-level="currentList?.secretLevel || 1"
|
||||
:value="userSelectModalCurrentIds"
|
||||
value-key="id"
|
||||
:multi="true"
|
||||
:sec-level="currentList?.secretLevel || 1"
|
||||
:role="1"
|
||||
@confirm="onUserSelectConfirm"
|
||||
/>
|
||||
<HelpModal v-model:open="helpModalOpen" />
|
||||
@@ -834,7 +842,7 @@
|
||||
import Icon from '/@/components/Icon/index';
|
||||
import AvatarDisplay from './AvatarDisplay.vue';
|
||||
import draggable from 'vuedraggable';
|
||||
import UserSelectModal from './UserSelectModal.vue';
|
||||
import SzDeptUserModal from '/@/components/semri/deptUserComponent/SzDeptUserModal.vue';
|
||||
import { useUserStore } from '/@/store/modules/user';
|
||||
import { useMessage } from '/@/hooks/web/useMessage';
|
||||
import { FIELD_CONFIG, GROUP_OPTIONS, SORT_OPTIONS, MAX_TASK_DEPTH, FILTER_FIELD_CONFIGS, FILTER_OPERATOR_LABELS, SECRET_LEVEL_COLOR } from '../types';
|
||||
@@ -920,6 +928,7 @@
|
||||
});
|
||||
const submittingGroup = ref(false);
|
||||
const submittingRename = ref(false);
|
||||
const searchKeyword = ref('');
|
||||
const filterVisible = ref(false);
|
||||
const fieldConfigVisible = ref(false);
|
||||
const collapsedGroups = ref<Set<string>>(new Set());
|
||||
@@ -1118,10 +1127,13 @@
|
||||
|
||||
const allTaskLists = computed(() => {
|
||||
const lists: TaskList[] = [];
|
||||
const keyword = searchKeyword.value.trim().toLowerCase();
|
||||
for (const group of props.taskListGroups) {
|
||||
for (const list of group.taskLists) {
|
||||
if (list.delFlag !== 1) {
|
||||
lists.push(list);
|
||||
if (!keyword || list.name.toLowerCase().includes(keyword)) {
|
||||
lists.push(list);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1923,6 +1935,11 @@
|
||||
}
|
||||
}
|
||||
|
||||
.list-search-input {
|
||||
width: 220px;
|
||||
margin-left: 16px;
|
||||
}
|
||||
|
||||
.help-btn {
|
||||
color: #888;
|
||||
font-size: 18px;
|
||||
|
||||
@@ -357,13 +357,15 @@
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<UserSelectModal
|
||||
<SzDeptUserModal
|
||||
ref="userSelectModalRef"
|
||||
hide-trigger
|
||||
:title="drawerUserSelectType === 'assignee' ? '选择负责人' : drawerUserSelectType === 'participant' ? '选择参与人' : '选择关注人'"
|
||||
:user-ids="drawerUserSelectCurrentIds"
|
||||
:user-names="drawerUserSelectCurrentNames"
|
||||
:multiple="true"
|
||||
:secret-level="currentListSecretLevel || 1"
|
||||
:value="drawerUserSelectCurrentIds"
|
||||
value-key="id"
|
||||
:multi="true"
|
||||
:sec-level="currentListSecretLevel || 1"
|
||||
:role="1"
|
||||
@confirm="onUserSelectModalConfirm"
|
||||
/>
|
||||
|
||||
@@ -376,6 +378,7 @@
|
||||
import Icon from '/@/components/Icon/index';
|
||||
import AvatarDisplay from './AvatarDisplay.vue';
|
||||
import SzUserSelectBySecLevel from '/@/components/semri/userComponent/SzUserSelectBySecLevel.vue';
|
||||
import SzDeptUserModal from '/@/components/semri/deptUserComponent/SzDeptUserModal.vue';
|
||||
import TaskAttachmentUpload from './TaskAttachmentUpload.vue';
|
||||
import TaskDateRangePicker from './TaskDateRangePicker.vue';
|
||||
import draggable from 'vuedraggable';
|
||||
@@ -443,7 +446,7 @@
|
||||
const drawerUserSelectType = ref<'assignee' | 'followers' | 'participant'>('assignee');
|
||||
const drawerUserSelectCurrentIds = ref<string>('');
|
||||
const drawerUserSelectCurrentNames = ref<string>('');
|
||||
const userSelectModalRef = ref<InstanceType<typeof UserSelectModal> | null>(null);
|
||||
const userSelectModalRef = ref<InstanceType<typeof SzDeptUserModal> | null>(null);
|
||||
const fileUploadRef = ref<InstanceType<typeof TaskAttachmentUpload> | null>(null);
|
||||
|
||||
const parentTask = computed(() => {
|
||||
|
||||
@@ -336,12 +336,14 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<UserSelectModal
|
||||
<SzDeptUserModal
|
||||
ref="userSelectModalRef"
|
||||
hide-trigger
|
||||
:title="userSelectModalType === 'assignee' ? '选择负责人' : userSelectModalType === 'participant' ? '选择参与人' : '选择关注人'"
|
||||
:user-ids="userSelectModalCurrentIds"
|
||||
:user-names="userSelectModalCurrentNames"
|
||||
:multiple="true"
|
||||
:value="userSelectModalCurrentIds"
|
||||
value-key="id"
|
||||
:multi="true"
|
||||
:role="1"
|
||||
@confirm="onUserSelectConfirm"
|
||||
/>
|
||||
</a-spin>
|
||||
@@ -353,7 +355,7 @@
|
||||
import dayjs from 'dayjs';
|
||||
import Icon from '/@/components/Icon/index';
|
||||
import AvatarDisplay from './AvatarDisplay.vue';
|
||||
import UserSelectModal from './UserSelectModal.vue';
|
||||
import SzDeptUserModal from '/@/components/semri/deptUserComponent/SzDeptUserModal.vue';
|
||||
import { FIELD_CONFIG, SORT_OPTIONS, MAX_TASK_DEPTH } from '../types';
|
||||
import { PRIORITY_OPTIONS, getPriorityBg, getPriorityLabel, isOverdue } from '../utils/taskUtils';
|
||||
import type { TaskItem, StatusFilter, SortField, SortDirection, FieldKey, FlatTaskItem } from '../types';
|
||||
|
||||
@@ -47,11 +47,12 @@
|
||||
</span>
|
||||
</div>
|
||||
<div class="add-panel-body">
|
||||
<SzUserSelect
|
||||
<SzDeptUserModal
|
||||
v-model:value="addForm.userIds"
|
||||
:labelKey="'realname'"
|
||||
:rowKey="'id'"
|
||||
placeholder="搜索并选择用户(支持多选)"
|
||||
valueKey="id"
|
||||
:multi="multiple"
|
||||
:role="1"
|
||||
:secLevel="secretLevel"
|
||||
/>
|
||||
</div>
|
||||
<div class="add-panel-footer">
|
||||
@@ -78,7 +79,7 @@
|
||||
import { ref, reactive, computed } from 'vue';
|
||||
import { message } from 'ant-design-vue';
|
||||
import Icon from '/@/components/Icon/index';
|
||||
import SzUserSelect from '/@/components/semri/userComponent/SzUserSelect.vue';
|
||||
import SzDeptUserModal from '/@/components/semri/deptUserComponent/SzDeptUserModal.vue';
|
||||
import { getAvatarColor } from '../types';
|
||||
import { getUserList } from '/@/api/common/api';
|
||||
import { checkUserSecLevel } from '../utils/taskUtils';
|
||||
|
||||
Reference in New Issue
Block a user