Merge remote-tracking branch 'origin/master'
# Conflicts: # src/views/bg/xispeak/components/BgXiSpeakBPMForm.vue
This commit is contained in:
@@ -18,6 +18,8 @@ enum Api {
|
||||
startProcessSchedules = '/tasktask/taskTask/flow-schedules',
|
||||
queryByBusinessId = '/tasktask/taskTask/queryByBusinessId',
|
||||
deleteSingleProcess = '/tasktask/taskTask/deleteSingleProcess',
|
||||
deletePendingTask = '/tasktask/taskTask/deletePendingTask',
|
||||
updateTitleAndDeadline = '/tasktask/taskTask/updateTitleAndDeadline',
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -184,6 +186,22 @@ export const deleteSingleProcess = (params) => {
|
||||
return defHttp.post({ url: Api.deleteSingleProcess, params }, { joinParamsToUrl: true, isTransformResponse: false });
|
||||
};
|
||||
|
||||
/**
|
||||
* 删除未发起的待处理任务(无流程实例ID的周期性任务记录)
|
||||
* @param params { taskId: string }
|
||||
*/
|
||||
export const deletePendingTask = (params) => {
|
||||
return defHttp.post({ url: Api.deletePendingTask, params }, { joinParamsToUrl: true, isTransformResponse: false });
|
||||
};
|
||||
|
||||
/**
|
||||
* 修改流程标题和截止时间
|
||||
* @param params { taskId: string, title: string, requireFinishDate: string }
|
||||
*/
|
||||
export const updateTitleAndDeadline = (params) => {
|
||||
return defHttp.post({ url: Api.updateTitleAndDeadline, params }, { joinParamsToUrl: true, isTransformResponse: false });
|
||||
};
|
||||
|
||||
/**
|
||||
* 【用于评论功能】自定义文件上传-方法
|
||||
*/
|
||||
|
||||
@@ -8,6 +8,33 @@
|
||||
</BasicTable>
|
||||
</div>
|
||||
<BpmPictureModal @register="registerBpmModal" />
|
||||
<j-modal
|
||||
title="修改流程信息"
|
||||
:width="460"
|
||||
:visible="editModalVisible"
|
||||
:confirmLoading="editLoading"
|
||||
wrapClassName="edit-process-modal"
|
||||
@ok="handleEditConfirm"
|
||||
@cancel="handleEditCancel"
|
||||
cancelText="取消"
|
||||
>
|
||||
<div style="padding: 8px 16px 0;">
|
||||
<a-form :model="editForm" :label-col="{ style: { width: '100px' } }" :wrapper-col="{ span: 24 }">
|
||||
<a-form-item label="流程标题" style="margin-bottom: 14px;">
|
||||
<a-input v-model:value="editForm.title" placeholder="请输入流程标题" allow-clear />
|
||||
</a-form-item>
|
||||
<a-form-item label="要求完成日期" style="margin-bottom: 0;">
|
||||
<a-date-picker
|
||||
v-model:value="editForm.requireFinishDate"
|
||||
valueFormat="YYYY-MM-DD"
|
||||
placeholder="请选择要求完成日期"
|
||||
style="width: 100%"
|
||||
:getPopupContainer="(node) => node?.parentNode"
|
||||
/>
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</div>
|
||||
</j-modal>
|
||||
<j-modal
|
||||
title="审批历史"
|
||||
:width="approvalHistoryModalWidth"
|
||||
@@ -22,12 +49,12 @@
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { nextTick, ref } from 'vue';
|
||||
import { nextTick, reactive, ref } from 'vue';
|
||||
import { BasicColumn, BasicTable, TableAction, useTable } from '/@/components/Table';
|
||||
import JModal from '/@/components/Modal/src/JModal/JModal.vue';
|
||||
import { useModal } from '/@/components/Modal';
|
||||
import { columns } from './QueryProcessList.data';
|
||||
import { deleteSingleProcess, queryByBusinessId } from '/@/api/common/api';
|
||||
import { deleteSingleProcess, deletePendingTask, updateTitleAndDeadline, queryByBusinessId } from '/@/api/common/api';
|
||||
import { useMessage } from '/@/hooks/web/useMessage';
|
||||
import TaskApprovalHistoryContent from '/@/views/super/bpm/process/personalOffice/myHandleTask/content/TaskApprovalHistoryContent.vue';
|
||||
|
||||
@@ -51,6 +78,13 @@
|
||||
const approvalHistoryVisible = ref(false);
|
||||
const approvalHistoryFormData = ref<Recordable>({});
|
||||
const approvalHistoryRef = ref();
|
||||
const editModalVisible = ref(false);
|
||||
const editLoading = ref(false);
|
||||
const currentEditRecord = ref<Recordable>({});
|
||||
const editForm = reactive({
|
||||
title: '',
|
||||
requireFinishDate: undefined as string | undefined,
|
||||
});
|
||||
const [registerBpmModal, { openModal: bpmPicModal }] = useModal();
|
||||
|
||||
const [registerTable, { setColumns, setTableData, reload, clearSelectedRowKeys }] = useTable({
|
||||
@@ -76,12 +110,12 @@
|
||||
actionColumn: {
|
||||
title: '操作',
|
||||
dataIndex: 'action',
|
||||
width: 240,
|
||||
width: 320,
|
||||
fixed: 'right',
|
||||
slots: { customRender: 'action' },
|
||||
},
|
||||
scroll: {
|
||||
x: tableScrollX,
|
||||
x: tableScrollX + 80,
|
||||
y: tableBodyHeight,
|
||||
},
|
||||
});
|
||||
@@ -110,6 +144,7 @@
|
||||
setColumns(defaultColumns);
|
||||
setTableData([]);
|
||||
handleApprovalHistoryCancel();
|
||||
handleEditCancel();
|
||||
clearSelectedRowKeys();
|
||||
}
|
||||
|
||||
@@ -141,10 +176,73 @@
|
||||
approvalHistoryFormData.value = {};
|
||||
}
|
||||
|
||||
function handleEditProcess(record) {
|
||||
currentEditRecord.value = record;
|
||||
editForm.title = record?.title || '';
|
||||
editForm.requireFinishDate = record?.requireFinishDate
|
||||
? record.requireFinishDate.length > 10
|
||||
? record.requireFinishDate.substring(0, 10)
|
||||
: record.requireFinishDate
|
||||
: undefined;
|
||||
editModalVisible.value = true;
|
||||
}
|
||||
|
||||
async function handleEditConfirm() {
|
||||
if (!editForm.title?.trim()) {
|
||||
createMessage.error('标题不能为空');
|
||||
return;
|
||||
}
|
||||
if (!editForm.requireFinishDate) {
|
||||
createMessage.error('要求完成日期不能为空');
|
||||
return;
|
||||
}
|
||||
const taskId = currentEditRecord.value?.id;
|
||||
if (!taskId) {
|
||||
createMessage.error('任务数据异常');
|
||||
return;
|
||||
}
|
||||
editLoading.value = true;
|
||||
try {
|
||||
const res = await updateTitleAndDeadline({ taskId, title: editForm.title, requireFinishDate: editForm.requireFinishDate });
|
||||
if (res?.success) {
|
||||
createMessage.success(res.message || '修改成功');
|
||||
editModalVisible.value = false;
|
||||
await reload();
|
||||
} else {
|
||||
createMessage.error(res?.message || '修改失败');
|
||||
}
|
||||
} catch (error) {
|
||||
createMessage.error('修改失败');
|
||||
} finally {
|
||||
editLoading.value = false;
|
||||
}
|
||||
}
|
||||
|
||||
function handleEditCancel() {
|
||||
editModalVisible.value = false;
|
||||
editLoading.value = false;
|
||||
}
|
||||
|
||||
async function handleDeleteProcess(record) {
|
||||
const processInstId = record?.processInstId;
|
||||
const taskId = record?.id;
|
||||
|
||||
if (!processInstId) {
|
||||
createMessage.error('流程未发起,请等待流程自动发起');
|
||||
if (!taskId) {
|
||||
createMessage.error('任务数据异常,无法删除');
|
||||
return;
|
||||
}
|
||||
try {
|
||||
const res = await deletePendingTask({ taskId });
|
||||
if (res?.success) {
|
||||
createMessage.success(res.message || '删除成功');
|
||||
await reload();
|
||||
} else {
|
||||
createMessage.error(res?.message || '删除失败');
|
||||
}
|
||||
} catch (error) {
|
||||
createMessage.error('删除失败');
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -171,6 +269,10 @@
|
||||
label: '审批历史',
|
||||
onClick: handlePreviewApprovalHistory.bind(null, record),
|
||||
},
|
||||
{
|
||||
label: '修改信息',
|
||||
onClick: handleEditProcess.bind(null, record),
|
||||
},
|
||||
{
|
||||
label: '删除流程',
|
||||
popConfirm: {
|
||||
@@ -239,3 +341,13 @@
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<style lang="less">
|
||||
.edit-process-modal {
|
||||
.ant-modal-body {
|
||||
height: auto !important;
|
||||
min-height: 160px;
|
||||
overflow: visible !important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -49,14 +49,6 @@
|
||||
<SearchOutlined @click="openSdwLeaderModal" />
|
||||
</template>
|
||||
</a-input>
|
||||
<SzUserSelectByDeptRoleSecurityModal
|
||||
v-model:open="sdwLeaderModalOpen"
|
||||
title="请选择所党委领导"
|
||||
:deptId="sdwLeaderDeptId"
|
||||
:roleId="sdwLeaderRoleId"
|
||||
:securityValue="sdwLeaderSecurityValue"
|
||||
@confirm="handleSdwLeaderConfirm"
|
||||
/>
|
||||
</a-form-item>
|
||||
</template>
|
||||
|
||||
@@ -77,8 +69,7 @@
|
||||
<a-form-item label="重复开始日期">
|
||||
<a-date-picker
|
||||
v-model:value="formData.intervalStartTime"
|
||||
show-time
|
||||
valueFormat="YYYY-MM-DD HH:mm:ss"
|
||||
valueFormat="YYYY-MM-DD"
|
||||
placeholder="重复开始日期"
|
||||
style="width: 100%"
|
||||
:getPopupContainer="(node) => node?.parentNode"
|
||||
@@ -87,6 +78,15 @@
|
||||
</template>
|
||||
</a-form>
|
||||
|
||||
<SzUserSelectByDeptRoleSecurityModal
|
||||
v-model:open="sdwLeaderModalOpen"
|
||||
title="请选择所党委领导"
|
||||
:deptId="sdwLeaderDeptId"
|
||||
:roleId="sdwLeaderRoleId"
|
||||
:securityValue="sdwLeaderSecurityValue"
|
||||
@confirm="handleSdwLeaderConfirm"
|
||||
/>
|
||||
|
||||
<template #footer>
|
||||
<a-button @click="handleCancel">取消</a-button>
|
||||
<a-button type="primary" @click="handleOk">提交</a-button>
|
||||
@@ -279,7 +279,7 @@ import { PARTY_COMMITTEE_DEPT_ID, SDW_LEADER_ROLE_ID } from '/@/constant/supervi
|
||||
triggerType: formData.triggerMode === 'recurring' ? 2 : 1,
|
||||
intervalType: formData.triggerMode === 'recurring' ? Number(formData.intervalType) : undefined,
|
||||
startCount: formData.triggerMode === 'recurring' ? Number(formData.startCount) : undefined,
|
||||
intervalStartTime: formData.triggerMode === 'recurring' ? formData.intervalStartTime : undefined,
|
||||
intervalStartTime: formData.triggerMode === 'recurring' && formData.intervalStartTime ? formData.intervalStartTime + ' 02:00:00' : undefined,
|
||||
deptId: formData.deptIds.join(','),
|
||||
deptIds: [...formData.deptIds],
|
||||
isNeedAppro: showSuoleaderFields.value ? formData.isNeedAppro : undefined,
|
||||
|
||||
@@ -76,8 +76,7 @@
|
||||
<a-form-item label="重复开始日期">
|
||||
<a-date-picker
|
||||
v-model:value="formData.intervalStartTime"
|
||||
show-time
|
||||
valueFormat="YYYY-MM-DD HH:mm:ss"
|
||||
valueFormat="YYYY-MM-DD"
|
||||
placeholder="重复开始日期"
|
||||
style="width: 100%"
|
||||
:getPopupContainer="(node) => node?.parentNode"
|
||||
@@ -251,7 +250,7 @@ import { SUOBAN_DEPT_ID, MEASURE_RES_LEADER_ROLE_ID } from '/@/constant/supervis
|
||||
triggerType: formData.triggerMode === 'recurring' ? 2 : 1,
|
||||
intervalType: formData.triggerMode === 'recurring' ? Number(formData.intervalType) : undefined,
|
||||
startCount: formData.triggerMode === 'recurring' ? Number(formData.startCount) : undefined,
|
||||
intervalStartTime: formData.triggerMode === 'recurring' ? formData.intervalStartTime : undefined,
|
||||
intervalStartTime: formData.triggerMode === 'recurring' && formData.intervalStartTime ? formData.intervalStartTime + ' 02:00:00' : undefined,
|
||||
title: taskTitle,
|
||||
deptId: formData.deptIds.join(','),
|
||||
deptIds: [...formData.deptIds],
|
||||
|
||||
@@ -238,7 +238,7 @@
|
||||
},
|
||||
},
|
||||
exportConfig: {
|
||||
name: props.ledgerTitle,
|
||||
name: props.meetingType === 'office' ? '所务会' : '党委会',
|
||||
url: getExportUrl,
|
||||
params: getLedgerQueryParams,
|
||||
},
|
||||
@@ -638,7 +638,7 @@
|
||||
const blob = new Blob([data]);
|
||||
const link = document.createElement('a');
|
||||
link.href = URL.createObjectURL(blob);
|
||||
link.download = '党建议题-导入模板.xls';
|
||||
link.download = props.meetingType === 'office' ? '所务会-导入模板.xls' : '党委会-导入模板.xls';
|
||||
link.click();
|
||||
URL.revokeObjectURL(link.href);
|
||||
}
|
||||
|
||||
@@ -19,6 +19,17 @@
|
||||
<JDictSelectTag v-model:value="queryParam.completionStatus" dictCode="db_status" placeholder="请选择完成状态" allow-clear @change="searchQuery" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :lg="6">
|
||||
<a-form-item name="completedStage" label="流程阶段">
|
||||
<a-select v-model:value="queryParam.completedStage" placeholder="请选择" allow-clear @change="searchQuery">
|
||||
<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-col>
|
||||
<a-col :lg="4" :md="8" :sm="12">
|
||||
<span class="table-page-search-submitButtons">
|
||||
<a-button type="primary" preIcon="ant-design:search-outlined" @click="searchQuery">查询</a-button>
|
||||
@@ -96,7 +107,7 @@
|
||||
</template>
|
||||
|
||||
<script lang="ts" name="bg.xispeak-bgXiSpeak" setup>
|
||||
import { ref, reactive, unref, computed, provide } from 'vue';
|
||||
import { ref, reactive, unref, computed, provide, nextTick } from 'vue';
|
||||
import { BasicTable, useTable } from '/@/components/Table';
|
||||
import { Dropdown } from '/@/components/Dropdown';
|
||||
import { useListPage } from '/@/hooks/system/useListPage';
|
||||
@@ -619,6 +630,7 @@ import { defHttp } from '/@/utils/http/axios';
|
||||
|
||||
function handleFeedbackRightNowConfirm({ record, feedbackRightNow }) {
|
||||
pendingFeedbackRightNow.value = feedbackRightNow;
|
||||
nextTick(() => {
|
||||
flowScheduleModalRef.value?.open({
|
||||
title: '发起落实措施收集流程',
|
||||
payload: { record },
|
||||
@@ -628,6 +640,7 @@ import { defHttp } from '/@/utils/http/axios';
|
||||
supDeptleaderid: record?.sdwLeaderList,
|
||||
supDeptleaderName: record?.sdwLeaderList_dictText,
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function handleProcessJbr(record) {
|
||||
|
||||
@@ -213,7 +213,7 @@
|
||||
<span v-else>-</span>
|
||||
</template>
|
||||
<template v-if="column.key === 'feedbackAction'">
|
||||
<a-button type="link" size="small" @click="handleEditFeedback(record)">编辑</a-button>
|
||||
<a-button type="link" size="small" @click="handleEditFeedback(record)">{{ showJiJianFields && nonJiJianFieldsReadonly ? '督察' : '编辑' }}</a-button>
|
||||
<a-popconfirm title="确定删除该反馈吗?" @confirm="handleDeleteFeedback(record)">
|
||||
<a-button type="link" size="small" danger>删除</a-button>
|
||||
</a-popconfirm>
|
||||
|
||||
@@ -107,6 +107,17 @@
|
||||
<a-input-number v-model:value="formData.supervisionCount" placeholder="每次发起督办流程自动加1" style="width: 100%" disabled />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="流程阶段" name="completedStage">
|
||||
<a-select v-model:value="formData.completedStage" placeholder="请选择流程阶段" allow-clear>
|
||||
<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-col>
|
||||
</a-row>
|
||||
|
||||
<a-col v-if="showFlowSubmitButton" :span="24" style="width: 100%; text-align: center; margin-top: 16px;">
|
||||
@@ -172,6 +183,7 @@ import { PARTY_COMMITTEE_DEPT_ID, SDW_LEADER_ROLE_ID } from '/@/constant/supervi
|
||||
delFlag: undefined,
|
||||
bpmStatus: undefined,
|
||||
supervisionCount: undefined,
|
||||
completedStage: undefined,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user