!61 feat(dqinspecttask): 新增流程阶段筛选、调整状态功能,操作栏拆分为流程/表单两个下拉菜单
* feat(dqinspecttask): 新增流程阶段筛选、调整状态功能,操作栏拆分为流程/表单两个下拉菜单 * chore(xispeak): 更新 BPM_NODE_PERMISSIONS 节点权限配置,反馈流程补充默认审批意见 * fix(dqinspecttask): 发起流程表单去掉多余的抄送tab * fix(dqinspecttask): 发起流程补充deadline和requireFinishDate字段 * feat(dqinspecttask): 发起流程和销号流程按钮按已完成阶段数控制可见性 * refactor(xispeak): 部门领导指派意见使用翻译后的真实姓名 * refactor(xispeak): 提升常用操作到行内,删除时同步清除关联流程 * refactor(xispeak): 替换牵头部门选部门组件为SzSelectDept
This commit is contained in:
@@ -171,9 +171,9 @@ bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1&showFeedbackInfo=1&sh
|
|||||||
* **showFeedbackInfo** `1` —— 反馈信息区域
|
* **showFeedbackInfo** `1` —— 反馈信息区域
|
||||||
* **showAddFeedback** `0` —— 新增反馈按钮
|
* **showAddFeedback** `0` —— 新增反馈按钮
|
||||||
* **showEditFeedback** `0` —— 编辑/删除操作列
|
* **showEditFeedback** `0` —— 编辑/删除操作列
|
||||||
* **showDeptFeedback** `0` —— 按部门过滤反馈
|
* **showDeptFeedback** `1` —— 按部门过滤反馈
|
||||||
* **showJiJianFields** `0` —— 纪检字段列
|
* **showJiJianFields** `0` —— 纪检字段列
|
||||||
* bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1&showFeedbackInfo=1&showEditFeedback=1&nonJiJianFieldsReadonly=1&showJiJianFields=1
|
* bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1&showFeedbackInfo=1&showEditFeedback=1&nonJiJianFieldsReadonly=1&showJiJianFields=1&showDeptFeedback=1
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
@@ -186,9 +186,9 @@ bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1&showFeedbackInfo=1&sh
|
|||||||
* **showFeedbackInfo** `1` —— 反馈信息区域
|
* **showFeedbackInfo** `1` —— 反馈信息区域
|
||||||
* **showAddFeedback** `0` —— 新增反馈按钮
|
* **showAddFeedback** `0` —— 新增反馈按钮
|
||||||
* **showEditFeedback** `0` —— 编辑/删除操作列
|
* **showEditFeedback** `0` —— 编辑/删除操作列
|
||||||
* **showDeptFeedback** `0` —— 按部门过滤反馈
|
* **showDeptFeedback** `1` —— 按部门过滤反馈
|
||||||
* **showJiJianFields** `0` —— 纪检字段列
|
* **showJiJianFields** `0` —— 纪检字段列
|
||||||
* bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1&showFeedbackInfo=1
|
* bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1&showFeedbackInfo=1&showDeptFeedback=1
|
||||||
---
|
---
|
||||||
|
|
||||||
### 节点: <反馈流程纪检经办人监察>
|
### 节点: <反馈流程纪检经办人监察>
|
||||||
@@ -202,9 +202,9 @@ bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1&showFeedbackInfo=1&sh
|
|||||||
* **showEditFeedback** `1` —— 编辑/删除操作列
|
* **showEditFeedback** `1` —— 编辑/删除操作列
|
||||||
* **jiJianFieldsReadonly** `0` —— 弹窗内纪检字段只读
|
* **jiJianFieldsReadonly** `0` —— 弹窗内纪检字段只读
|
||||||
* **nonJiJianFieldsReadonly** `1` —— 弹窗内非纪检字段只读
|
* **nonJiJianFieldsReadonly** `1` —— 弹窗内非纪检字段只读
|
||||||
* **showDeptFeedback** `0` —— 按部门过滤反馈
|
* **showDeptFeedback** `1` —— 按部门过滤反馈
|
||||||
* **showJiJianFields** `1` —— 纪检字段列
|
* **showJiJianFields** `1` —— 纪检字段列
|
||||||
* bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1&showFeedbackInfo=1&showEditFeedback=1&nonJiJianFieldsReadonly=1&showJiJianFields=1
|
* bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1&showFeedbackInfo=1&showEditFeedback=1&nonJiJianFieldsReadonly=1&showJiJianFields=1&showDeptFeedback=1
|
||||||
---
|
---
|
||||||
|
|
||||||
### 节点: <反馈流程纪检负责人审批>
|
### 节点: <反馈流程纪检负责人审批>
|
||||||
@@ -217,9 +217,9 @@ bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1&showFeedbackInfo=1&sh
|
|||||||
* **showAddFeedback** `0` —— 新增反馈按钮
|
* **showAddFeedback** `0` —— 新增反馈按钮
|
||||||
* **showEditFeedback** `0` —— 编辑/删除操作列
|
* **showEditFeedback** `0` —— 编辑/删除操作列
|
||||||
* **jiJianFieldsReadonly** `0` —— 弹窗内纪检字段只读
|
* **jiJianFieldsReadonly** `0` —— 弹窗内纪检字段只读
|
||||||
* **showDeptFeedback** `0` —— 按部门过滤反馈
|
* **showDeptFeedback** `1` —— 按部门过滤反馈
|
||||||
* **showJiJianFields** `1` —— 纪检字段列
|
* **showJiJianFields** `1` —— 纪检字段列
|
||||||
* bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1&showFeedbackInfo=1&showEditFeedback=0&showJiJianFields=1
|
* bg/xispeak/components/BgXiSpeakBPMForm?showProcessHandle=1&showFeedbackInfo=1&showEditFeedback=0&showJiJianFields=1&showDeptFeedback=1
|
||||||
---
|
---
|
||||||
|
|
||||||
### 节点: <督办部门经办人确认全部反馈事项>
|
### 节点: <督办部门经办人确认全部反馈事项>
|
||||||
|
|||||||
@@ -233,6 +233,14 @@ import { defHttp } from '/@/utils/http/axios';
|
|||||||
registerModal.value.edit(record);
|
registerModal.value.edit(record);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除事件(含关联流程)
|
||||||
|
*/
|
||||||
|
async function handleDeleteWithProcess(record) {
|
||||||
|
await withDrawXiSpeak({ id: record.id });
|
||||||
|
await deleteBgXiSpeak({ id: record.id }, success);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除事件
|
* 删除事件
|
||||||
*/
|
*/
|
||||||
@@ -472,6 +480,19 @@ import { defHttp } from '/@/utils/http/axios';
|
|||||||
onClick: handleEdit.bind(null, record),
|
onClick: handleEdit.bind(null, record),
|
||||||
auth: 'bg.xispeak:bg_xi_speak:edit',
|
auth: 'bg.xispeak:bg_xi_speak:edit',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
label: '删除',
|
||||||
|
popConfirm: {
|
||||||
|
title: '确定删除吗? 将同时删除该记录关联的所有流程信息',
|
||||||
|
confirm: handleDeleteWithProcess.bind(null, record),
|
||||||
|
placement: 'topLeft',
|
||||||
|
},
|
||||||
|
auth: 'bg.xispeak:bg_xi_speak:delete',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '查看反馈',
|
||||||
|
onClick: handleViewFeedback.bind(null, record),
|
||||||
|
},
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -488,20 +509,6 @@ import { defHttp } from '/@/utils/http/axios';
|
|||||||
label: '添加下级',
|
label: '添加下级',
|
||||||
onClick: handleAddSub.bind(null, { pid: record.id }),
|
onClick: handleAddSub.bind(null, { pid: record.id }),
|
||||||
},
|
},
|
||||||
{
|
|
||||||
label: '删除',
|
|
||||||
popConfirm: {
|
|
||||||
title: '确定删除吗?',
|
|
||||||
confirm: handleDelete.bind(null, record),
|
|
||||||
placement: 'topLeft',
|
|
||||||
},
|
|
||||||
auth: 'bg.xispeak:bg_xi_speak:delete',
|
|
||||||
},
|
|
||||||
// {
|
|
||||||
// label: '审批进度',
|
|
||||||
// onClick: handlePreviewPic.bind(null, record),
|
|
||||||
// ifShow: !!record.bpmStatus && record.bpmStatus !== '1',
|
|
||||||
// },
|
|
||||||
{
|
{
|
||||||
label: '查询督办流程',
|
label: '查询督办流程',
|
||||||
onClick: handleQueryProcess.bind(null, record),
|
onClick: handleQueryProcess.bind(null, record),
|
||||||
@@ -515,10 +522,6 @@ import { defHttp } from '/@/utils/http/axios';
|
|||||||
},
|
},
|
||||||
ifShow: !!record.bpmStatus && record.bpmStatus !== '1',
|
ifShow: !!record.bpmStatus && record.bpmStatus !== '1',
|
||||||
},
|
},
|
||||||
{
|
|
||||||
label: '查看反馈',
|
|
||||||
onClick: handleViewFeedback.bind(null, record),
|
|
||||||
},
|
|
||||||
];
|
];
|
||||||
|
|
||||||
if (record.bpmStatus == '1' || !record.bpmStatus) {
|
if (record.bpmStatus == '1' || !record.bpmStatus) {
|
||||||
|
|||||||
@@ -278,6 +278,7 @@
|
|||||||
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
||||||
import Icon from '/@/components/Icon/index';
|
import Icon from '/@/components/Icon/index';
|
||||||
import { bgXiSpeakFeedbackList, bgXiSpeakFeedbackListWithDept, bgXiSpeakFeedbackDelete, saveBpmForm, saveSubApprove } from '../BgXiSpeak.api';
|
import { bgXiSpeakFeedbackList, bgXiSpeakFeedbackListWithDept, bgXiSpeakFeedbackDelete, saveBpmForm, saveSubApprove } from '../BgXiSpeak.api';
|
||||||
|
import { getUserList } from '/@/api/common/api';
|
||||||
import { usePermission } from '/@/hooks/web/usePermission';
|
import { usePermission } from '/@/hooks/web/usePermission';
|
||||||
import TaskHandleInnerContent from '/@/views/super/bpm/process/personalOffice/myHandleTask/content/TaskHandleInnerContent.vue';
|
import TaskHandleInnerContent from '/@/views/super/bpm/process/personalOffice/myHandleTask/content/TaskHandleInnerContent.vue';
|
||||||
import BgXiSpeakBPMFeedbackModal from './BgXiSpeakBPMFeedbackModal.vue';
|
import BgXiSpeakBPMFeedbackModal from './BgXiSpeakBPMFeedbackModal.vue';
|
||||||
@@ -318,6 +319,8 @@ import { PARTY_COMMITTEE_DEPT_ID, SDW_LEADER_ROLE_ID } from '/@/constant/supervi
|
|||||||
const showFeedbackDetail = ref(true);
|
const showFeedbackDetail = ref(true);
|
||||||
const feedbackList = ref<any[]>([]);
|
const feedbackList = ref<any[]>([]);
|
||||||
const subApproveUser = ref('');
|
const subApproveUser = ref('');
|
||||||
|
const subApproveUserNameText = ref('');
|
||||||
|
const userResolveVersion = ref(0);
|
||||||
const isEnd = ref(0);
|
const isEnd = ref(0);
|
||||||
|
|
||||||
const mainForm = reactive<Record<string, any>>({
|
const mainForm = reactive<Record<string, any>>({
|
||||||
@@ -465,6 +468,14 @@ import { PARTY_COMMITTEE_DEPT_ID, SDW_LEADER_ROLE_ID } from '/@/constant/supervi
|
|||||||
Task_1v9ce78: buildDeptLeaderAssignReason,
|
Task_1v9ce78: buildDeptLeaderAssignReason,
|
||||||
Task_1w4vxgc: buildApproveReason,
|
Task_1w4vxgc: buildApproveReason,
|
||||||
Task_1wfkrvj: buildApproveReason,
|
Task_1wfkrvj: buildApproveReason,
|
||||||
|
// 反馈流程节点
|
||||||
|
Task_005iiwi: buildApproveReason,
|
||||||
|
Task_06di2wf: buildApproveReason,
|
||||||
|
Task_0bahwr8: buildJiJianCheckReason,
|
||||||
|
Task_0sialna: buildDeptLeaderDirectFeedbackReason,
|
||||||
|
Task_12vdqzv: buildDeptHandlerFeedbackReason,
|
||||||
|
Task_13olnz1: buildSuperviseCheckReason,
|
||||||
|
Task_1l650tz: buildApproveReason,
|
||||||
};
|
};
|
||||||
|
|
||||||
const defaultHandleReason = computed(() => {
|
const defaultHandleReason = computed(() => {
|
||||||
@@ -481,7 +492,7 @@ import { PARTY_COMMITTEE_DEPT_ID, SDW_LEADER_ROLE_ID } from '/@/constant/supervi
|
|||||||
}
|
}
|
||||||
|
|
||||||
function buildDeptLeaderAssignReason() {
|
function buildDeptLeaderAssignReason() {
|
||||||
const userNameText = subApproveUser.value || '';
|
const userNameText = normalizeDeptNames(subApproveUserNameText.value || subApproveUser.value);
|
||||||
return userNameText ? `请${userNameText}办理。` : '';
|
return userNameText ? `请${userNameText}办理。` : '';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -528,6 +539,14 @@ import { PARTY_COMMITTEE_DEPT_ID, SDW_LEADER_ROLE_ID } from '/@/constant/supervi
|
|||||||
{ immediate: true }
|
{ immediate: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
watch(
|
||||||
|
subApproveUser,
|
||||||
|
(value) => {
|
||||||
|
resolveSubApproveUserName(value);
|
||||||
|
},
|
||||||
|
{ immediate: true }
|
||||||
|
);
|
||||||
|
|
||||||
async function initFormData() {
|
async function initFormData() {
|
||||||
const dataId = props.formData?.dataId;
|
const dataId = props.formData?.dataId;
|
||||||
if (!dataId) {
|
if (!dataId) {
|
||||||
@@ -724,6 +743,54 @@ import { PARTY_COMMITTEE_DEPT_ID, SDW_LEADER_ROLE_ID } from '/@/constant/supervi
|
|||||||
.join(',');
|
.join(',');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function normalizeDeptNames(value: any) {
|
||||||
|
return splitDeptNames(value).join('、');
|
||||||
|
}
|
||||||
|
|
||||||
|
function splitDeptNames(value: any) {
|
||||||
|
return String(value || '')
|
||||||
|
.split(/[,,;;、]/)
|
||||||
|
.map((item) => item.trim())
|
||||||
|
.filter(Boolean);
|
||||||
|
}
|
||||||
|
|
||||||
|
async function resolveSubApproveUserName(value: any) {
|
||||||
|
const resolveVersion = ++userResolveVersion.value;
|
||||||
|
const usernames = normalizeUsernameList(value);
|
||||||
|
if (!usernames) {
|
||||||
|
subApproveUserNameText.value = '';
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
subApproveUserNameText.value = normalizeDeptNames(usernames);
|
||||||
|
try {
|
||||||
|
const res = await getUserList({ username: usernames, isMultiTranslate: 'true', pageNo: 1, pageSize: 999 });
|
||||||
|
if (resolveVersion !== userResolveVersion.value) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const records = res?.records || res?.result?.records || res || [];
|
||||||
|
const userNameMap = Array.isArray(records)
|
||||||
|
? records.reduce((cache: Record<string, string>, item: any) => {
|
||||||
|
const username = String(item?.username || '').trim();
|
||||||
|
const realname = String(item?.realname || item?.name || '').trim();
|
||||||
|
if (username && realname) {
|
||||||
|
cache[username] = realname;
|
||||||
|
}
|
||||||
|
return cache;
|
||||||
|
}, {})
|
||||||
|
: {};
|
||||||
|
const names = usernames
|
||||||
|
.split(',')
|
||||||
|
.map((username) => userNameMap[username] || username)
|
||||||
|
.filter(Boolean);
|
||||||
|
subApproveUserNameText.value = normalizeDeptNames(names.join(','));
|
||||||
|
} catch {
|
||||||
|
if (resolveVersion === userResolveVersion.value) {
|
||||||
|
subApproveUserNameText.value = normalizeDeptNames(usernames);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function handleProcessSuccess() {
|
function handleProcessSuccess() {
|
||||||
emit('success');
|
emit('success');
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,7 +45,7 @@
|
|||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="牵头部门" v-bind="validateInfos.implDept" id="BgXiSpeakForm-implDept" name="implDept">
|
<a-form-item label="牵头部门" v-bind="validateInfos.implDept" id="BgXiSpeakForm-implDept" name="implDept">
|
||||||
<j-select-dept v-model:value="formData.implDept" :multiple="true" placeholder="请选择牵头部门" checkStrictly allow-clear />
|
<SzSelectDept v-model:value="formData.implDept" :multiple="true" checkStrictly allow-clear />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
@@ -122,7 +122,7 @@
|
|||||||
import { ref, reactive, defineExpose, nextTick, unref, defineProps, computed, onMounted } from 'vue';
|
import { ref, reactive, defineExpose, nextTick, unref, defineProps, computed, onMounted } from 'vue';
|
||||||
import { defHttp } from '/@/utils/http/axios';
|
import { defHttp } from '/@/utils/http/axios';
|
||||||
import { useMessage } from '/@/hooks/web/useMessage';
|
import { useMessage } from '/@/hooks/web/useMessage';
|
||||||
import JSelectDept from '/@/components/Form/src/jeecg/components/JSelectDept.vue';
|
import SzSelectDept from '/@/components/Form/src/jeecg/components/SzSelectDept.vue';
|
||||||
import DeptRoleUserSelectDropDown from '/@/components/semri/userComponent/DeptRoleUserSelectDropDown.vue';
|
import DeptRoleUserSelectDropDown from '/@/components/semri/userComponent/DeptRoleUserSelectDropDown.vue';
|
||||||
import JTreeSelect from '/@/components/Form/src/jeecg/components/JTreeSelect.vue';
|
import JTreeSelect from '/@/components/Form/src/jeecg/components/JTreeSelect.vue';
|
||||||
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
||||||
|
|||||||
@@ -13,10 +13,18 @@
|
|||||||
<a-col :lg="8">
|
<a-col :lg="8">
|
||||||
<a-form-item name="measureResLeader">
|
<a-form-item name="measureResLeader">
|
||||||
<template #label><span title="措施责任领导">措施责任领导</span></template>
|
<template #label><span title="措施责任领导">措施责任领导</span></template>
|
||||||
<SzDeptUserModal
|
<SzDeptUserModal v-model:value="queryParam.measureResLeader" placeholder="请选择措施责任领导" />
|
||||||
v-model:value="queryParam.measureResLeader"
|
</a-form-item>
|
||||||
placeholder="请选择措施责任领导"
|
</a-col>
|
||||||
/>
|
<a-col :lg="6">
|
||||||
|
<a-form-item name="completedStage" label="流程阶段">
|
||||||
|
<a-select v-model:value="completedStageFilter" placeholder="请选择" allow-clear @change="handleCompletedStageChange">
|
||||||
|
<a-select-option value="0">未发起巡视整改流程</a-select-option>
|
||||||
|
<a-select-option value="1">正在巡视整改流程</a-select-option>
|
||||||
|
<a-select-option value="2">巡视整改流程结束</a-select-option>
|
||||||
|
<a-select-option value="3">正在巡视整改销号流程</a-select-option>
|
||||||
|
<a-select-option value="4">巡视整改销号流程结束</a-select-option>
|
||||||
|
</a-select>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<template v-if="toggleSearchStatus">
|
<template v-if="toggleSearchStatus">
|
||||||
@@ -72,7 +80,12 @@
|
|||||||
</template>
|
</template>
|
||||||
<!--操作栏-->
|
<!--操作栏-->
|
||||||
<template #action="{ record }">
|
<template #action="{ record }">
|
||||||
<TableAction :actions="getTableAction(record)" :dropDownActions="getDropDownAction(record)" />
|
<Dropdown :trigger="['hover']" :dropMenuList="getFlowMenuList(record)" popconfirm>
|
||||||
|
<a-button type="link" size="small">流程操作 <Icon icon="mdi-light:chevron-down" /></a-button>
|
||||||
|
</Dropdown>
|
||||||
|
<Dropdown :trigger="['hover']" :dropMenuList="getFormMenuList(record)" popconfirm>
|
||||||
|
<a-button type="link" size="small">表单操作 <Icon icon="mdi-light:chevron-down" /></a-button>
|
||||||
|
</Dropdown>
|
||||||
</template>
|
</template>
|
||||||
<!--字段回显插槽-->
|
<!--字段回显插槽-->
|
||||||
<template v-slot:bodyCell="{ column, record, index, text }"> </template>
|
<template v-slot:bodyCell="{ column, record, index, text }"> </template>
|
||||||
@@ -89,7 +102,8 @@
|
|||||||
|
|
||||||
<script lang="ts" name="dqinspecttask-dqInspectTask" setup>
|
<script lang="ts" name="dqinspecttask-dqInspectTask" setup>
|
||||||
import { ref, reactive, computed, unref } from 'vue';
|
import { ref, reactive, computed, unref } from 'vue';
|
||||||
import { BasicTable, useTable, TableAction } from '/@/components/Table';
|
import { BasicTable, useTable } from '/@/components/Table';
|
||||||
|
import { Dropdown } from '/@/components/Dropdown';
|
||||||
import { useListPage } from '/@/hooks/system/useListPage';
|
import { useListPage } from '/@/hooks/system/useListPage';
|
||||||
import { useModal } from '/@/components/Modal';
|
import { useModal } from '/@/components/Modal';
|
||||||
import DqInspectTaskModal from './components/DqInspectTaskModal.vue';
|
import DqInspectTaskModal from './components/DqInspectTaskModal.vue';
|
||||||
@@ -98,9 +112,11 @@
|
|||||||
import { ledgerList, deleteOne, batchDelete, getImportUrl, getExportUrl, saveOrUpdate } from './DqInspectTask.api';
|
import { ledgerList, deleteOne, batchDelete, getImportUrl, getExportUrl, saveOrUpdate } from './DqInspectTask.api';
|
||||||
import { downloadFile } from '/@/utils/common/renderUtils';
|
import { downloadFile } from '/@/utils/common/renderUtils';
|
||||||
import { useMessage } from '/@/hooks/web/useMessage';
|
import { useMessage } from '/@/hooks/web/useMessage';
|
||||||
|
import Icon from '/@/components/Icon/index';
|
||||||
import SzSelectDept from '/@/components/Form/src/jeecg/components/SzSelectDept.vue';
|
import SzSelectDept from '/@/components/Form/src/jeecg/components/SzSelectDept.vue';
|
||||||
import SzDeptUserModal from '/@/components/semri/deptUserComponent/SzDeptUserModal.vue';
|
import SzDeptUserModal from '/@/components/semri/deptUserComponent/SzDeptUserModal.vue';
|
||||||
import { startProcessSchedules } from '/@/api/common/api';
|
import { startProcessSchedules } from '/@/api/common/api';
|
||||||
|
import { dateUtil } from '/@/utils/dateUtil';
|
||||||
import FlowScheduleStartModal from './components/DqInspectTaskFlowScheduleStartModal.vue';
|
import FlowScheduleStartModal from './components/DqInspectTaskFlowScheduleStartModal.vue';
|
||||||
import BusinessProcessListModal from '/src/components/semri/process/BusinessProcessListModal.vue';
|
import BusinessProcessListModal from '/src/components/semri/process/BusinessProcessListModal.vue';
|
||||||
|
|
||||||
@@ -114,6 +130,7 @@
|
|||||||
const feedbackViewModalRef = ref();
|
const feedbackViewModalRef = ref();
|
||||||
const flowScheduleModalRef = ref();
|
const flowScheduleModalRef = ref();
|
||||||
const businessProcessListModalRef = ref();
|
const businessProcessListModalRef = ref();
|
||||||
|
const completedStageFilter = ref();
|
||||||
const userStore = useUserStore();
|
const userStore = useUserStore();
|
||||||
const { createMessage } = useMessage();
|
const { createMessage } = useMessage();
|
||||||
//注册table数据
|
//注册table数据
|
||||||
@@ -248,65 +265,72 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 操作栏
|
* 流程操作菜单
|
||||||
*/
|
*/
|
||||||
function getTableAction(record) {
|
function getFlowMenuList(record) {
|
||||||
const actions = [
|
const list: any[] = [];
|
||||||
{
|
// if ((record.bpmStatus == '1' || !record.bpmStatus) && record.completedStage === 0) {
|
||||||
label: '查看反馈',
|
list.push({ text: '发起巡视整改流程', icon: 'ant-design:play-circle-outlined', event: 'process', onClick: handleProcess.bind(null, record) });
|
||||||
onClick: handleViewFeedback.bind(null, record),
|
// }
|
||||||
},
|
// if (record.bpmStatus && record.bpmStatus !== '1' && record.completedStage === 2) {
|
||||||
];
|
list.push({ text: '发起销号流程', icon: 'ant-design:stop-outlined', event: 'deleteProcess', onClick: handleDeleteProcess.bind(null, record) });
|
||||||
if (record.bpmStatus == '1' || !record.bpmStatus) {
|
// }
|
||||||
actions.push({
|
list.push({
|
||||||
label: '发起流程',
|
text: '查询督办流程',
|
||||||
onClick: handleProcess.bind(null, record),
|
icon: 'ant-design:search-outlined',
|
||||||
});
|
event: 'queryProcess',
|
||||||
}
|
divider: true,
|
||||||
if (record.bpmStatus && record.bpmStatus !== '1') {
|
onClick: handleQueryProcess.bind(null, record),
|
||||||
actions.push({
|
});
|
||||||
label: '发起销号流程',
|
// if (!record.bpmStatus || record.bpmStatus == '1') {
|
||||||
onClick: handleDeleteProcess.bind(null, record),
|
list.push({
|
||||||
});
|
text: '调整为未发起巡视整改流程状态',
|
||||||
}
|
icon: 'ant-design:rollback-outlined',
|
||||||
return actions;
|
event: 'adj0',
|
||||||
|
onClick: () => adjustCompletedStage(record, 0),
|
||||||
|
});
|
||||||
|
list.push({
|
||||||
|
text: '调整为未发起销号流程状态',
|
||||||
|
icon: 'ant-design:check-circle-outlined',
|
||||||
|
event: 'adj2',
|
||||||
|
onClick: () => adjustCompletedStage(record, 2),
|
||||||
|
});
|
||||||
|
list.push({
|
||||||
|
text: '调整为已完成销号流程状态',
|
||||||
|
icon: 'ant-design:check-circle-outlined',
|
||||||
|
event: 'adj4',
|
||||||
|
onClick: () => adjustCompletedStage(record, 4),
|
||||||
|
});
|
||||||
|
//}
|
||||||
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 下拉操作栏
|
* 表单操作菜单
|
||||||
*/
|
*/
|
||||||
function getDropDownAction(record) {
|
function getFormMenuList(record) {
|
||||||
let dropDownAction = [
|
return [
|
||||||
|
{ text: '查看反馈', icon: 'ant-design:eye-outlined', event: 'feedback', divider: true, onClick: handleViewFeedback.bind(null, record) },
|
||||||
|
{ text: '编辑', icon: 'ant-design:edit-outlined', event: 'edit', onClick: handleEdit.bind(null, record) },
|
||||||
|
{ text: '详情', icon: 'ant-design:file-text-outlined', event: 'detail', onClick: handleDetail.bind(null, record) },
|
||||||
{
|
{
|
||||||
label: '编辑',
|
text: '删除',
|
||||||
onClick: handleEdit.bind(null, record),
|
icon: 'ant-design:delete-outlined',
|
||||||
},
|
event: 'delete',
|
||||||
{
|
popConfirm: { title: '是否确认删除', confirm: handleDelete.bind(null, record), placement: 'topLeft' },
|
||||||
label: '详情',
|
|
||||||
onClick: handleDetail.bind(null, record),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: '删除',
|
|
||||||
popConfirm: {
|
|
||||||
title: '是否确认删除',
|
|
||||||
confirm: handleDelete.bind(null, record),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
// {
|
|
||||||
// label: '审批进度',
|
|
||||||
// onClick: handlePreviewPic.bind(null, record),
|
|
||||||
// },
|
|
||||||
{
|
|
||||||
label: '查询督办流程',
|
|
||||||
onClick: handleQueryProcess.bind(null, record),
|
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
return dropDownAction;
|
}
|
||||||
|
|
||||||
|
async function adjustCompletedStage(record, stage) {
|
||||||
|
await saveOrUpdate({ id: record.id, problemId: record.problemId, completedStage: stage }, true);
|
||||||
|
handleSuccess();
|
||||||
}
|
}
|
||||||
|
|
||||||
const FLOW_CODE = 'inspect_flow_create_01';
|
const FLOW_CODE = 'inspect_flow_create_01';
|
||||||
const FLOW_NAME = '巡视整改提升工作';
|
const FLOW_NAME = '巡视整改提升工作';
|
||||||
const BUSINESS_TABLE_NAME = 'dq_inspect_task';
|
const BUSINESS_TABLE_NAME = 'dq_inspect_task';
|
||||||
const FORM_URL = 'dq/inspectTask/components/DqInspectTaskBPMForm?showProcessHandle=1&showFeedbackInfo=1';
|
const FORM_URL = 'dq/inspectTask/components/DqInspectTaskBPMForm?showFeedbackInfo=1';
|
||||||
const DELETE_FLOW_CODE = 'dq_delete_01';
|
const DELETE_FLOW_CODE = 'dq_delete_01';
|
||||||
const DELETE_FLOW_NAME = '巡视整改提升工作-销号';
|
const DELETE_FLOW_NAME = '巡视整改提升工作-销号';
|
||||||
const DELETE_FORM_URL = 'dq/inspectTask/components/DqInspectTaskBPMForm?showFeedbackInfo=1';
|
const DELETE_FORM_URL = 'dq/inspectTask/components/DqInspectTaskBPMForm?showFeedbackInfo=1';
|
||||||
@@ -370,11 +394,14 @@
|
|||||||
content: record.improveMeasure || '',
|
content: record.improveMeasure || '',
|
||||||
deptId: options.deptId || record.measureResDept || '',
|
deptId: options.deptId || record.measureResDept || '',
|
||||||
deptLeaderId: record.measureResLeader || '',
|
deptLeaderId: record.measureResLeader || '',
|
||||||
|
requireFinishDate: record.deadline || undefined,
|
||||||
|
deadline: record.deadline || undefined,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
await startProcessSchedules(params);
|
await startProcessSchedules(params);
|
||||||
await saveOrUpdate({ id: record.id, problemId: record.problemId, bpmStatus: '2' }, true);
|
const nextStage = (record.completedStage || 0) + 1;
|
||||||
|
await saveOrUpdate({ id: record.id, problemId: record.problemId, bpmStatus: '2', completedStage: nextStage }, true);
|
||||||
createMessage.success('发起成功');
|
createMessage.success('发起成功');
|
||||||
handleSuccess();
|
handleSuccess();
|
||||||
}
|
}
|
||||||
@@ -443,6 +470,8 @@
|
|||||||
function searchReset() {
|
function searchReset() {
|
||||||
formRef.value.resetFields();
|
formRef.value.resetFields();
|
||||||
selectedRowKeys.value = [];
|
selectedRowKeys.value = [];
|
||||||
|
completedStageFilter.value = undefined;
|
||||||
|
delete queryParam.completedStage;
|
||||||
//刷新数据
|
//刷新数据
|
||||||
reload();
|
reload();
|
||||||
}
|
}
|
||||||
@@ -452,6 +481,15 @@
|
|||||||
* @param key
|
* @param key
|
||||||
* @param value
|
* @param value
|
||||||
*/
|
*/
|
||||||
|
function handleCompletedStageChange(value) {
|
||||||
|
if (value != null) {
|
||||||
|
queryParam.completedStage = Number(value);
|
||||||
|
} else {
|
||||||
|
delete queryParam.completedStage;
|
||||||
|
}
|
||||||
|
reload();
|
||||||
|
}
|
||||||
|
|
||||||
function handleFormJoinChange(key, value) {
|
function handleFormJoinChange(key, value) {
|
||||||
if (typeof value != 'string') {
|
if (typeof value != 'string') {
|
||||||
queryParam[key] = value.join(',');
|
queryParam[key] = value.join(',');
|
||||||
|
|||||||
Reference in New Issue
Block a user