perf 流程设计器

This commit is contained in:
xxm1995
2023-03-28 19:58:35 +08:00
parent bb92f60466
commit a0fbd73ad6
6 changed files with 45 additions and 50 deletions

View File

@@ -38,7 +38,7 @@
// 字段
fields: QueryField[]
// 查询条件
queryParams: QueryParam[]
queryParams: object
// 默认展示几个
defaultItemCount?: number
// 所占栅格宽度

View File

@@ -98,7 +98,7 @@
import { watch, watchEffect } from 'vue'
interface Props {
fields: QueryField[]
queryParams: QueryParam[]
queryParams: object
}
const props = withDefaults(defineProps<Props>(), {})
const emit = defineEmits(['change', 'update:queryParams'])

View File

@@ -6,7 +6,7 @@
}
.iconfont {
font-family: "iconfont" !important;
font-family: "iconfont", serif !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;

View File

@@ -2,7 +2,7 @@
<div class="flow-containers" style="height: 100%">
<a-layout style="height: 100%">
<a-layout-header theme="light" style="border-bottom: 1px solid rgb(218 218 218); height: auto; background-color: #fff">
<div v-if="!isView" style="display: flex; padding: 5px 0px; justify-content: space-between">
<div v-if="!isView" style="display: flex; padding: 5px 0; justify-content: space-between">
<a-space>
<a-upload v-if="isEdit" name="file" action="" accept=".bpmn,.xml" :showUploadList="false" :beforeUpload="openBpmn">
<a-tooltip effect="dark" title="打开" placement="bottom">
@@ -57,49 +57,29 @@
<a-layout-content style="padding: 0; margin-top: 10px">
<div id="canvas" ref="canvas" class="canvas"></div>
</a-layout-content>
<!-- 属性配置栏 -->
<a-layout-sider class="sider">
<div style="width: 100%; text-align: center" v-if="!panelVisible" @click="panelVisible = true">
<i class="iconfont icon-left-graph" style="font-size: 32px"></i>
</div>
<a-drawer
width="400px"
placement="right"
v-show="panelVisible"
:visible="panelVisible"
:closable="false"
:get-container="false"
:style="{ position: 'absolute' }"
@close="panelVisible = false"
>
<template #title>
<i class="iconfont icon-right-graph" style="font-size: 24px" @click="panelVisible = false"></i><span>{{ panelTitle }}</span>
</template>
<div>234234234</div>
<process-panel />
</a-drawer>
</a-layout-sider>
</a-layout>
<a-layout-sider
style="background: #fff; min-width: 40px; width: 40px; max-width: 40px; border-left: 1px solid #eeeeee; box-shadow: 0 0 8px #cccccc"
>
<div style="width: 100%; text-align: center" @click="panelVisible = true">
<i class="iconfont icon-left-graph" style="font-size: 32px" v-if="panelExist"></i>
</div>
<a-drawer
width="400px"
placement="right"
:closable="false"
:visible="panelVisible && panelExist"
:get-container="false"
:wrap-style="{ position: 'absolute' }"
>
<template #title>
<i class="iconfont icon-right-graph" style="font-size: 32px" @click="panelVisible = false"></i><span>{{ panelTitle }}</span>
</template>
<panel
v-if="modeler"
ref="panel"
:filters="panelFilters"
:modeler="modeler"
:users="users"
:groups="groups"
:categories="categories"
:categories-fields="categoriesFields"
:associate-form-config="associateFormConfig"
:associate-form-data-options="associateFormDataOptions"
:assignee-data-source="assigneeDataSource"
:due-date-data-source="dueDateDataSource"
:follow-up-date-data-source="followUpDateDataSource"
:initiator-data-source="initiatorDataSource"
:skip-expression-data-source="skipExpressionDataSource"
:condition-expression-data-source="conditionExpressionDataSource"
:candidate-user-data-source="candidateUserDataSource"
:candidate-group-data-source="candidateGroupDataSource"
@showForm="showAssociateForm"
@createForm="createAssociateForm"
@change="handlePanelChange"
/>
</a-drawer>
</a-layout-sider>
</a-layout>
<!-- xml预览 -->
<basic-modal v-bind="$attrs" width="60%" title="XML" :visible="codeVisible" @cancel="codeVisible = false">
@@ -112,18 +92,23 @@
</template>
<script lang="ts" setup>
import 'bpmn-js/dist/assets/diagram-js.css' // 左边工具栏以及编辑节点的样式
// 左边工具栏以及编辑节点的样式
import 'bpmn-js/dist/assets/diagram-js.css'
import 'bpmn-js/dist/assets/bpmn-font/css/bpmn.css'
import 'bpmn-js/dist/assets/bpmn-font/css/bpmn-codes.css'
import 'bpmn-js/dist/assets/bpmn-font/css/bpmn-embedded.css'
import '/@/components/Bpmn/icon/iconfont.css'
import { ref } from 'vue'
import Icon from '/@/components/Icon'
import CodeEditor from '/@/components/CodeEditor/src/CodeEditor.vue'
import ProcessPanel from './ProcessPanel.vue'
import { MODE } from '/@/components/CodeEditor'
import BasicModal from '/@/components/Modal/src/BasicModal.vue'
import useProcessDesign from '/@/views/modules/bpm/design/useProcessDesign'
import { $ref } from '@vue-macros/reactivity-transform/macros'
import BasicDrawer from '/@/components/Drawer/src/BasicDrawer.vue'
// 挂载元素
let canvas = ref<any>()
@@ -151,8 +136,9 @@
clearDiagram,
} = useProcessDesign('#canvas', emit)
// 是否显示右侧编辑栏
let panelVisible = $ref(false)
let panelExist = $ref(false)
let panelTitle = $ref('属性配置栏')
defineExpose({
renderer,
@@ -164,6 +150,15 @@
width: 100%;
height: 100%;
}
// 不知哪边的重写了这边的宽度
.sider {
background: #fff;
min-width: 40px !important;
width: 40px !important;
max-width: 40px !important;
border-left: 1px solid #eeeeee;
box-shadow: 0 0 8px #cccccc;
}
.view-mode {
.ant-layout-header,
.ant-layout-sider,

View File

@@ -118,7 +118,7 @@
USER,
ROLE,
} from '/@/views/modules/bpm/model/node/BpmModelNodeCode'
import BUserSelectModal from '/@/components/Bootx/UserSelectModal'
import BUserSelectModal from '/@/components/Bootx/UserSelectModal/BUserSelectModal.vue'
import BRoleSelectModal from '/@/components/Bootx/RoleSelectModal/BRoleSelectModal.vue'
import { UserInfo } from '/@/views/modules/system/user/User.api'
import { Role } from '/@/views/modules/system/role/Role.api'

View File

@@ -30,7 +30,7 @@
import BasicDrawer from '/@/components/Drawer/src/BasicDrawer.vue'
import { $ref } from '@vue-macros/reactivity-transform/macros'
import { DataScopeUser, deleteBatchUserAssign, findUsersByDataScopeId, saveUserAssign } from '/@/views/modules/system/scope/DataScope.api'
import { BUserSelectModal } from '/@/components/Bootx/UserSelectModal'
import { BUserSelectModal } from '/@/components/Bootx/UserSelectModal/BUserSelectModal.vue'
import { VxeTableInstance } from 'vxe-table'
let loading = $ref(false)