提交 7a1bf054 authored 作者: liuluyu's avatar liuluyu

新增问题清单页面

上级 ec169a2a
......@@ -245,28 +245,28 @@ export const planFormSchema: FormSchema[] = [
component: 'DatePicker',
// required: true,
},
{
label: '负责部门',
field: 'headDepCode',
component: 'JSelectDept',
componentProps: {
multiple: false,
labelKey: 'departName',
rowKey: 'orgCode',
},
required: true,
},
{
field: 'headUserId',
component: 'JSelectUser',
label: '负责人',
componentProps: {
multiple: false,
labelKey: 'realname',
rowKey: 'id',
},
required: true,
},
// {
// label: '负责部门',
// field: 'headDepCode',
// component: 'JSelectDept',
// componentProps: {
// multiple: false,
// labelKey: 'departName',
// rowKey: 'orgCode',
// },
// required: true,
// },
// {
// field: 'headUserId',
// component: 'JSelectUser',
// label: '负责人',
// componentProps: {
// multiple: false,
// labelKey: 'realname',
// rowKey: 'id',
// },
// required: true,
// },
{
label: '',
field: 'id',
......@@ -282,28 +282,28 @@ export const executeFormSchema: FormSchema[] = [
component: 'Input',
dynamicDisabled: true,
},
{
field: 'execDepCode',
component: 'JSelectDept',
label: '执行部门',
// required: true,
componentProps: {
multiple: false,
labelKey: 'departName',
rowKey: 'orgCode',
},
},
{
field: 'execUserId',
component: 'JSelectUser',
label: '负责人',
// required: true,
componentProps: {
multiple: false,
labelKey: 'realname',
rowKey: 'id',
},
},
// {
// field: 'execDepCode',
// component: 'JSelectDept',
// label: '执行部门',
// // required: true,
// componentProps: {
// multiple: false,
// labelKey: 'departName',
// rowKey: 'orgCode',
// },
// },
// {
// field: 'execUserId',
// component: 'JSelectUser',
// label: '负责人',
// // required: true,
// componentProps: {
// multiple: false,
// labelKey: 'realname',
// rowKey: 'id',
// },
// },
{
label: '实际开始日期',
field: 'execStartDate',
......
<template>
<div>
<BasicTable @register="registerTable" :rowSelection="rowSelection">
<template #tableTitle>
<!-- <a-button type="primary" @click="handleAdd" preIcon="ant-design:plus-outlined">添加问题</a-button> -->
<a-dropdown v-if="selectedRowKeys.length > 0">
<template #overlay>
<a-menu>
<a-menu-item key="1" @click="batchHandleDelete">
<Icon icon="ant-design:delete-outlined" />
删除
</a-menu-item>
</a-menu>
</template>
<a-button
>批量操作
<Icon icon="mdi:chevron-down" />
</a-button>
</a-dropdown>
</template>
<template #action="{ record }">
<TableAction :actions="getTableAction(record)" :dropDownActions="getDropDownAction(record)" />
</template>
</BasicTable>
<StProblemCheckModal @register="registerModal" @success="handleSuccess" :centered="true" />
</div>
</template>
<script lang="ts" name="problem-stProblemCheck" setup>
import { ref, unref } from 'vue';
import { BasicTable, TableAction } from '/@/components/Table';
import { useModal } from '/@/components/Modal';
import { Icon } from '/@/components/Icon';
import { useListPage } from '/@/hooks/system/useListPage';
import StProblemCheckModal from '../problemCheck/components/StProblemCheckModal.vue';
import { columns, searchFormSchema } from '../problemCheck/StProblemCheck.data';
import { list, deleteOne, batchDelete, getImportUrl, getExportUrl, saveOrUpdate } from '../problemCheck/StProblemCheck.api';
import { useMessage } from '/@/hooks/web/useMessage';
const { createConfirm } = useMessage();
const props = defineProps({
beforeFlowNode: { type: Object, default: () => ({}) },
currentFlowNode: { type: Object, default: () => ({}) },
nextFlowNode: { type: Object, default: () => ({}) },
todoList: { type: Array, default: () => [] },
});
const emit = defineEmits(['callback', 'startWorkFlow', 'sendWorkFlow', 'openMultiForm']);
const [registerModal, { openModal }] = useModal();
const [registerPlanModal, { openModal: openPlanModal }] = useModal();
const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({
tableProps: {
title: '问题整改',
api: list,
columns,
canResize: false,
beforeFetch(params) {
params['bpmNodeId'] = props.currentFlowNode.id;
params['todoList'] = props.todoList;
},
actionColumn: { width: 200, fixed: 'right' },
},
exportConfig: { name: '问题整改', url: getExportUrl },
importConfig: { url: getImportUrl, success: handleSuccess },
});
const [registerTable, { reload }, { rowSelection, selectedRowKeys }] = tableContext;
function handleAdd() {
openModal(true, {
isUpdate: false,
showFooter: true,
record: { bpmNodeId: props.currentFlowNode.id, deployId: props.currentFlowNode.deployId, bpmStatus: 0 },
});
}
function handleEdit(record: Recordable) {
openModal(true, { record, isUpdate: true, showFooter: true });
}
function handleDetail(record: Recordable) {
openModal(true, { record, isUpdate: true, showFooter: false });
}
async function handleDelete(record) {
await deleteOne({ id: record.id }, handleSuccess);
}
async function batchHandleDelete() {
await batchDelete({ ids: unref(selectedRowKeys) }, handleSuccess);
}
function handleSuccess(retData) {
selectedRowKeys.value = [];
reload();
if (retData) emit('startWorkFlow', retData);
}
function getTableAction(record) {
return [
{ label: '编辑', onClick: handleEdit.bind(null, record) },
// { label: '发送', onClick: handleFlow.bind(null, record) },
];
}
function getDropDownAction(record) {
return [
{ label: '详情', onClick: handleDetail.bind(null, record) },
{
label: '删除',
popConfirm: { title: '是否确认删除', confirm: handleDelete.bind(null, record) },
},
];
}
async function handleFlow(record: Recordable) {
emit('sendWorkFlow', record);
}
async function handleUpdate(dataId, flowNode) {
const record = { bpmNodeId: flowNode.id, deployId: flowNode.deployId, bpmStatus: 2, id: dataId };
await saveOrUpdate(record, true);
selectedRowKeys.value = [];
reload();
}
async function handleStartUpdate(flowData) {
const record = { procInsId: flowData.procInsId, id: flowData.dataId, bpmStatus: 0 };
await saveOrUpdate(record, true);
handleSuccess(null);
}
defineExpose({ handleUpdate, handleStartUpdate });
</script>
<style scoped></style>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论