修复一些命名和拼写错误问题,修复一些BUG
This commit is contained in:
parent
9456a6f31c
commit
7ca76a5304
@ -22,7 +22,7 @@ const props = defineProps({
|
|||||||
// 操作按钮风格位置
|
// 操作按钮风格位置
|
||||||
layout: propTypes.string.validate((v: string) => ['inline', 'bottom'].includes(v)).def('inline'),
|
layout: propTypes.string.validate((v: string) => ['inline', 'bottom'].includes(v)).def('inline'),
|
||||||
// 底部按钮的对齐方式
|
// 底部按钮的对齐方式
|
||||||
buttomPosition: propTypes.string
|
bottomPosition: propTypes.string
|
||||||
.validate((v: string) => ['left', 'center', 'right'].includes(v))
|
.validate((v: string) => ['left', 'center', 'right'].includes(v))
|
||||||
.def('center'),
|
.def('center'),
|
||||||
showSearch: propTypes.bool.def(true),
|
showSearch: propTypes.bool.def(true),
|
||||||
@ -85,9 +85,9 @@ const reset = async () => {
|
|||||||
emit('reset', model)
|
emit('reset', model)
|
||||||
}
|
}
|
||||||
|
|
||||||
const bottonButtonStyle = computed(() => {
|
const bottomButtonStyle = computed(() => {
|
||||||
return {
|
return {
|
||||||
textAlign: props.buttomPosition as unknown as 'left' | 'center' | 'right'
|
textAlign: props.bottomPosition as unknown as 'left' | 'center' | 'right'
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -135,7 +135,7 @@ const setVisible = () => {
|
|||||||
</Form>
|
</Form>
|
||||||
|
|
||||||
<template v-if="layout === 'bottom'">
|
<template v-if="layout === 'bottom'">
|
||||||
<div :style="bottonButtonStyle">
|
<div :style="bottomButtonStyle">
|
||||||
<ElButton v-if="showSearch" type="primary" @click="search">
|
<ElButton v-if="showSearch" type="primary" @click="search">
|
||||||
<Icon class="mr-5px" icon="ep:search" />
|
<Icon class="mr-5px" icon="ep:search" />
|
||||||
{{ t('common.query') }}
|
{{ t('common.query') }}
|
||||||
|
@ -278,7 +278,6 @@ const getToolBarConfig = (options: XTableProps) => {
|
|||||||
if (toolbarConfig) return
|
if (toolbarConfig) return
|
||||||
if (toolBar) {
|
if (toolBar) {
|
||||||
if (!isBoolean(toolBar)) {
|
if (!isBoolean(toolBar)) {
|
||||||
console.info(2)
|
|
||||||
options.toolbarConfig = toolBar
|
options.toolbarConfig = toolBar
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -408,7 +408,7 @@ watch(
|
|||||||
{
|
{
|
||||||
icon: 'ep:close',
|
icon: 'ep:close',
|
||||||
label: t('common.closeTab'),
|
label: t('common.closeTab'),
|
||||||
disabled: !!visitedViews?.length && selectedTag?.meta.affix,
|
disabled: !!visitedViews?.length && selectedTag?.meta.affix,
|
||||||
command: () => {
|
command: () => {
|
||||||
closeSelectedTag(selectedTag!)
|
closeSelectedTag(selectedTag!)
|
||||||
}
|
}
|
||||||
|
@ -295,9 +295,9 @@ export default {
|
|||||||
logout: 'Login Out',
|
logout: 'Login Out',
|
||||||
test: 'Test',
|
test: 'Test',
|
||||||
typeCreate: 'Dict Type Create',
|
typeCreate: 'Dict Type Create',
|
||||||
typeUpdate: 'Dict Type Eidt',
|
typeUpdate: 'Dict Type Edit',
|
||||||
dataCreate: 'Dict Data Create',
|
dataCreate: 'Dict Data Create',
|
||||||
dataUpdate: 'Dict Data Eidt',
|
dataUpdate: 'Dict Data Edit',
|
||||||
fileUpload: 'File Upload'
|
fileUpload: 'File Upload'
|
||||||
},
|
},
|
||||||
dialog: {
|
dialog: {
|
||||||
|
@ -8,7 +8,7 @@ import { listSimpleDictDataApi } from '@/api/system/dict/dict.data'
|
|||||||
export interface DictValueType {
|
export interface DictValueType {
|
||||||
value: any
|
value: any
|
||||||
label: string
|
label: string
|
||||||
clorType?: string
|
colorType?: string
|
||||||
cssClass?: string
|
cssClass?: string
|
||||||
}
|
}
|
||||||
export interface DictTypeType {
|
export interface DictTypeType {
|
||||||
|
@ -90,7 +90,7 @@ export const useTagsViewStore = defineStore('tagsView', {
|
|||||||
// 删除其他
|
// 删除其他
|
||||||
delOthersViews(view: RouteLocationNormalizedLoaded) {
|
delOthersViews(view: RouteLocationNormalizedLoaded) {
|
||||||
this.delOthersVisitedViews(view)
|
this.delOthersVisitedViews(view)
|
||||||
this.addCachedView()
|
this.delCachedView()
|
||||||
},
|
},
|
||||||
// 删除其他tag
|
// 删除其他tag
|
||||||
delOthersVisitedViews(view: RouteLocationNormalizedLoaded) {
|
delOthersVisitedViews(view: RouteLocationNormalizedLoaded) {
|
||||||
|
@ -71,8 +71,8 @@ export const getTenantName = () => {
|
|||||||
return wsCache.get(TenantNameKey)
|
return wsCache.get(TenantNameKey)
|
||||||
}
|
}
|
||||||
|
|
||||||
export const setTenantName = (username: string) => {
|
export const setTenantName = (tenantName: string) => {
|
||||||
wsCache.set(TenantNameKey, username, { exp: 30 * 24 * 60 * 60 })
|
wsCache.set(TenantNameKey, tenantName, { exp: 30 * 24 * 60 * 60 })
|
||||||
}
|
}
|
||||||
|
|
||||||
export const removeTenantName = () => {
|
export const removeTenantName = () => {
|
||||||
|
@ -38,17 +38,10 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
</el-card>
|
</el-card>
|
||||||
<el-card class="box-card">
|
<el-card class="box-card">
|
||||||
<div class="clearfix">
|
<!-- <div class="clearfix">
|
||||||
<span class="el-icon-picture-outline">流程图</span>
|
<span class="el-icon-picture-outline">流程图</span>
|
||||||
</div>
|
</div> -->
|
||||||
<!-- TODO 芋艿:待完成??? -->
|
<ProcessInstanceBpmnViewer :bpmn-xml="bpmnXML" />
|
||||||
<my-process-viewer
|
|
||||||
key="designer"
|
|
||||||
v-model="bpmnXML"
|
|
||||||
:value="bpmnXML"
|
|
||||||
v-bind="bpmnControlForm"
|
|
||||||
:prefix="bpmnControlForm.prefix"
|
|
||||||
/>
|
|
||||||
</el-card>
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
</ContentWrap>
|
</ContentWrap>
|
||||||
@ -61,7 +54,7 @@ import * as ProcessInstanceApi from '@/api/bpm/processInstance'
|
|||||||
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 { DICT_TYPE } from '@/utils/dict'
|
import { DICT_TYPE } from '@/utils/dict'
|
||||||
|
import ProcessInstanceBpmnViewer from './detail/ProcessInstanceBpmnViewer.vue'
|
||||||
const router = useRouter() // 路由
|
const router = useRouter() // 路由
|
||||||
const message = useMessage() // 消息
|
const message = useMessage() // 消息
|
||||||
|
|
||||||
@ -140,12 +133,12 @@ const submitForm = async (formData) => {
|
|||||||
|
|
||||||
// // BPMN 数据
|
// // BPMN 数据
|
||||||
const bpmnXML = ref(null)
|
const bpmnXML = ref(null)
|
||||||
const bpmnControlForm = ref({
|
// const bpmnControlForm = ref({
|
||||||
prefix: 'flowable'
|
// prefix: 'flowable'
|
||||||
})
|
// })
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.my-process-designer {
|
.my-process-designer {
|
||||||
height: calc(100vh - 200px);
|
height: calc(100vh - 200px);
|
||||||
}
|
}
|
||||||
|
@ -49,7 +49,7 @@
|
|||||||
pre-icon="ep:edit"
|
pre-icon="ep:edit"
|
||||||
type="primary"
|
type="primary"
|
||||||
title="转办"
|
title="转办"
|
||||||
@click="handleUpdateAssignee(item)"
|
@click="openTaskUpdateAssigneeForm(item.id)"
|
||||||
/>
|
/>
|
||||||
<XButton
|
<XButton
|
||||||
pre-icon="ep:position"
|
pre-icon="ep:position"
|
||||||
@ -78,7 +78,7 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<!-- 情况二:流程表单 -->
|
<!-- 情况二:流程表单 -->
|
||||||
<div v-if="processInstance?.processDefinition?.formType === 20">
|
<div v-if="processInstance?.processDefinition?.formType === 20">
|
||||||
<router-link
|
<!-- <router-link
|
||||||
:to="
|
:to="
|
||||||
processInstance.processDefinition.formCustomViewPath +
|
processInstance.processDefinition.formCustomViewPath +
|
||||||
'?id=' +
|
'?id=' +
|
||||||
@ -86,24 +86,21 @@
|
|||||||
"
|
"
|
||||||
>
|
>
|
||||||
<XButton type="primary" preIcon="ep:view" title="点击查看" />
|
<XButton type="primary" preIcon="ep:view" title="点击查看" />
|
||||||
</router-link>
|
</router-link> -->
|
||||||
|
<autoComponent :id="processInstance.businessKey" />
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
|
|
||||||
<!-- 审批记录 -->
|
<!-- 审批记录 -->
|
||||||
<el-card class="box-card" v-loading="tasksLoad">
|
<!-- <el-card class="box-card" v-loading="tasksLoad">
|
||||||
<template #header>
|
<template #header>
|
||||||
<span class="el-icon-picture-outline">审批记录</span>
|
<span class="el-icon-picture-outline">审批记录</span>
|
||||||
</template>
|
</template>
|
||||||
<el-col :span="16" :offset="4">
|
<el-col :span="16" :offset="4">
|
||||||
<div class="block">
|
<div class="block">
|
||||||
<el-timeline>
|
<el-timeline>
|
||||||
<el-timeline-item
|
<el-timeline-item v-for="(item, index) in tasks" :key="index" :icon="getTimelineItemIcon(item)"
|
||||||
v-for="(item, index) in tasks"
|
:type="getTimelineItemType(item)">
|
||||||
:key="index"
|
|
||||||
:icon="getTimelineItemIcon(item)"
|
|
||||||
:type="getTimelineItemType(item)"
|
|
||||||
>
|
|
||||||
<p style="font-weight: 700">任务:{{ item.name }}</p>
|
<p style="font-weight: 700">任务:{{ item.name }}</p>
|
||||||
<el-card :body-style="{ padding: '10px' }">
|
<el-card :body-style="{ padding: '10px' }">
|
||||||
<label v-if="item.assigneeUser" style="font-weight: normal; margin-right: 30px">
|
<label v-if="item.assigneeUser" style="font-weight: normal; margin-right: 30px">
|
||||||
@ -134,79 +131,67 @@
|
|||||||
</el-timeline>
|
</el-timeline>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-card>
|
</el-card> -->
|
||||||
|
<ProcessInstanceTaskList :loading="tasksLoad" :tasks="tasks" />
|
||||||
|
|
||||||
<!-- 高亮流程图 -->
|
<!-- 高亮流程图 -->
|
||||||
<el-card class="box-card" v-loading="processInstanceLoading">
|
<!-- <el-card class="box-card" v-loading="processInstanceLoading"> -->
|
||||||
<template #header>
|
<!-- <template #header>
|
||||||
<span class="el-icon-picture-outline">流程图</span>
|
<span class="el-icon-picture-outline">流程图</span>
|
||||||
</template>
|
</template>
|
||||||
<my-process-viewer
|
<my-process-viewer key="designer" v-model="bpmnXML" :value="bpmnXML" v-bind="bpmnControlForm"
|
||||||
key="designer"
|
:prefix="bpmnControlForm.prefix" :activityData="activityList" :processInstanceData="processInstance"
|
||||||
v-model="bpmnXML"
|
:taskData="tasks" /> -->
|
||||||
:value="bpmnXML"
|
<ProcessInstanceBpmnViewer
|
||||||
v-bind="bpmnControlForm"
|
:id="`${id}`"
|
||||||
:prefix="bpmnControlForm.prefix"
|
:bpmn-xml="bpmnXML"
|
||||||
:activityData="activityList"
|
:loading="processInstanceLoading"
|
||||||
:processInstanceData="processInstance"
|
:process-instance="processInstance"
|
||||||
:taskData="tasks"
|
:tasks="tasks"
|
||||||
/>
|
/>
|
||||||
</el-card>
|
<!-- </el-card> -->
|
||||||
|
|
||||||
<!-- 对话框(转派审批人) -->
|
<!-- 对话框(转派审批人) -->
|
||||||
<XModal v-model="updateAssigneeVisible" title="转派审批人" width="500">
|
<!-- <XModal v-model="updateAssigneeVisible" title="转派审批人" width="500">
|
||||||
<el-form
|
<el-form ref="updateAssigneeFormRef" :model="updateAssigneeForm" :rules="updateAssigneeRules" label-width="110px">
|
||||||
ref="updateAssigneeFormRef"
|
|
||||||
:model="updateAssigneeForm"
|
|
||||||
:rules="updateAssigneeRules"
|
|
||||||
label-width="110px"
|
|
||||||
>
|
|
||||||
<el-form-item label="新审批人" prop="assigneeUserId">
|
<el-form-item label="新审批人" prop="assigneeUserId">
|
||||||
<el-select v-model="updateAssigneeForm.assigneeUserId" clearable style="width: 100%">
|
<el-select v-model="updateAssigneeForm.assigneeUserId" clearable style="width: 100%">
|
||||||
<el-option
|
<el-option v-for="item in userOptions" :key="parseInt(item.id)" :label="item.nickname"
|
||||||
v-for="item in userOptions"
|
:value="parseInt(item.id)" />
|
||||||
:key="parseInt(item.id)"
|
|
||||||
:label="item.nickname"
|
|
||||||
:value="parseInt(item.id)"
|
|
||||||
/>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<!-- 操作按钮 -->
|
操作按钮
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<!-- 按钮:保存 -->
|
按钮:保存
|
||||||
<XButton
|
<XButton type="primary" :title="t('action.save')" :loading="updateAssigneeLoading"
|
||||||
type="primary"
|
@click="submitUpdateAssigneeForm" />
|
||||||
:title="t('action.save')"
|
按钮:关闭
|
||||||
:loading="updateAssigneeLoading"
|
<XButton :loading="updateAssigneeLoading" :title="t('dialog.close')" @click="updateAssigneeLoading = false" />
|
||||||
@click="submitUpdateAssigneeForm"
|
|
||||||
/>
|
|
||||||
<!-- 按钮:关闭 -->
|
|
||||||
<XButton
|
|
||||||
:loading="updateAssigneeLoading"
|
|
||||||
:title="t('dialog.close')"
|
|
||||||
@click="updateAssigneeLoading = false"
|
|
||||||
/>
|
|
||||||
</template>
|
</template>
|
||||||
</XModal>
|
</XModal> -->
|
||||||
|
<TaskUpdateAssigneeForm ref="taskUpdateAssigneeFormRef" @success="getDetail" />
|
||||||
</ContentWrap>
|
</ContentWrap>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import dayjs from 'dayjs'
|
// import dayjs from 'dayjs'
|
||||||
import * as UserApi from '@/api/system/user'
|
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 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 * 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 { OptionAttrs } from '@form-create/element-ui/types/config'
|
// import { OptionAttrs } from '@form-create/element-ui/types/config'
|
||||||
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 { registerComponent } from '@/utils/routerHelper'
|
||||||
|
import ProcessInstanceBpmnViewer from './detail/ProcessInstanceBpmnViewer.vue'
|
||||||
|
import ProcessInstanceTaskList from './detail/ProcessInstanceTaskList.vue'
|
||||||
|
import TaskUpdateAssigneeForm from './detail/TaskUpdateAssigneeForm.vue'
|
||||||
const { query } = useRoute() // 查询参数
|
const { query } = useRoute() // 查询参数
|
||||||
const message = useMessage() // 消息弹窗
|
const message = useMessage() // 消息弹窗
|
||||||
const { t } = useI18n() // 国际化
|
// const { t } = useI18n() // 国际化
|
||||||
const { proxy } = getCurrentInstance() as any
|
const { proxy } = getCurrentInstance() as any
|
||||||
|
|
||||||
// ========== 审批信息 ==========
|
// ========== 审批信息 ==========
|
||||||
@ -262,88 +247,85 @@ const detailForm = ref({
|
|||||||
const tasksLoad = ref(true)
|
const tasksLoad = ref(true)
|
||||||
const tasks = ref<any[]>([])
|
const tasks = ref<any[]>([])
|
||||||
|
|
||||||
const getTimelineItemIcon = (item) => {
|
// const getTimelineItemIcon = (item) => {
|
||||||
if (item.result === 1) {
|
// if (item.result === 1) {
|
||||||
return 'el-icon-time'
|
// return 'el-icon-time'
|
||||||
}
|
// }
|
||||||
if (item.result === 2) {
|
// if (item.result === 2) {
|
||||||
return 'el-icon-check'
|
// return 'el-icon-check'
|
||||||
}
|
// }
|
||||||
if (item.result === 3) {
|
// if (item.result === 3) {
|
||||||
return 'el-icon-close'
|
// return 'el-icon-close'
|
||||||
}
|
// }
|
||||||
if (item.result === 4) {
|
// if (item.result === 4) {
|
||||||
return 'el-icon-remove-outline'
|
// return 'el-icon-remove-outline'
|
||||||
}
|
// }
|
||||||
return ''
|
// return ''
|
||||||
}
|
// }
|
||||||
const getTimelineItemType = (item) => {
|
// const getTimelineItemType = (item) => {
|
||||||
if (item.result === 1) {
|
// if (item.result === 1) {
|
||||||
return 'primary'
|
// return 'primary'
|
||||||
}
|
// }
|
||||||
if (item.result === 2) {
|
// if (item.result === 2) {
|
||||||
return 'success'
|
// return 'success'
|
||||||
}
|
// }
|
||||||
if (item.result === 3) {
|
// if (item.result === 3) {
|
||||||
return 'danger'
|
// return 'danger'
|
||||||
}
|
// }
|
||||||
if (item.result === 4) {
|
// if (item.result === 4) {
|
||||||
return 'info'
|
// return 'info'
|
||||||
}
|
// }
|
||||||
return ''
|
// return ''
|
||||||
}
|
// }
|
||||||
|
|
||||||
// ========== 审批记录 ==========
|
// ========== 审批记录 ==========
|
||||||
const updateAssigneeVisible = ref(false)
|
// const updateAssigneeVisible = ref(false)
|
||||||
const updateAssigneeLoading = ref(false)
|
// const updateAssigneeLoading = ref(false)
|
||||||
const updateAssigneeForm = ref({
|
// const updateAssigneeForm = ref({
|
||||||
id: undefined,
|
// id: undefined,
|
||||||
assigneeUserId: undefined
|
// assigneeUserId: undefined
|
||||||
})
|
// })
|
||||||
const updateAssigneeRules = ref({
|
// const updateAssigneeRules = ref({
|
||||||
assigneeUserId: [{ required: true, message: '新审批人不能为空', trigger: 'change' }]
|
// assigneeUserId: [{ required: true, message: '新审批人不能为空', trigger: 'change' }]
|
||||||
})
|
// })
|
||||||
const updateAssigneeFormRef = ref()
|
// const updateAssigneeFormRef = ref()
|
||||||
const userOptions = ref<any[]>([])
|
const userOptions = ref<any[]>([])
|
||||||
|
|
||||||
// 处理转派审批人
|
// 处理转派审批人
|
||||||
const handleUpdateAssignee = (task) => {
|
const taskUpdateAssigneeFormRef = ref()
|
||||||
// 设置表单
|
const openTaskUpdateAssigneeForm = (id: string) => {
|
||||||
resetUpdateAssigneeForm()
|
taskUpdateAssigneeFormRef.value.open(id)
|
||||||
updateAssigneeForm.value.id = task.id
|
|
||||||
// 设置为打开
|
|
||||||
updateAssigneeVisible.value = true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 提交转派审批人
|
// 提交转派审批人
|
||||||
const submitUpdateAssigneeForm = async () => {
|
// const submitUpdateAssigneeForm = async () => {
|
||||||
// 1. 校验表单
|
// // 1. 校验表单
|
||||||
const elForm = unref(updateAssigneeFormRef)
|
// const elForm = unref(updateAssigneeFormRef)
|
||||||
if (!elForm) return
|
// if (!elForm) return
|
||||||
const valid = await elForm.validate()
|
// const valid = await elForm.validate()
|
||||||
if (!valid) return
|
// if (!valid) return
|
||||||
|
|
||||||
// 2.1 提交审批
|
// // 2.1 提交审批
|
||||||
updateAssigneeLoading.value = true
|
// updateAssigneeLoading.value = true
|
||||||
try {
|
// try {
|
||||||
await TaskApi.updateTaskAssignee(updateAssigneeForm.value)
|
// await TaskApi.updateTaskAssignee(updateAssigneeForm.value)
|
||||||
// 2.2 设置为隐藏
|
// // 2.2 设置为隐藏
|
||||||
updateAssigneeVisible.value = false
|
// updateAssigneeVisible.value = false
|
||||||
// 加载最新数据
|
// // 加载最新数据
|
||||||
getDetail()
|
// getDetail()
|
||||||
} finally {
|
// } finally {
|
||||||
updateAssigneeLoading.value = false
|
// updateAssigneeLoading.value = false
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
// 重置转派审批人表单
|
// 重置转派审批人表单
|
||||||
const resetUpdateAssigneeForm = () => {
|
// const resetUpdateAssigneeForm = () => {
|
||||||
updateAssigneeForm.value = {
|
// updateAssigneeForm.value = {
|
||||||
id: undefined,
|
// id: undefined,
|
||||||
assigneeUserId: undefined
|
// assigneeUserId: undefined
|
||||||
}
|
// }
|
||||||
updateAssigneeFormRef.value?.resetFields()
|
// updateAssigneeFormRef.value?.resetFields()
|
||||||
}
|
// }
|
||||||
|
|
||||||
/** 处理审批退回的操作 */
|
/** 处理审批退回的操作 */
|
||||||
const handleDelegate = async (task) => {
|
const handleDelegate = async (task) => {
|
||||||
@ -368,9 +350,9 @@ const handleBack = async (task) => {
|
|||||||
|
|
||||||
// ========== 高亮流程图 ==========
|
// ========== 高亮流程图 ==========
|
||||||
const bpmnXML = ref(null)
|
const bpmnXML = ref(null)
|
||||||
const bpmnControlForm = ref({
|
// const bpmnControlForm = ref({
|
||||||
prefix: 'flowable'
|
// prefix: 'flowable'
|
||||||
})
|
// })
|
||||||
const activityList = ref([])
|
const activityList = ref([])
|
||||||
|
|
||||||
// ========== 初始化 ==========
|
// ========== 初始化 ==========
|
||||||
@ -382,7 +364,7 @@ onMounted(() => {
|
|||||||
userOptions.value.push(...data)
|
userOptions.value.push(...data)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
const autoComponent = ref(null) // 异步组件
|
||||||
const getDetail = () => {
|
const getDetail = () => {
|
||||||
// 1. 获得流程实例相关
|
// 1. 获得流程实例相关
|
||||||
processInstanceLoading.value = true
|
processInstanceLoading.value = true
|
||||||
@ -393,6 +375,7 @@ const getDetail = () => {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
processInstance.value = data
|
processInstance.value = data
|
||||||
|
autoComponent.value = registerComponent(data.processDefinition.formCustomViewPath)
|
||||||
|
|
||||||
// 设置表单信息
|
// 设置表单信息
|
||||||
const processDefinition = data.processDefinition
|
const processDefinition = data.processDefinition
|
||||||
@ -478,7 +461,7 @@ const getDetail = () => {
|
|||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.my-process-designer {
|
.my-process-designer {
|
||||||
height: calc(100vh - 200px);
|
height: calc(100vh - 200px);
|
||||||
}
|
}
|
||||||
|
@ -134,7 +134,7 @@
|
|||||||
:check-strictly="!checkStrictly"
|
:check-strictly="!checkStrictly"
|
||||||
:props="defaultProps"
|
:props="defaultProps"
|
||||||
:data="treeOptions"
|
:data="treeOptions"
|
||||||
empty-text="加载中,请稍后"
|
empty-text="加载中,请稍候"
|
||||||
/>
|
/>
|
||||||
</el-card>
|
</el-card>
|
||||||
</el-form-item> </el-col
|
</el-form-item> </el-col
|
||||||
|
@ -9,19 +9,12 @@ export const rules = reactive({
|
|||||||
})
|
})
|
||||||
// CrudSchema
|
// CrudSchema
|
||||||
const crudSchemas = reactive<VxeCrudSchema>({
|
const crudSchemas = reactive<VxeCrudSchema>({
|
||||||
// primaryKey: 'id',
|
primaryKey: 'id',
|
||||||
// primaryTitle: '角色编号',
|
primaryTitle: '角色编号',
|
||||||
// primaryType: 'seq',
|
primaryType: 'id',
|
||||||
action: true,
|
action: true,
|
||||||
actionWidth: '400px',
|
actionWidth: '400px',
|
||||||
columns: [
|
columns: [
|
||||||
{
|
|
||||||
title: '角色编号',
|
|
||||||
field: 'id',
|
|
||||||
table: {
|
|
||||||
width: 200
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
title: '角色名称',
|
title: '角色名称',
|
||||||
field: 'name',
|
field: 'name',
|
||||||
|
12
types/global.d.ts
vendored
12
types/global.d.ts
vendored
@ -19,7 +19,17 @@ declare global {
|
|||||||
| 'application/x-www-form-urlencoded'
|
| 'application/x-www-form-urlencoded'
|
||||||
| 'multipart/form-data'
|
| 'multipart/form-data'
|
||||||
|
|
||||||
type AxiosMethod = 'get' | 'post' | 'delete' | 'put' | 'GET' | 'POST' | 'DELETE' | 'PUT'
|
type AxiosMethod =
|
||||||
|
| 'get'
|
||||||
|
| 'post'
|
||||||
|
| 'delete'
|
||||||
|
| 'put'
|
||||||
|
| 'patch'
|
||||||
|
| 'GET'
|
||||||
|
| 'POST'
|
||||||
|
| 'DELETE'
|
||||||
|
| 'PUT'
|
||||||
|
| 'PATCH'
|
||||||
|
|
||||||
type AxiosResponseType = 'arraybuffer' | 'blob' | 'document' | 'json' | 'text' | 'stream'
|
type AxiosResponseType = 'arraybuffer' | 'blob' | 'document' | 'json' | 'text' | 'stream'
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user