czh-20260616-更换选人组件;调深系统颜色
This commit is contained in:
@@ -82,6 +82,7 @@ import RoleSelectInput from './jeecg/components/roleSelect/RoleSelectInput.vue';
|
||||
import {DatePickerInFilter, CascaderPcaInFilter} from "@/components/InFilter";
|
||||
import SzSelectUser from '@/components/semri/userComponent/SzUserSelect.vue';
|
||||
import SzSelectUserByDept from '@/components/semri/userComponent/SzSelectUserByDept.vue';
|
||||
import SzDeptUserSelect from '@/components/semri/deptUserComponent/SzDeptUserModal.vue';
|
||||
|
||||
const componentMap = new Map<ComponentType, Component>();
|
||||
|
||||
@@ -182,6 +183,7 @@ componentMap.set('RoleSelect', RoleSelectInput);
|
||||
componentMap.set('JInputSelect', JInputSelect);
|
||||
componentMap.set('SzSelectUser', SzSelectUser);
|
||||
componentMap.set('SzSelectUserByDept',SzSelectUserByDept)
|
||||
componentMap.set('SzDeptUserSelect', SzDeptUserSelect)
|
||||
|
||||
export function add(compName: ComponentType, component: Component) {
|
||||
componentMap.set(compName, component);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div>
|
||||
<a-row class="j-select-row" type="flex" :gutter="8">
|
||||
<a-row v-if="!hideTrigger" class="j-select-row" type="flex" :gutter="8">
|
||||
<a-col class="left">
|
||||
<a-select
|
||||
:value="selectDisplayValue"
|
||||
@@ -18,7 +18,7 @@
|
||||
</a-row>
|
||||
<a-modal
|
||||
:width="1200"
|
||||
title="选择人员"
|
||||
:title="title"
|
||||
v-model:open="visible"
|
||||
centered
|
||||
:confirm-loading="confirmLoading"
|
||||
@@ -60,6 +60,9 @@ const props = withDefaults(
|
||||
isSpecial?: number;
|
||||
disabled?: boolean;
|
||||
multi?: boolean;
|
||||
valueKey?: 'id' | 'username';
|
||||
title?: string;
|
||||
hideTrigger?: boolean;
|
||||
}>(),
|
||||
{
|
||||
value: '',
|
||||
@@ -69,10 +72,13 @@ const props = withDefaults(
|
||||
isSpecial: 0,
|
||||
disabled: false,
|
||||
multi: true,
|
||||
valueKey: 'username',
|
||||
title: '选择人员',
|
||||
hideTrigger: false,
|
||||
}
|
||||
);
|
||||
|
||||
const emit = defineEmits(['update:value', 'change']);
|
||||
const emit = defineEmits(['update:value', 'change', 'confirm']);
|
||||
|
||||
const userStore = useUserStore();
|
||||
const visible = ref(false);
|
||||
@@ -100,11 +106,12 @@ watch(
|
||||
{ immediate: true }
|
||||
);
|
||||
|
||||
async function loadUsersByUsernames(usernames: string) {
|
||||
async function loadUsersByUsernames(valueStr: string) {
|
||||
try {
|
||||
const paramKey = props.valueKey === 'id' ? 'id' : 'username';
|
||||
const res: any = await defHttp.get({
|
||||
url: '/sys/user/queryUserComponentData',
|
||||
params: { username: usernames, isMultiTranslate: 'true', pageNo: 1, pageSize: 9999 },
|
||||
params: { [paramKey]: valueStr, isMultiTranslate: 'true', pageNo: 1, pageSize: 9999 },
|
||||
});
|
||||
innerSelectedUsers.value = [...(res.records || res)];
|
||||
} catch {
|
||||
@@ -118,6 +125,17 @@ function openModal() {
|
||||
visible.value = true;
|
||||
}
|
||||
|
||||
async function open() {
|
||||
if (props.disabled) return;
|
||||
if (props.value) {
|
||||
await loadUsersByUsernames(props.value);
|
||||
} else {
|
||||
innerSelectedUsers.value = [];
|
||||
}
|
||||
tempSelectedUsers.value = [...innerSelectedUsers.value];
|
||||
visible.value = true;
|
||||
}
|
||||
|
||||
function handleTempUsersChange(users: UserItem[]) {
|
||||
tempSelectedUsers.value = [...users];
|
||||
}
|
||||
@@ -128,15 +146,19 @@ function clearTemp() {
|
||||
|
||||
function handleOk() {
|
||||
innerSelectedUsers.value = [...tempSelectedUsers.value];
|
||||
const usernames = innerSelectedUsers.value.map((u) => u.username).join(',');
|
||||
emit('update:value', usernames);
|
||||
emit('change', usernames);
|
||||
const keyValue = innerSelectedUsers.value.map((u) => u[props.valueKey]).join(',');
|
||||
const nameValue = innerSelectedUsers.value.map((u) => u.realname).join(',');
|
||||
emit('update:value', keyValue);
|
||||
emit('change', keyValue);
|
||||
emit('confirm', keyValue, nameValue);
|
||||
visible.value = false;
|
||||
}
|
||||
|
||||
function handleCancel() {
|
||||
visible.value = false;
|
||||
}
|
||||
|
||||
defineExpose({ open });
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
:columns="columns"
|
||||
:data-source="dataSource"
|
||||
:pagination="ipagination"
|
||||
:row-selection="{ selectedRowKeys: selectedRowKeys, onSelectAll: onSelectAll, onSelect: onSelect, type: getType }"
|
||||
:row-selection="{ selectedRowKeys: selectedRowKeys, onSelectAll: onSelectAll, onSelect: onSelect, type: getType, preserveSelectedRowKeys: true }"
|
||||
:loading="loading"
|
||||
@change="handleTableChange"
|
||||
:custom-row="customRow"
|
||||
@@ -291,22 +291,20 @@ function onSelect(record: UserItem, selected: boolean) {
|
||||
} else {
|
||||
deleteIfExist(selectedRows.value, record, 'id');
|
||||
}
|
||||
selectedRows.value.sort((a, b) => (a.sortno || 0) - (b.sortno || 0));
|
||||
emit('update:checkedUser', selectedRows.value);
|
||||
}
|
||||
|
||||
function onSelectAll(selected: boolean, selectedRecords: UserItem[], changeRecords: UserItem[]) {
|
||||
function onSelectAll(selected: boolean, _selectedRecords: UserItem[], changeRecords: UserItem[]) {
|
||||
const changedRows = Array.isArray(changeRecords) ? changeRecords.filter(Boolean) : [];
|
||||
if (selected) {
|
||||
selectedRecords.forEach((item) => {
|
||||
changedRows.forEach((item) => {
|
||||
pushIfNotExist(selectedRows.value, item, 'id');
|
||||
});
|
||||
} else {
|
||||
const rowsToRemove = changeRecords && changeRecords.length > 0 ? changeRecords : dataSource.value;
|
||||
rowsToRemove.forEach((item) => {
|
||||
changedRows.forEach((item) => {
|
||||
deleteIfExist(selectedRows.value, item, 'id');
|
||||
});
|
||||
}
|
||||
selectedRows.value.sort((a, b) => (a.sortno || 0) - (b.sortno || 0));
|
||||
emit('update:checkedUser', selectedRows.value);
|
||||
}
|
||||
|
||||
@@ -345,7 +343,6 @@ function selectAll() {
|
||||
allUserList.value.forEach((item) => {
|
||||
pushIfNotExist(selectedRows.value, item, 'id');
|
||||
});
|
||||
selectedRows.value.sort((a, b) => (a.sortno || 0) - (b.sortno || 0));
|
||||
emit('update:checkedUser', selectedRows.value);
|
||||
}
|
||||
|
||||
@@ -370,7 +367,6 @@ function customRow(record: UserItem) {
|
||||
} else {
|
||||
pushIfNotExist(selectedRows.value, record, 'id');
|
||||
}
|
||||
selectedRows.value.sort((a, b) => (a.sortno || 0) - (b.sortno || 0));
|
||||
emit('update:checkedUser', selectedRows.value);
|
||||
},
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user