This commit is contained in:
那些花儿
2025-08-01 14:45:20 +08:00
parent fc0d86c812
commit d4ba5aa689
81 changed files with 6051 additions and 3117 deletions
@@ -517,7 +517,7 @@ module.exports = {
top: 64px;
left: 0;
right: 0;
z-index: 1000;
z-index: 19000;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
@@ -1,7 +1,7 @@
<template>
<div class="snaker-task-action" v-if="!loading || taskInfo">
<!-- 指定下一节点处理人 -->
<div class="next-handler-section" v-if="!isFirstTaskNodeOrNew && supportCandidate">
<div class="next-handler-section" v-if="supportSpecifyNextHandler && candidates.length > 0">
<el-checkbox v-model="specifyNextHandler" @change="onSpecifyNextHandlerChange">指定下一节点处理人</el-checkbox>
<div class="handler-select-wrapper" v-if="specifyNextHandler">
<el-select v-model="selectedHandler" placeholder="请选择处理人" clearable filterable class="handler-select">
@@ -14,32 +14,44 @@
</div>
<!-- 第一个任务节点或新申请显示提交保存草稿取消 -->
<template v-if="isFirstTaskNodeOrNew">
<el-button type="primary" @click="handleSubmit" :loading="actionLoading" icon="el-icon-upload2">提交</el-button>
<!-- 保存草稿只在流程未发起时显示 -->
<el-button @click="handleSaveDraft" v-if="!actionLoading && show_save_draft && !instanceId" icon="el-icon-document">保存草稿</el-button>
<el-button @click="handleCancel" :loading="actionLoading" v-if="show_cancel" icon="el-icon-close">取消</el-button>
<!-- <template v-if="isFirstTaskNodeOrNew">-->
<!-- <el-button type="primary" @click="handleSubmit" :loading="actionLoading" icon="el-icon-upload2">提交</el-button>-->
<!-- &lt;!&ndash; 保存草稿只在流程未发起时显示 &ndash;&gt;-->
<!-- <el-button @click="handleSaveDraft" v-if="!actionLoading && show_save_draft && !instanceId" icon="el-icon-document">保存草稿</el-button>-->
<!-- <el-button @click="handleCancel" :loading="actionLoading" v-if="show_cancel" icon="el-icon-close">取消</el-button>-->
<!-- </template>-->
<!-- &lt;!&ndash; 其他任务节点显示审批按钮 &ndash;&gt;-->
<!-- <template v-else>-->
<!-- &lt;!&ndash; 会签任务按钮 &ndash;&gt;-->
<!-- <template v-if="is_countersign_task">-->
<!-- <el-button type="primary" @click="handleAction('AGREE')" :loading="actionLoading" icon="el-icon-check">同意</el-button>-->
<!-- <el-button type="danger" plain @click="handleAction('COUNTERSIGN_DISAGREE')" :loading="actionLoading" icon="el-icon-close">-->
<!-- 不同意-->
<!-- </el-button>-->
<!-- </template>-->
<!-- &lt;!&ndash; 普通任务按钮 &ndash;&gt;-->
<!-- <template v-else>-->
<!-- <el-button type="primary" @click="handleAction('AGREE')" :loading="actionLoading" icon="el-icon-check">同意</el-button>-->
<!-- <el-button type="danger" plain @click="handleAction('REJECT')" :loading="actionLoading" icon="el-icon-close">拒绝</el-button>-->
<!-- <el-button @click="handleAction('ROLLBACK')" :loading="actionLoading" icon="el-icon-back">退回上一步</el-button>-->
<!-- <el-button @click="handleAction('ROLLBACK_TO_OPERATOR')" :loading="actionLoading" icon="el-icon-d-arrow-left">退回发起人</el-button>-->
<!-- <el-button @click="handleAction('JUMP')" :loading="actionLoading" icon="el-icon-position">跳转</el-button>-->
<!-- </template>-->
<!-- </template>-->
<!--没有流程实例的时候-->
<template v-if="!instanceId">
<el-button type="primary" @click="handleSubmit">提交</el-button>
<el-button @click="handleSaveDraft">保存</el-button>
</template>
<!-- 其他任务节点显示审批按钮 -->
<template v-else>
<!-- 会签任务按钮 -->
<template v-if="is_countersign_task">
<el-button type="primary" @click="handleAction('AGREE')" :loading="actionLoading" icon="el-icon-check">同意</el-button>
<el-button type="danger" plain @click="handleAction('COUNTERSIGN_DISAGREE')" :loading="actionLoading" icon="el-icon-close">
不同意
</el-button>
</template>
<!-- 普通任务按钮 -->
<template v-else>
<el-button type="primary" @click="handleAction('AGREE')" :loading="actionLoading" icon="el-icon-check">同意</el-button>
<el-button type="danger" plain @click="handleAction('REJECT')" :loading="actionLoading" icon="el-icon-close">拒绝</el-button>
<el-button @click="handleAction('ROLLBACK')" :loading="actionLoading" icon="el-icon-back">退回上一步</el-button>
<el-button @click="handleAction('ROLLBACK_TO_OPERATOR')" :loading="actionLoading" icon="el-icon-d-arrow-left">退回发起人</el-button>
<el-button @click="handleAction('JUMP')" :loading="actionLoading" icon="el-icon-position">跳转</el-button>
</template>
</template>
<el-row type="flex" justify="end">
<el-button v-for="item in buttons" @click="handleAction(item.value)" :type="item.theme" :icon="item.icon" size="medium" :key="item.value">
{{ item.replacementText || item.originalText }}
</el-button>
</el-row>
</div>
<!-- 加载状态 -->
@@ -51,18 +63,7 @@
<script>
module.exports = {
name: "SnakerFlowTaskFormAction",
props: {
// 是否显示保存草稿按钮
show_save_draft: {
type: Boolean,
default: true
},
// 是否显示取消按钮
show_cancel: {
type: Boolean,
default: true
}
},
props: {},
data() {
return {
// 加载状态
@@ -116,6 +117,19 @@ module.exports = {
// 有任务ID但是任务信息中标识为第一个节点
return this.taskInfo && this.taskInfo.ext && this.taskInfo.ext.isFirstTaskNode
},
// 审批按钮配置
buttons() {
if (this.taskInfo) {
return this.taskInfo.taskModel.ext.buttonConfig.filter((v) => v.visible)
}
return []
},
// 是否支持选择下一步处理人
supportSpecifyNextHandler() {
return this.taskInfo && this.taskInfo.taskModel.ext.enableNextOperator
}
},
mounted() {