|
@@ -127,21 +127,13 @@
|
|
</el-card>
|
|
</el-card>
|
|
|
|
|
|
<!-- 高亮流程图 -->
|
|
<!-- 高亮流程图 -->
|
|
- <el-card class="box-card" v-loading="processInstanceLoading">
|
|
|
|
- <template #header>
|
|
|
|
- <span class="el-icon-picture-outline">流程图</span>
|
|
|
|
- </template>
|
|
|
|
- <my-process-viewer
|
|
|
|
- key="designer"
|
|
|
|
- v-model="bpmnXML"
|
|
|
|
- :value="bpmnXML"
|
|
|
|
- v-bind="bpmnControlForm"
|
|
|
|
- :prefix="bpmnControlForm.prefix"
|
|
|
|
- :activityData="activityList"
|
|
|
|
- :processInstanceData="processInstance"
|
|
|
|
- :taskData="tasks"
|
|
|
|
- />
|
|
|
|
- </el-card>
|
|
|
|
|
|
+ <ProcessInstanceBpmnViewer
|
|
|
|
+ :id="id"
|
|
|
|
+ :process-instance="processInstance"
|
|
|
|
+ :loading="processInstanceLoading"
|
|
|
|
+ :tasks="tasks"
|
|
|
|
+ :bpmn-xml="bpmnXML"
|
|
|
|
+ />
|
|
|
|
|
|
<!-- 弹窗:转派审批人 -->
|
|
<!-- 弹窗:转派审批人 -->
|
|
<TaskUpdateAssigneeForm ref="taskUpdateAssigneeFormRef" @success="getDetail" />
|
|
<TaskUpdateAssigneeForm ref="taskUpdateAssigneeFormRef" @success="getDetail" />
|
|
@@ -149,16 +141,15 @@
|
|
</template>
|
|
</template>
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
import { parseTime } from '@/utils/formatTime'
|
|
import { parseTime } from '@/utils/formatTime'
|
|
-import * as UserApi from '@/api/system/user'
|
|
|
|
import * as ProcessInstanceApi from '@/api/bpm/processInstance'
|
|
import * as ProcessInstanceApi from '@/api/bpm/processInstance'
|
|
-import * as DefinitionApi from '@/api/bpm/definition'
|
|
|
|
import * as TaskApi from '@/api/bpm/task'
|
|
import * as TaskApi from '@/api/bpm/task'
|
|
-import * as ActivityApi from '@/api/bpm/activity'
|
|
|
|
import { formatPast2 } from '@/utils/formatTime'
|
|
import { formatPast2 } from '@/utils/formatTime'
|
|
import { setConfAndFields2 } from '@/utils/formCreate'
|
|
import { setConfAndFields2 } from '@/utils/formCreate'
|
|
import type { ApiAttrs } from '@form-create/element-ui/types/config'
|
|
import type { ApiAttrs } from '@form-create/element-ui/types/config'
|
|
import { useUserStore } from '@/store/modules/user'
|
|
import { useUserStore } from '@/store/modules/user'
|
|
import TaskUpdateAssigneeForm from './TaskUpdateAssigneeForm.vue'
|
|
import TaskUpdateAssigneeForm from './TaskUpdateAssigneeForm.vue'
|
|
|
|
+import ProcessInstanceBpmnViewer from './ProcessInstanceBpmnViewer.vue'
|
|
|
|
+import * as DefinitionApi from '@/api/bpm/definition'
|
|
|
|
|
|
const { query } = useRoute() // 查询参数
|
|
const { query } = useRoute() // 查询参数
|
|
const message = useMessage() // 消息弹窗
|
|
const message = useMessage() // 消息弹窗
|
|
@@ -249,6 +240,7 @@ const getTimelineItemType = (item) => {
|
|
}
|
|
}
|
|
|
|
|
|
// ========== 审批记录 ==========
|
|
// ========== 审批记录 ==========
|
|
|
|
+const bpmnXML = ref('')
|
|
|
|
|
|
/** 转派审批人 */
|
|
/** 转派审批人 */
|
|
const taskUpdateAssigneeFormRef = ref()
|
|
const taskUpdateAssigneeFormRef = ref()
|
|
@@ -265,32 +257,12 @@ const handleDelegate = async (task) => {
|
|
/** 处理审批退回的操作 */
|
|
/** 处理审批退回的操作 */
|
|
const handleBack = async (task) => {
|
|
const handleBack = async (task) => {
|
|
message.error('暂不支持【退回】功能!')
|
|
message.error('暂不支持【退回】功能!')
|
|
- // 可参考 http://blog.wya1.com/article/636697030/details/7296
|
|
|
|
- // const data = {
|
|
|
|
- // id: task.id,
|
|
|
|
- // assigneeUserId: 1
|
|
|
|
- // }
|
|
|
|
- // backTask(data).then(response => {
|
|
|
|
- // this.$modal.msgSuccess("回退成功!");
|
|
|
|
- // this.getDetail(); // 获得最新详情
|
|
|
|
- // });
|
|
|
|
console.log(task)
|
|
console.log(task)
|
|
}
|
|
}
|
|
|
|
|
|
-// ========== 高亮流程图 ==========
|
|
|
|
-const bpmnXML = ref(null)
|
|
|
|
-const bpmnControlForm = ref({
|
|
|
|
- prefix: 'flowable'
|
|
|
|
-})
|
|
|
|
-const activityList = ref([])
|
|
|
|
-
|
|
|
|
// ========== 初始化 ==========
|
|
// ========== 初始化 ==========
|
|
onMounted(() => {
|
|
onMounted(() => {
|
|
getDetail()
|
|
getDetail()
|
|
- // 加载用户的列表
|
|
|
|
- UserApi.getSimpleUserList().then((data) => {
|
|
|
|
- userOptions.value.push(...data)
|
|
|
|
- })
|
|
|
|
})
|
|
})
|
|
|
|
|
|
const getDetail = () => {
|
|
const getDetail = () => {
|
|
@@ -324,13 +296,6 @@ const getDetail = () => {
|
|
DefinitionApi.getProcessDefinitionBpmnXML(processDefinition.id).then((data) => {
|
|
DefinitionApi.getProcessDefinitionBpmnXML(processDefinition.id).then((data) => {
|
|
bpmnXML.value = data
|
|
bpmnXML.value = data
|
|
})
|
|
})
|
|
-
|
|
|
|
- // 加载活动列表
|
|
|
|
- ActivityApi.getActivityList({
|
|
|
|
- processInstanceId: data.id
|
|
|
|
- }).then((data) => {
|
|
|
|
- activityList.value = data
|
|
|
|
- })
|
|
|
|
})
|
|
})
|
|
.finally(() => {
|
|
.finally(() => {
|
|
processInstanceLoading.value = false
|
|
processInstanceLoading.value = false
|
|
@@ -387,12 +352,7 @@ const getDetail = () => {
|
|
})
|
|
})
|
|
}
|
|
}
|
|
</script>
|
|
</script>
|
|
-
|
|
|
|
<style lang="scss">
|
|
<style lang="scss">
|
|
-.my-process-designer {
|
|
|
|
- height: calc(100vh - 200px);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
.box-card {
|
|
.box-card {
|
|
width: 100%;
|
|
width: 100%;
|
|
margin-bottom: 20px;
|
|
margin-bottom: 20px;
|