|
@@ -38,6 +38,7 @@
|
|
|
@click="handleOpenAppoverSelect(scope.row)"
|
|
@click="handleOpenAppoverSelect(scope.row)"
|
|
|
/>
|
|
/>
|
|
|
<ActionButton
|
|
<ActionButton
|
|
|
|
|
+ v-if="tableData.length > 1"
|
|
|
text="删除节点"
|
|
text="删除节点"
|
|
|
:popconfirm="{
|
|
:popconfirm="{
|
|
|
title: '确定要删除?',
|
|
title: '确定要删除?',
|
|
@@ -52,6 +53,8 @@
|
|
|
<ApproverSelectDialog ref="approverSelectDialogRef" @submit="handleApproverSelect" />
|
|
<ApproverSelectDialog ref="approverSelectDialogRef" @submit="handleApproverSelect" />
|
|
|
<ApprovalNodeCreateDialog
|
|
<ApprovalNodeCreateDialog
|
|
|
ref="approvalNodeCreateDialogRef"
|
|
ref="approvalNodeCreateDialogRef"
|
|
|
|
|
+ :is-create="true"
|
|
|
|
|
+ :init-data="initFormData"
|
|
|
:order-list="approvalOrderList"
|
|
:order-list="approvalOrderList"
|
|
|
@success="getTabelData"
|
|
@success="getTabelData"
|
|
|
/>
|
|
/>
|
|
@@ -69,7 +72,7 @@
|
|
|
import BasicForm from '@/components/BasicForm.vue';
|
|
import BasicForm from '@/components/BasicForm.vue';
|
|
|
import ActionButton from '@/components/ActionButton.vue';
|
|
import ActionButton from '@/components/ActionButton.vue';
|
|
|
import BasicTable from '@/components/BasicTable.vue';
|
|
import BasicTable from '@/components/BasicTable.vue';
|
|
|
- import { ApprovalInstanceRuleForm, ApprovalNodeInstanceType } from './types';
|
|
|
|
|
|
|
+ import { ApprovalNodeInstanceRuleForm, ApprovalInstanceRuleForm, ApprovalNodeInstanceType } from './types';
|
|
|
import { APPROVAL_FORM_CONFIG, APPROVAL_FORM_DATA, APPROVAL_FORM_RULES } from './config/form';
|
|
import { APPROVAL_FORM_CONFIG, APPROVAL_FORM_DATA, APPROVAL_FORM_RULES } from './config/form';
|
|
|
import useTableConfig from '@/hooks/useTableConfigHook';
|
|
import useTableConfig from '@/hooks/useTableConfigHook';
|
|
|
import { APPROVAL_NODE_TABLE_COLUMNS, NODE_TABLE_OPTIONS } from './config/table';
|
|
import { APPROVAL_NODE_TABLE_COLUMNS, NODE_TABLE_OPTIONS } from './config/table';
|
|
@@ -99,6 +102,11 @@
|
|
|
const approvalOrderList = computed(() => {
|
|
const approvalOrderList = computed(() => {
|
|
|
return tableData.value.map((item) => item.approvalOrder);
|
|
return tableData.value.map((item) => item.approvalOrder);
|
|
|
});
|
|
});
|
|
|
|
|
+
|
|
|
|
|
+ const approvalOrderMax = computed(() => {
|
|
|
|
|
+ return Math.max(...approvalOrderList.value);
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
function initForm(initData: ApprovalInstanceRuleForm) {
|
|
function initForm(initData: ApprovalInstanceRuleForm) {
|
|
|
ruleFormData.id = initData.id;
|
|
ruleFormData.id = initData.id;
|
|
|
ruleFormData.templateName = initData.templateName;
|
|
ruleFormData.templateName = initData.templateName;
|
|
@@ -143,17 +151,36 @@
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
const approvalNodeCreateDialogRef = ref();
|
|
const approvalNodeCreateDialogRef = ref();
|
|
|
|
|
+ const initFormData = ref<ApprovalNodeInstanceRuleForm>();
|
|
|
const handleCreateApprovalNode = () => {
|
|
const handleCreateApprovalNode = () => {
|
|
|
- approvalNodeCreateDialogRef.value.initForm(true, { approvalTemplateId: Number(id) });
|
|
|
|
|
|
|
+ if (approvalInstance.value?.isApplied) {
|
|
|
|
|
+ ElMessage.error('已应用,无法添加节点');
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ initFormData.value = {
|
|
|
|
|
+ approvalTemplateId: Number(id),
|
|
|
|
|
+ nodeDescription: '',
|
|
|
|
|
+ approvalType: 0,
|
|
|
|
|
+ approverType: 1,
|
|
|
|
|
+ approvalOrder: approvalOrderMax.value + 1,
|
|
|
|
|
+ };
|
|
|
approvalNodeCreateDialogRef.value.openDialog();
|
|
approvalNodeCreateDialogRef.value.openDialog();
|
|
|
};
|
|
};
|
|
|
const handleEditApprovalNode = (row: ApprovalNodeInstanceType) => {
|
|
const handleEditApprovalNode = (row: ApprovalNodeInstanceType) => {
|
|
|
- approvalNodeCreateDialogRef.value.initForm(false, { ...row, approvalTemplateId: Number(id) });
|
|
|
|
|
|
|
+ if (approvalInstance.value?.isApplied) {
|
|
|
|
|
+ ElMessage.error('已应用,无法编辑节点');
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ initFormData.value = { ...row, approvalTemplateId: Number(id) };
|
|
|
approvalNodeCreateDialogRef.value.openDialog();
|
|
approvalNodeCreateDialogRef.value.openDialog();
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
const approverSelectDialogRef = ref();
|
|
const approverSelectDialogRef = ref();
|
|
|
const handleOpenAppoverSelect = async (node: ApprovalNodeInstanceType) => {
|
|
const handleOpenAppoverSelect = async (node: ApprovalNodeInstanceType) => {
|
|
|
|
|
+ if (approvalInstance.value?.isApplied) {
|
|
|
|
|
+ ElMessage.error('已应用,无法编辑节点');
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
if (approverSelectDialogRef.value) {
|
|
if (approverSelectDialogRef.value) {
|
|
|
if (node.approverInfoList.length > 0) {
|
|
if (node.approverInfoList.length > 0) {
|
|
|
const res = await queryUserInfoByIds(node.approverInfoList.map((x) => x.approverId));
|
|
const res = await queryUserInfoByIds(node.approverInfoList.map((x) => x.approverId));
|
|
@@ -165,6 +192,10 @@
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
const handleApproverSelect = async (list: PersonGroupItem[]) => {
|
|
const handleApproverSelect = async (list: PersonGroupItem[]) => {
|
|
|
|
|
+ if (approvalInstance.value?.isApplied) {
|
|
|
|
|
+ ElMessage.error('已应用,无法编辑节点');
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
try {
|
|
try {
|
|
|
await updateApprvoerInfo({
|
|
await updateApprvoerInfo({
|
|
|
id: curNodeId.value,
|
|
id: curNodeId.value,
|
|
@@ -180,6 +211,10 @@
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
const handleDeleteNode = async (id: number) => {
|
|
const handleDeleteNode = async (id: number) => {
|
|
|
|
|
+ if (approvalInstance.value?.isApplied) {
|
|
|
|
|
+ ElMessage.error('已应用,无法编辑节点');
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
try {
|
|
try {
|
|
|
tableConfig.loading = true;
|
|
tableConfig.loading = true;
|
|
|
await delApprovalNodeInstance(id);
|
|
await delApprovalNodeInstance(id);
|