申请人查询修改

This commit is contained in:
liyang 2024-12-13 12:23:56 +08:00
parent ca24c9b096
commit bcbae0eece
7 changed files with 206 additions and 99 deletions

View File

@ -5,7 +5,7 @@ export interface FlowInstanceQuery extends PageQuery {
nodeName?: string; nodeName?: string;
flowCode?: string; flowCode?: string;
flowName?: string; flowName?: string;
nickName?: string; createByIds?: string[] | number[];
businessId?: string; businessId?: string;
} }

View File

@ -4,7 +4,7 @@ export interface TaskQuery extends PageQuery {
nodeName?: string; nodeName?: string;
flowCode?: string; flowCode?: string;
flowName?: string; flowName?: string;
nickName?: string; createByIds?: string[] | number[];
} }
export interface ParticipantVo { export interface ParticipantVo {

View File

@ -32,8 +32,10 @@
<div v-show="showSearch" class="mb-[10px]"> <div v-show="showSearch" class="mb-[10px]">
<el-card shadow="hover"> <el-card shadow="hover">
<el-form v-show="showSearch" ref="queryFormRef" :model="queryParams" :inline="true"> <el-form v-show="showSearch" ref="queryFormRef" :model="queryParams" :inline="true">
<el-form-item label="申请人" prop="nickName"> <el-form-item>
<el-input v-model="queryParams.nickName" placeholder="请输入申请人" @keyup.enter="handleQuery" /> <el-badge :value="userSelectCount" :max="10" class="item">
<el-button type="primary" @click="openUserSelect">选择申请人</el-button>
</el-badge>
</el-form-item> </el-form-item>
<el-form-item label="任务名称" prop="nodeName"> <el-form-item label="任务名称" prop="nodeName">
<el-input v-model="queryParams.nodeName" placeholder="请输入任务名称" @keyup.enter="handleQuery" /> <el-input v-model="queryParams.nodeName" placeholder="请输入任务名称" @keyup.enter="handleQuery" />
@ -74,7 +76,7 @@
</el-table-column> </el-table-column>
<el-table-column align="center" prop="nodeName" label="任务名称"></el-table-column> <el-table-column align="center" prop="nodeName" label="任务名称"></el-table-column>
<el-table-column align="center" prop="flowCode" label="流程定义编码"></el-table-column> <el-table-column align="center" prop="flowCode" label="流程定义编码"></el-table-column>
<el-table-column align="center" prop="nickName" label="申请人"></el-table-column> <el-table-column align="center" prop="createByName" label="申请人"></el-table-column>
<el-table-column align="center" prop="version" label="版本号" width="90"> <el-table-column align="center" prop="version" label="版本号" width="90">
<template #default="scope"> v{{ scope.row.version }}.0</template> <template #default="scope"> v{{ scope.row.version }}.0</template>
</el-table-column> </el-table-column>
@ -166,6 +168,9 @@
</el-card> </el-card>
</el-dialog> </el-dialog>
<!-- 流程变量结束 --> <!-- 流程变量结束 -->
<!-- 申请人 -->
<UserSelect ref="userSelectRef" :multiple="true" :data="selectUserIds" @confirm-call-back="userSelectCallBack"></UserSelect>
</div> </div>
</template> </template>
@ -178,12 +183,16 @@ import workflowCommon from '@/api/workflow/workflowCommon';
import { RouterJumpVo } from '@/api/workflow/workflowCommon/types'; import { RouterJumpVo } from '@/api/workflow/workflowCommon/types';
import VueJsonPretty from 'vue-json-pretty'; import VueJsonPretty from 'vue-json-pretty';
import 'vue-json-pretty/lib/styles.css'; import 'vue-json-pretty/lib/styles.css';
import UserSelect from '@/components/UserSelect/index.vue';
// //
const { proxy } = getCurrentInstance() as ComponentInternalInstance; const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const { wf_business_status } = toRefs<any>(proxy?.useDict('wf_business_status')); const { wf_business_status } = toRefs<any>(proxy?.useDict('wf_business_status'));
const queryFormRef = ref<ElFormInstance>(); const queryFormRef = ref<ElFormInstance>();
const categoryTreeRef = ref<ElTreeInstance>(); const categoryTreeRef = ref<ElTreeInstance>();
import { ref } from 'vue';
import { UserVO } from '@/api/system/user/types';
const userSelectRef = ref<InstanceType<typeof UserSelect>>();
// //
const loading = ref(true); const loading = ref(true);
// //
@ -225,6 +234,11 @@ type CategoryOption = {
const tab = ref('running'); const tab = ref('running');
// //
const deleteReason = ref(''); const deleteReason = ref('');
//id
const selectUserIds = ref<Array<number | string>>([]);
//
const userSelectCount = ref(0);
// //
const queryParams = ref<FlowInstanceQuery>({ const queryParams = ref<FlowInstanceQuery>({
pageNum: 1, pageNum: 1,
@ -232,7 +246,7 @@ const queryParams = ref<FlowInstanceQuery>({
nodeName: undefined, nodeName: undefined,
flowName: undefined, flowName: undefined,
flowCode: undefined, flowCode: undefined,
nickName: undefined, createByIds: [],
categoryCode: undefined categoryCode: undefined
}); });
@ -282,6 +296,8 @@ const resetQuery = () => {
queryParams.value.categoryCode = ''; queryParams.value.categoryCode = '';
queryParams.value.pageNum = 1; queryParams.value.pageNum = 1;
queryParams.value.pageSize = 10; queryParams.value.pageSize = 10;
queryParams.value.createByIds = [];
userSelectCount.value = 0;
handleQuery(); handleQuery();
}; };
// //
@ -384,6 +400,19 @@ function formatToJsonObject(data: string) {
} }
} }
//
const openUserSelect = () => {
userSelectRef.value.open();
};
//
const userSelectCallBack = (data: UserVO[]) => {
userSelectCount.value = 0;
if (data && data.length > 0) {
userSelectCount.value = data.length;
selectUserIds.value = data.map((item) => item.userId);
queryParams.value.createByIds = selectUserIds.value;
}
};
onMounted(() => { onMounted(() => {
getProcessInstanceRunningList(); getProcessInstanceRunningList();
getTreeselect(); getTreeselect();

View File

@ -12,8 +12,10 @@
<div v-show="showSearch" class="mb-[10px]"> <div v-show="showSearch" class="mb-[10px]">
<el-card shadow="hover"> <el-card shadow="hover">
<el-form v-show="showSearch" ref="queryFormRef" :model="queryParams" :inline="true"> <el-form v-show="showSearch" ref="queryFormRef" :model="queryParams" :inline="true">
<el-form-item label="申请人" prop="nickName"> <el-form-item>
<el-input v-model="queryParams.nickName" placeholder="请输入申请人" @keyup.enter="handleQuery" /> <el-badge :value="userSelectCount" :max="10" class="item">
<el-button type="primary" @click="openUserSelect">选择申请人</el-button>
</el-badge>
</el-form-item> </el-form-item>
<el-form-item label="任务名称" prop="nodeName"> <el-form-item label="任务名称" prop="nodeName">
<el-input v-model="queryParams.nodeName" placeholder="请输入任务名称" @keyup.enter="handleQuery" /> <el-input v-model="queryParams.nodeName" placeholder="请输入任务名称" @keyup.enter="handleQuery" />
@ -53,7 +55,7 @@
<template #default="scope"> v{{ scope.row.version }}.0</template> <template #default="scope"> v{{ scope.row.version }}.0</template>
</el-table-column> </el-table-column>
<el-table-column align="center" prop="nodeName" label="任务名称"></el-table-column> <el-table-column align="center" prop="nodeName" label="任务名称"></el-table-column>
<el-table-column align="center" prop="nickName" label="申请人"></el-table-column> <el-table-column align="center" prop="createByName" label="申请人"></el-table-column>
<el-table-column align="center" label="办理人"> <el-table-column align="center" label="办理人">
<template #default="scope"> <template #default="scope">
<template v-if="tab === 'waiting'"> <template v-if="tab === 'waiting'">
@ -108,6 +110,8 @@
<UserSelect ref="userSelectRef" :multiple="false" @confirm-call-back="submitCallback"></UserSelect> <UserSelect ref="userSelectRef" :multiple="false" @confirm-call-back="submitCallback"></UserSelect>
<!-- 选人组件 --> <!-- 选人组件 -->
<processMeddle ref="processMeddleRef" @submitCallback="getWaitingList"></processMeddle> <processMeddle ref="processMeddleRef" @submitCallback="getWaitingList"></processMeddle>
<!-- 申请人 -->
<UserSelect ref="applyUserSelectRef" :multiple="true" :data="selectUserIds" @confirm-call-back="userSelectCallBack"></UserSelect>
</div> </div>
</template> </template>
@ -118,11 +122,13 @@ import { TaskQuery } from '@/api/workflow/task/types';
import workflowCommon from '@/api/workflow/workflowCommon'; import workflowCommon from '@/api/workflow/workflowCommon';
import { RouterJumpVo } from '@/api/workflow/workflowCommon/types'; import { RouterJumpVo } from '@/api/workflow/workflowCommon/types';
import processMeddle from '@/components/Process/processMeddle'; import processMeddle from '@/components/Process/processMeddle';
import { UserVO } from '@/api/system/user/types';
// //
const userSelectRef = ref<InstanceType<typeof UserSelect>>(); const userSelectRef = ref<InstanceType<typeof UserSelect>>();
// //
const processMeddleRef = ref<InstanceType<typeof processMeddle>>(); const processMeddleRef = ref<InstanceType<typeof processMeddle>>();
//
const applyUserSelectRef = ref<InstanceType<typeof UserSelect>>();
const queryFormRef = ref<ElFormInstance>(); const queryFormRef = ref<ElFormInstance>();
const { proxy } = getCurrentInstance() as ComponentInternalInstance; const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const { wf_business_status } = toRefs<any>(proxy?.useDict('wf_business_status')); const { wf_business_status } = toRefs<any>(proxy?.useDict('wf_business_status'));
@ -142,6 +148,10 @@ const total = ref(0);
// //
const taskList = ref([]); const taskList = ref([]);
const title = ref(''); const title = ref('');
//id
const selectUserIds = ref<Array<number | string>>([]);
//
const userSelectCount = ref(0);
// //
const queryParams = ref<TaskQuery>({ const queryParams = ref<TaskQuery>({
pageNum: 1, pageNum: 1,
@ -149,7 +159,7 @@ const queryParams = ref<TaskQuery>({
nodeName: undefined, nodeName: undefined,
flowName: undefined, flowName: undefined,
flowCode: undefined, flowCode: undefined,
nickName: undefined createByIds: []
}); });
const tab = ref('waiting'); const tab = ref('waiting');
@ -166,6 +176,8 @@ const resetQuery = () => {
queryFormRef.value?.resetFields(); queryFormRef.value?.resetFields();
queryParams.value.pageNum = 1; queryParams.value.pageNum = 1;
queryParams.value.pageSize = 10; queryParams.value.pageSize = 10;
queryParams.value.createByIds = [];
userSelectCount.value = 0;
handleQuery(); handleQuery();
}; };
// //
@ -230,6 +242,19 @@ const handleView = (row) => {
const handleMeddle = (row) => { const handleMeddle = (row) => {
processMeddleRef.value.open(row.id); processMeddleRef.value.open(row.id);
}; };
//
const openUserSelect = () => {
applyUserSelectRef.value.open();
};
//
const userSelectCallBack = (data: UserVO[]) => {
userSelectCount.value = 0;
if (data && data.length > 0) {
userSelectCount.value = data.length;
selectUserIds.value = data.map((item) => item.userId);
queryParams.value.createByIds = selectUserIds.value;
}
};
onMounted(() => { onMounted(() => {
getWaitingList(); getWaitingList();
}); });

View File

@ -4,9 +4,6 @@
<div v-show="showSearch" class="mb-[10px]"> <div v-show="showSearch" class="mb-[10px]">
<el-card shadow="hover"> <el-card shadow="hover">
<el-form v-show="showSearch" ref="queryFormRef" :model="queryParams" :inline="true"> <el-form v-show="showSearch" ref="queryFormRef" :model="queryParams" :inline="true">
<el-form-item label="申请人" prop="nickName">
<el-input v-model="queryParams.nickName" placeholder="请输入申请人" @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="任务名称" prop="nodeName"> <el-form-item label="任务名称" prop="nodeName">
<el-input v-model="queryParams.nodeName" placeholder="请输入任务名称" @keyup.enter="handleQuery" /> <el-input v-model="queryParams.nodeName" placeholder="请输入任务名称" @keyup.enter="handleQuery" />
</el-form-item> </el-form-item>
@ -92,7 +89,6 @@ const queryParams = ref<TaskQuery>({
nodeName: undefined, nodeName: undefined,
flowName: undefined, flowName: undefined,
flowCode: undefined, flowCode: undefined,
nickName: undefined
}); });
/** 搜索按钮操作 */ /** 搜索按钮操作 */
const handleQuery = () => { const handleQuery = () => {

View File

@ -4,8 +4,10 @@
<div v-show="showSearch" class="mb-[10px]"> <div v-show="showSearch" class="mb-[10px]">
<el-card shadow="hover"> <el-card shadow="hover">
<el-form v-show="showSearch" ref="queryFormRef" :model="queryParams" :inline="true"> <el-form v-show="showSearch" ref="queryFormRef" :model="queryParams" :inline="true">
<el-form-item label="申请人" prop="nickName"> <el-form-item>
<el-input v-model="queryParams.nickName" placeholder="请输入申请人" @keyup.enter="handleQuery" /> <el-badge :value="userSelectCount" :max="10" class="item">
<el-button type="primary" @click="openUserSelect">选择申请人</el-button>
</el-badge>
</el-form-item> </el-form-item>
<el-form-item label="任务名称" prop="nodeName"> <el-form-item label="任务名称" prop="nodeName">
<el-input v-model="queryParams.nodeName" placeholder="请输入任务名称" @keyup.enter="handleQuery" /> <el-input v-model="queryParams.nodeName" placeholder="请输入任务名称" @keyup.enter="handleQuery" />
@ -40,7 +42,7 @@
<template #default="scope"> v{{ scope.row.version }}.0</template> <template #default="scope"> v{{ scope.row.version }}.0</template>
</el-table-column> </el-table-column>
<el-table-column align="center" prop="nodeName" label="任务名称"></el-table-column> <el-table-column align="center" prop="nodeName" label="任务名称"></el-table-column>
<el-table-column align="center" prop="nickName" label="申请人"></el-table-column> <el-table-column align="center" prop="createByName" label="申请人"></el-table-column>
<el-table-column align="center" prop="approverName" label="办理人"> <el-table-column align="center" prop="approverName" label="办理人">
<template #default="scope"> <template #default="scope">
<el-tag type="success"> <el-tag type="success">
@ -73,6 +75,8 @@
@pagination="handleQuery" @pagination="handleQuery"
/> />
</el-card> </el-card>
<!-- 申请人 -->
<UserSelect ref="userSelectRef" :multiple="true" :data="selectUserIds" @confirm-call-back="userSelectCallBack"></UserSelect>
</div> </div>
</template> </template>
@ -86,6 +90,11 @@ const queryFormRef = ref<ElFormInstance>();
const { proxy } = getCurrentInstance() as ComponentInternalInstance; const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const { wf_business_status } = toRefs<any>(proxy?.useDict('wf_business_status')); const { wf_business_status } = toRefs<any>(proxy?.useDict('wf_business_status'));
const { wf_task_status } = toRefs<any>(proxy?.useDict('wf_task_status')); const { wf_task_status } = toRefs<any>(proxy?.useDict('wf_task_status'));
import UserSelect from '@/components/UserSelect';
import { ref } from 'vue';
import { UserVO } from '@/api/system/user/types';
const userSelectRef = ref<InstanceType<typeof UserSelect>>();
// //
const loading = ref(true); const loading = ref(true);
// //
@ -107,8 +116,12 @@ const queryParams = ref<TaskQuery>({
nodeName: undefined, nodeName: undefined,
flowName: undefined, flowName: undefined,
flowCode: undefined, flowCode: undefined,
nickName: undefined createByIds: []
}); });
//id
const selectUserIds = ref<Array<number | string>>([]);
//
const userSelectCount = ref(0);
/** 搜索按钮操作 */ /** 搜索按钮操作 */
const handleQuery = () => { const handleQuery = () => {
getFinishList(); getFinishList();
@ -118,6 +131,8 @@ const resetQuery = () => {
queryFormRef.value?.resetFields(); queryFormRef.value?.resetFields();
queryParams.value.pageNum = 1; queryParams.value.pageNum = 1;
queryParams.value.pageSize = 10; queryParams.value.pageSize = 10;
queryParams.value.createByIds = [];
userSelectCount.value = 0;
handleQuery(); handleQuery();
}; };
// //
@ -145,7 +160,19 @@ const handleView = (row: FlowTaskVO) => {
}); });
workflowCommon.routerJump(routerJumpVo, proxy); workflowCommon.routerJump(routerJumpVo, proxy);
}; };
//
const openUserSelect = () => {
userSelectRef.value.open();
};
//
const userSelectCallBack = (data: UserVO[]) => {
userSelectCount.value = 0;
if (data && data.length > 0) {
userSelectCount.value = data.length;
selectUserIds.value = data.map((item) => item.userId);
queryParams.value.createByIds = selectUserIds.value;
}
};
onMounted(() => { onMounted(() => {
getFinishList(); getFinishList();
}); });

View File

@ -4,8 +4,10 @@
<div v-show="showSearch" class="mb-[10px]"> <div v-show="showSearch" class="mb-[10px]">
<el-card shadow="hover"> <el-card shadow="hover">
<el-form v-show="showSearch" ref="queryFormRef" :model="queryParams" :inline="true"> <el-form v-show="showSearch" ref="queryFormRef" :model="queryParams" :inline="true">
<el-form-item label="申请人" prop="nickName"> <el-form-item>
<el-input v-model="queryParams.nickName" placeholder="请输入申请人" @keyup.enter="handleQuery" /> <el-badge :value="userSelectCount" :max="10" class="item">
<el-button type="primary" @click="openUserSelect">选择申请人</el-button>
</el-badge>
</el-form-item> </el-form-item>
<el-form-item label="任务名称" prop="nodeName"> <el-form-item label="任务名称" prop="nodeName">
<el-input v-model="queryParams.nodeName" placeholder="请输入任务名称" @keyup.enter="handleQuery" /> <el-input v-model="queryParams.nodeName" placeholder="请输入任务名称" @keyup.enter="handleQuery" />
@ -37,7 +39,7 @@
<el-table-column :show-overflow-tooltip="true" prop="flowName" align="center" label="流程定义名称"></el-table-column> <el-table-column :show-overflow-tooltip="true" prop="flowName" align="center" label="流程定义名称"></el-table-column>
<el-table-column align="center" prop="flowCode" label="流程定义编码"></el-table-column> <el-table-column align="center" prop="flowCode" label="流程定义编码"></el-table-column>
<el-table-column align="center" prop="nodeName" label="任务名称"></el-table-column> <el-table-column align="center" prop="nodeName" label="任务名称"></el-table-column>
<el-table-column align="center" prop="nickName" label="申请人"></el-table-column> <el-table-column align="center" prop="createByName" label="申请人"></el-table-column>
<el-table-column align="center" label="办理人"> <el-table-column align="center" label="办理人">
<template #default="scope"> <template #default="scope">
<template v-if="scope.row.transactorNames"> <template v-if="scope.row.transactorNames">
@ -70,6 +72,8 @@
@pagination="handleQuery" @pagination="handleQuery"
/> />
</el-card> </el-card>
<!-- 申请人 -->
<UserSelect ref="userSelectRef" :multiple="true" :data="selectUserIds" @confirm-call-back="userSelectCallBack"></UserSelect>
</div> </div>
</template> </template>
@ -78,8 +82,14 @@ import { pageByTaskWait } from '@/api/workflow/task';
import { TaskQuery, FlowTaskVO } from '@/api/workflow/task/types'; import { TaskQuery, FlowTaskVO } from '@/api/workflow/task/types';
import workflowCommon from '@/api/workflow/workflowCommon'; import workflowCommon from '@/api/workflow/workflowCommon';
import { RouterJumpVo } from '@/api/workflow/workflowCommon/types'; import { RouterJumpVo } from '@/api/workflow/workflowCommon/types';
const { proxy } = getCurrentInstance() as ComponentInternalInstance; const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const { wf_business_status } = toRefs<any>(proxy?.useDict('wf_business_status')); const { wf_business_status } = toRefs<any>(proxy?.useDict('wf_business_status'));
import UserSelect from '@/components/UserSelect';
import { ref } from 'vue';
import { UserVO } from '@/api/system/user/types';
const userSelectRef = ref<InstanceType<typeof UserSelect>>();
// //
const queryFormRef = ref<ElFormInstance>(); const queryFormRef = ref<ElFormInstance>();
// //
@ -96,6 +106,11 @@ const showSearch = ref(true);
const total = ref(0); const total = ref(0);
// //
const taskList = ref([]); const taskList = ref([]);
//id
const selectUserIds = ref<Array<number | string>>([]);
//
const userSelectCount = ref(0);
// //
const queryParams = ref<TaskQuery>({ const queryParams = ref<TaskQuery>({
pageNum: 1, pageNum: 1,
@ -103,7 +118,7 @@ const queryParams = ref<TaskQuery>({
nodeName: undefined, nodeName: undefined,
flowName: undefined, flowName: undefined,
flowCode: undefined, flowCode: undefined,
nickName: undefined createByIds: []
}); });
onMounted(() => { onMounted(() => {
getWaitingList(); getWaitingList();
@ -117,6 +132,8 @@ const resetQuery = () => {
queryFormRef.value?.resetFields(); queryFormRef.value?.resetFields();
queryParams.value.pageNum = 1; queryParams.value.pageNum = 1;
queryParams.value.pageSize = 10; queryParams.value.pageSize = 10;
queryParams.value.createByIds = [];
userSelectCount.value = 0;
handleQuery(); handleQuery();
}; };
// //
@ -145,4 +162,17 @@ const handleOpen = async (row: FlowTaskVO) => {
}); });
workflowCommon.routerJump(routerJumpVo, proxy); workflowCommon.routerJump(routerJumpVo, proxy);
}; };
//
const openUserSelect = () => {
userSelectRef.value.open();
};
//
const userSelectCallBack = (data: UserVO[]) => {
userSelectCount.value = 0;
if (data && data.length > 0) {
userSelectCount.value = data.length;
selectUserIds.value = data.map((item) => item.userId);
queryParams.value.createByIds = selectUserIds.value;
}
};
</script> </script>