201 lines
5.4 KiB
Vue
201 lines
5.4 KiB
Vue
<template>
|
|
<PageWrapper dense contentFullHeight fixedHeight contentClass="flex">
|
|
<BasicTable @register="registerTable" @fetch-success="onFetchSuccess" :searchInfo="searchInfo">
|
|
<template #toolbar>
|
|
<!-- <a-button type="primary" @click="handleCreate"> 新增 </a-button> -->
|
|
<PermissionBtn @btnEvent="onBtnClicked"></PermissionBtn>
|
|
</template>
|
|
<template #bodyCell="{ column, record }">
|
|
<template v-if="column.key === 'action'">
|
|
<TableAction
|
|
:actions="[
|
|
{
|
|
label: '详情',
|
|
onClick: handleDetail.bind(null, record),
|
|
},
|
|
{
|
|
label: '催办',
|
|
onClick: handleUrge.bind(null, record),
|
|
},
|
|
{
|
|
label: '撤销',
|
|
color: 'error',
|
|
popConfirm: {
|
|
title: '是否撤销流程',
|
|
confirm: () => {
|
|
handleRevocation(record);
|
|
},
|
|
},
|
|
},
|
|
]"
|
|
/>
|
|
</template>
|
|
</template>
|
|
</BasicTable>
|
|
<a-modal
|
|
width="100%"
|
|
wrap-class-name="full-modal"
|
|
v-model:open="auditOpen"
|
|
title="详情"
|
|
:destroyOnClose="true"
|
|
>
|
|
<template #footer>
|
|
</template>
|
|
<Look ref="posRef" :processId="processId"></Look>
|
|
</a-modal>
|
|
</PageWrapper>
|
|
</template>
|
|
|
|
<script lang="ts" setup>
|
|
import { reactive, h ,ref} from 'vue';
|
|
import { BasicTable, useTable, TableAction } from '@/components/Table';
|
|
import { PageWrapper } from '@/components/Page';
|
|
import { getLoadMyPage, urge, revoke, revokeAudit } from '@/api/sys/WFProcess';
|
|
import { Tag } from 'ant-design-vue';
|
|
import { useMessage } from '@/hooks/web/useMessage';
|
|
import Look from "./process/look.vue"
|
|
const { createMessage } = useMessage();
|
|
const searchInfo = reactive<Recordable>({});
|
|
import { useGo } from '@/hooks/web/usePage';
|
|
const go = useGo();
|
|
const auditOpen = ref(false)
|
|
const processId = ref('')
|
|
const [registerTable, { reload }] = useTable({
|
|
api: getLoadMyPage,
|
|
columns: [
|
|
{
|
|
title: '标题',
|
|
dataIndex: 'title',
|
|
},
|
|
{
|
|
title: '流程模版',
|
|
dataIndex: 'schemeName',
|
|
},
|
|
{
|
|
title: '状态',
|
|
dataIndex: 'isFinished',
|
|
width: 80,
|
|
customRender: ({ record }) => {
|
|
if (record.isFinished == '1') {
|
|
const color = 'red';
|
|
const text = '结束';
|
|
return h(Tag, { color: color }, () => text);
|
|
} else if (record.isAgain == '1') {
|
|
const color = 'orange';
|
|
const text = '重新提交';
|
|
return h(Tag, { color: color }, () => text);
|
|
} else {
|
|
const color = 'green';
|
|
const text = '审批中';
|
|
return h(Tag, { color: color }, () => text);
|
|
}
|
|
},
|
|
},
|
|
{
|
|
title: '提交人',
|
|
dataIndex: 'createUserName',
|
|
},
|
|
{
|
|
title: '创建时间',
|
|
dataIndex: 'createDate',
|
|
},
|
|
],
|
|
rowKey: 'id',
|
|
formConfig: {
|
|
labelWidth: 120,
|
|
schemas: [
|
|
{
|
|
field: '[StartDate, EndDate]',
|
|
label: '日期范围',
|
|
component: 'RangePicker',
|
|
componentProps: {
|
|
format: 'YYYY-MM-DD',
|
|
placeholder: ['开始日期', '结束日期'],
|
|
},
|
|
colProps: { span: 8 },
|
|
},
|
|
{
|
|
field: 'keyWord',
|
|
label: '关键字',
|
|
component: 'Input',
|
|
colProps: { span: 8 },
|
|
},
|
|
],
|
|
},
|
|
useSearchForm: true,
|
|
showTableSetting: true,
|
|
bordered: true,
|
|
handleSearchInfoFn(info) {
|
|
return info;
|
|
},
|
|
actionColumn: {
|
|
width: 200,
|
|
title: '操作',
|
|
dataIndex: 'action',
|
|
// slots: { customRender: 'action' },
|
|
},
|
|
});
|
|
function handleDetail(record) {
|
|
processId.value = record.id
|
|
auditOpen.value=true
|
|
// go('/dashboard/task_look_preview/detail?processId=' + record.id);
|
|
}
|
|
async function handleUrge(record) {
|
|
var query = {
|
|
id: record.id,
|
|
};
|
|
if (record.isStart == 1 && record.isCancel == 0) {
|
|
return createMessage.warning('重新提交和结束的流程不能催办');
|
|
}
|
|
const data = await urge(query);
|
|
if (data) {
|
|
reload();
|
|
return createMessage.success('催办成功');
|
|
} else {
|
|
return createMessage.error('催办失败');
|
|
}
|
|
}
|
|
async function handleRevocation(record) {
|
|
var query = {
|
|
taskId: record.id,
|
|
id: record.processId,
|
|
};
|
|
if (record.isStart == 0) {
|
|
const data = await revoke({
|
|
id: record.id,
|
|
});
|
|
if (data) {
|
|
reload();
|
|
return createMessage.success('撤销成功');
|
|
} else {
|
|
return createMessage.error('撤销失败');
|
|
}
|
|
} else if (record.isCancel == 1) {
|
|
const data = await revokeAudit(query);
|
|
if (data) {
|
|
reload();
|
|
return createMessage.success('撤销成功');
|
|
} else {
|
|
return createMessage.error('撤销失败');
|
|
}
|
|
} else {
|
|
return createMessage.warning('重新提交和结束的流程不能撤销');
|
|
}
|
|
}
|
|
</script>
|
|
<style lang="less">
|
|
.full-modal {
|
|
.ant-modal {
|
|
max-width: 100%;
|
|
top:0;
|
|
}
|
|
|
|
.ant-modal-content {
|
|
height: calc(100vh);
|
|
}
|
|
|
|
.ant-modal-body {
|
|
height: 85%;
|
|
}
|
|
}
|
|
</style> |