mirror of
https://gitee.com/orangeform/orange-admin.git
synced 2026-01-17 18:46:36 +08:00
commit:修复工作流bug,修复builder报错
This commit is contained in:
@@ -391,17 +391,10 @@ const onAggregationTableIdChange = () => {
|
||||
currentColumn.value.objectFieldType = undefined;
|
||||
}
|
||||
|
||||
if (aggregationRelation.value) {
|
||||
if (
|
||||
Array.isArray(aggregationRelation.value.columnList) &&
|
||||
aggregationRelation.value.columnList.length > 0
|
||||
) {
|
||||
aggregationColumnList.value = aggregationRelation.value.columnList;
|
||||
} else {
|
||||
loadOnlineTableColumnList(aggregationRelation.value.tableId).catch(e => {
|
||||
console.warn(e);
|
||||
});
|
||||
}
|
||||
if (aggregationRelation.value && currentColumn.value) {
|
||||
loadOnlineTableColumnList(currentColumn.value.aggregationTableId).catch(e => {
|
||||
console.warn(e);
|
||||
});
|
||||
}
|
||||
};
|
||||
const onAggregationColumnIdChange = () => {
|
||||
|
||||
@@ -220,7 +220,6 @@ const getValidColumnList = computed(() => {
|
||||
data.value.widgetType,
|
||||
formType.value,
|
||||
);
|
||||
console.log(disabled, warningMsg, item);
|
||||
// 查询页面仅能选择支持过滤的字段
|
||||
if (
|
||||
!disabled &&
|
||||
|
||||
@@ -1189,11 +1189,8 @@ defineExpose({
|
||||
.design-box {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
// background: white;
|
||||
width: 100%;
|
||||
height: calc(100% - 48px);
|
||||
// border: 1px solid #E8E8E8;
|
||||
// padding: 25px;
|
||||
}
|
||||
}
|
||||
.attribute-panel {
|
||||
|
||||
@@ -377,7 +377,7 @@
|
||||
header-cell-class-name="table-header-gray"
|
||||
height="300px"
|
||||
>
|
||||
<vxe-column title="选择" header-align="center" align="center" width="50px">
|
||||
<vxe-column title="选择" header-align="center" align="center" width="60px">
|
||||
<template v-slot="scope">
|
||||
<el-radio :value="scope.row.dictCode"> </el-radio>
|
||||
</template>
|
||||
|
||||
@@ -90,7 +90,6 @@ const layoutStore = useLayoutStore();
|
||||
|
||||
const props = defineProps<{
|
||||
deptId?: string;
|
||||
defaultFormItemSize: Ref<'' | 'default' | 'small' | 'large'>;
|
||||
// 当使用Dialog.show弹出组件时,须定义该prop属性,以便对dialog进行回调
|
||||
dialog?: DialogProp<ANY_OBJECT>;
|
||||
}>();
|
||||
|
||||
@@ -54,7 +54,6 @@ const props = defineProps<{
|
||||
columnName?: string;
|
||||
showOrder?: number;
|
||||
icon?: string;
|
||||
defaultFormItemSize: Ref<'' | 'default' | 'small' | 'large'>;
|
||||
// 当使用Dialog.show弹出组件时,须定义该prop属性,以便对dialog进行回调
|
||||
dialog?: DialogProp<T>;
|
||||
}>();
|
||||
|
||||
@@ -211,7 +211,6 @@ const props = defineProps<{
|
||||
parentId?: string;
|
||||
menuList: MenuItem[];
|
||||
rowData?: MenuItem;
|
||||
defaultFormItemSize: Ref<'' | 'default' | 'small' | 'large'>;
|
||||
// 当使用Dialog.show弹出组件时,须定义该prop属性,以便对dialog进行回调
|
||||
dialog?: DialogProp<ANY_OBJECT>;
|
||||
}>();
|
||||
|
||||
@@ -75,7 +75,6 @@ const layoutStore = useLayoutStore();
|
||||
|
||||
const props = defineProps<{
|
||||
postId?: string;
|
||||
defaultFormItemSize: Ref<'' | 'default' | 'small' | 'large'>;
|
||||
// 当使用Dialog.show弹出组件时,须定义该prop属性,以便对dialog进行回调
|
||||
dialog?: DialogProp<ANY_OBJECT>;
|
||||
}>();
|
||||
|
||||
@@ -86,7 +86,6 @@ const layoutStore = useLayoutStore();
|
||||
|
||||
const props = defineProps<{
|
||||
rowData?: Role;
|
||||
defaultFormItemSize: Ref<'' | 'default' | 'small' | 'large'>;
|
||||
// 当使用Dialog.show弹出组件时,须定义该prop属性,以便对dialog进行回调
|
||||
dialog?: DialogProp<ANY_OBJECT>;
|
||||
}>();
|
||||
|
||||
@@ -145,7 +145,6 @@ const layoutStore = useLayoutStore();
|
||||
|
||||
const props = defineProps<{
|
||||
rowData?: User;
|
||||
defaultFormItemSize: Ref<'' | 'default' | 'small' | 'large'>;
|
||||
// 当使用Dialog.show弹出组件时,须定义该prop属性,以便对dialog进行回调
|
||||
dialog?: DialogProp<ANY_OBJECT>;
|
||||
}>();
|
||||
|
||||
@@ -131,7 +131,6 @@ const layoutStore = useLayoutStore();
|
||||
|
||||
const props = defineProps<{
|
||||
dataPermId: string | number;
|
||||
defaultFormItemSize: Ref<'' | 'default' | 'small' | 'large'>;
|
||||
}>();
|
||||
const formItemSize = computed(() => {
|
||||
return layoutStore.defaultFormItemSize;
|
||||
|
||||
@@ -114,7 +114,6 @@ const layoutStore = useLayoutStore();
|
||||
|
||||
interface IProps extends ThirdProps {
|
||||
deptId: string;
|
||||
defaultFormItemSize: Ref<'' | 'default' | 'small' | 'large'>;
|
||||
// 当使用Dialog.show弹出组件时,须定义该prop属性,以便对dialog进行回调
|
||||
dialog?: DialogProp<ANY_OBJECT>;
|
||||
}
|
||||
|
||||
@@ -255,10 +255,10 @@ import { ANY_OBJECT } from '@/types/generic';
|
||||
import FormEditGlobalDict from '@/pages/upms/formEditGlobalDict/index.vue';
|
||||
import FormEditDictData from '@/pages/upms/formEditDictData/index.vue';
|
||||
import { treeDataTranslate } from '@/common/utils';
|
||||
import { useLayoutStore } from '@/store';
|
||||
import { useDialog } from '@/components/Dialog/useDialog';
|
||||
|
||||
const Dialog = useDialog();
|
||||
import { useLayoutStore } from '@/store';
|
||||
const layoutStore = useLayoutStore();
|
||||
const mainContextHeight = inject('mainContextHeight', 200);
|
||||
const { checkPermCodeExist } = usePermissions();
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
:size="layoutStore.defaultFormItemSize"
|
||||
:tree-config="{ rowField: 'menuId', parentField: 'parentId' }"
|
||||
@refresh="initFormData"
|
||||
class="border-bottom-0"
|
||||
class="border-bottom-0 page-table"
|
||||
>
|
||||
<template v-slot:operator>
|
||||
<el-button
|
||||
@@ -173,7 +173,6 @@ import { MenuItem } from '@/types/upms/menu';
|
||||
import { SystemMenuController } from '@/api/system';
|
||||
import { useLayoutStore } from '@/store';
|
||||
import { useMenuTools } from './hooks';
|
||||
|
||||
const { checkPermCodeExist } = usePermissions();
|
||||
const activeFragment = ref('fragmentSysColumn');
|
||||
const currentColumnId: Ref<string | undefined> = ref();
|
||||
|
||||
@@ -133,11 +133,19 @@ const formData = reactive({
|
||||
onMounted(() => {
|
||||
const log = { ...props.rowData };
|
||||
if (props.rowData.requestArguments) {
|
||||
log.requestArguments = JSON.parse(props.rowData.requestArguments.toString()) || {};
|
||||
try {
|
||||
log.requestArguments = JSON.parse(props.rowData.requestArguments.toString()) || {};
|
||||
} catch (e) {
|
||||
log.requestArguments = props.rowData.requestArguments;
|
||||
}
|
||||
}
|
||||
log.requestArguments = log.requestArguments || {};
|
||||
if (props.rowData.responseResult) {
|
||||
log.responseResult = JSON.parse(props.rowData.responseResult.toString()) || {};
|
||||
try {
|
||||
log.responseResult = JSON.parse(props.rowData.responseResult.toString()) || {};
|
||||
} catch (e) {
|
||||
log.responseResult = props.rowData.responseResult;
|
||||
}
|
||||
}
|
||||
log.responseResult = log.responseResult || {};
|
||||
formData.formViewSysOperationLog = log;
|
||||
|
||||
@@ -128,7 +128,6 @@ const layoutStore = useLayoutStore();
|
||||
|
||||
const props = defineProps<{
|
||||
roleId: string | number;
|
||||
defaultFormItemSize: Ref<'' | 'default' | 'small' | 'large'>;
|
||||
}>();
|
||||
|
||||
const formItemSize = computed(() => {
|
||||
|
||||
@@ -173,7 +173,7 @@ const layoutStore = useLayoutStore();
|
||||
const Dialog = useDialog();
|
||||
const mainContextHeight = inject('mainContextHeight', 200);
|
||||
const form = ref();
|
||||
const deptIdPath = ref([]);
|
||||
const deptIdPath = ref<Array<string | number>>([]);
|
||||
|
||||
const deptOptions = { value: 'id', label: 'name', checkStrictly: true };
|
||||
|
||||
|
||||
@@ -125,7 +125,9 @@ import { Dialog } from '@/components/Dialog';
|
||||
import { SysFlowCopyForType } from '@/common/staticDict/flow';
|
||||
import { useThirdParty } from '@/components/thirdParty/hooks';
|
||||
import { ThirdProps } from '@/components/thirdParty/types';
|
||||
import { useLayoutStore } from '@/store';
|
||||
|
||||
const layoutStore = useLayoutStore();
|
||||
interface IProps extends ThirdProps {
|
||||
deptList: ANY_OBJECT[];
|
||||
postList: ANY_OBJECT[];
|
||||
@@ -136,8 +138,6 @@ interface IProps extends ThirdProps {
|
||||
}
|
||||
const props = defineProps<IProps>();
|
||||
const { thirdParams, onCloseThirdDialog } = useThirdParty(props);
|
||||
import { useLayoutStore } from '@/store';
|
||||
const layoutStore = useLayoutStore();
|
||||
const deptId = ref<string>();
|
||||
const selectDeptList = ref<ANY_OBJECT[]>([]);
|
||||
const formData = ref<ANY_OBJECT>({
|
||||
|
||||
@@ -400,7 +400,6 @@ onUnmounted(() => {
|
||||
}
|
||||
|
||||
.copy-select :deep(.el-tag) {
|
||||
//margin-right: 10px;
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
|
||||
@@ -196,7 +196,7 @@ const props = withDefaults(
|
||||
// 当前任务节点名称
|
||||
taskName?: string;
|
||||
// 当前任务节点操作列表
|
||||
operationList?: Array<ANY_OBJECT>;
|
||||
operationList?: Array<ANY_OBJECT> | string;
|
||||
}>(),
|
||||
{
|
||||
isDraft: false,
|
||||
@@ -219,8 +219,11 @@ const copyItemList = ref<ANY_OBJECT[]>([]);
|
||||
const assigneeList = ref<ANY_OBJECT[]>([]);
|
||||
|
||||
const flowOperationList = computed<ANY_OBJECT[]>(() => {
|
||||
if (Array.isArray(props.operationList)) {
|
||||
return props.operationList.map(item => {
|
||||
const operationList = Array.isArray(props.operationList)
|
||||
? props.operationList
|
||||
: JSON.parse(props.operationList || '[]');
|
||||
if (Array.isArray(operationList)) {
|
||||
return operationList.map(item => {
|
||||
if (item.type === SysFlowTaskOperationType.MULTI_SIGN && item.multiSignAssignee != null) {
|
||||
let multiSignAssignee = {
|
||||
...item.multiSignAssignee,
|
||||
@@ -443,7 +446,6 @@ onMounted(() => {
|
||||
|
||||
<style lang="scss">
|
||||
@import url('../package/theme/index.scss');
|
||||
// 边框被 token-simulation 样式覆盖了
|
||||
.djs-palette {
|
||||
background: var(--palette-background-color);
|
||||
border: solid 1px var(--palette-border-color) !important;
|
||||
@@ -546,7 +548,6 @@ onMounted(() => {
|
||||
}
|
||||
}
|
||||
|
||||
//侧边栏配置
|
||||
.djs-palette.open {
|
||||
.djs-palette-entries {
|
||||
div[class^='bpmn-icon-']:before,
|
||||
@@ -598,9 +599,7 @@ pre {
|
||||
font-family: Consolas, Monaco, monospace;
|
||||
}
|
||||
|
||||
// 流程图
|
||||
.djs-container {
|
||||
// 框
|
||||
.djs-visual {
|
||||
rect,
|
||||
polygon,
|
||||
@@ -617,17 +616,13 @@ pre {
|
||||
stroke: #333333 !important;
|
||||
}
|
||||
}
|
||||
// 线
|
||||
.djs-visual path {
|
||||
stroke: #333333 !important;
|
||||
}
|
||||
|
||||
// 实心箭头
|
||||
[id^='sequenceflow-end-white-black'] path {
|
||||
fill: #333333 !important;
|
||||
stroke: #333333 !important;
|
||||
}
|
||||
// 空心箭头
|
||||
[id^='conditional-flow-marker-white-black'] path {
|
||||
stroke: #333333 !important;
|
||||
}
|
||||
|
||||
@@ -85,7 +85,6 @@ defineExpose({
|
||||
|
||||
<style lang="scss">
|
||||
@import url('../package/theme/index.scss');
|
||||
// 边框被 token-simulation 样式覆盖了
|
||||
.djs-palette {
|
||||
background: var(--palette-background-color);
|
||||
border: solid 1px var(--palette-border-color) !important;
|
||||
@@ -187,8 +186,6 @@ defineExpose({
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//侧边栏配置
|
||||
.djs-palette.open {
|
||||
.djs-palette-entries {
|
||||
div[class^='bpmn-icon-']:before,
|
||||
@@ -239,10 +236,7 @@ pre {
|
||||
.hljs * {
|
||||
font-family: Consolas, Monaco, monospace;
|
||||
}
|
||||
|
||||
// 流程图
|
||||
.djs-container {
|
||||
// 框
|
||||
.djs-visual {
|
||||
rect,
|
||||
polygon,
|
||||
@@ -259,17 +253,13 @@ pre {
|
||||
stroke: #333333 !important;
|
||||
}
|
||||
}
|
||||
// 线
|
||||
.djs-visual path {
|
||||
stroke: #333333 !important;
|
||||
}
|
||||
|
||||
// 实心箭头
|
||||
[id^='sequenceflow-end-white-black'] path {
|
||||
fill: #333333 !important;
|
||||
stroke: #333333 !important;
|
||||
}
|
||||
// 空心箭头
|
||||
[id^='conditional-flow-marker-white-black'] path {
|
||||
stroke: #333333 !important;
|
||||
}
|
||||
|
||||
@@ -442,7 +442,6 @@ $current-color: #409eff;
|
||||
.process-viewer .djs-palette {
|
||||
display: none;
|
||||
}
|
||||
// 边框被 token-simulation 样式覆盖了
|
||||
.djs-palette {
|
||||
background: var(--palette-background-color);
|
||||
border: solid 1px var(--palette-border-color) !important;
|
||||
@@ -544,8 +543,6 @@ $current-color: #409eff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//侧边栏配置
|
||||
.djs-palette.open {
|
||||
.djs-palette-entries {
|
||||
div[class^='bpmn-icon-']:before,
|
||||
@@ -596,10 +593,7 @@ pre {
|
||||
.hljs * {
|
||||
font-family: Consolas, Monaco, monospace;
|
||||
}
|
||||
|
||||
// 流程图
|
||||
.djs-container {
|
||||
// 框
|
||||
.djs-visual {
|
||||
rect,
|
||||
polygon,
|
||||
@@ -616,17 +610,13 @@ pre {
|
||||
stroke: #333333 !important;
|
||||
}
|
||||
}
|
||||
// 线
|
||||
.djs-visual path {
|
||||
stroke: #333333 !important;
|
||||
}
|
||||
|
||||
// 实心箭头
|
||||
[id^='sequenceflow-end-white-black'] path {
|
||||
fill: #333333 !important;
|
||||
stroke: #333333 !important;
|
||||
}
|
||||
// 空心箭头
|
||||
[id^='conditional-flow-marker-white-black'] path {
|
||||
stroke: #333333 !important;
|
||||
}
|
||||
|
||||
@@ -266,7 +266,6 @@ watch(
|
||||
|
||||
<style lang="scss">
|
||||
@import url('../../package/theme/index.scss');
|
||||
// 边框被 token-simulation 样式覆盖了
|
||||
.djs-palette {
|
||||
background: var(--palette-background-color);
|
||||
border: solid 1px var(--palette-border-color) !important;
|
||||
@@ -368,8 +367,6 @@ watch(
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//侧边栏配置
|
||||
.djs-palette.open {
|
||||
.djs-palette-entries {
|
||||
div[class^='bpmn-icon-']:before,
|
||||
@@ -420,10 +417,7 @@ pre {
|
||||
.hljs * {
|
||||
font-family: Consolas, Monaco, monospace;
|
||||
}
|
||||
|
||||
// 流程图
|
||||
.djs-container {
|
||||
// 框
|
||||
.djs-visual {
|
||||
rect,
|
||||
polygon,
|
||||
@@ -440,17 +434,13 @@ pre {
|
||||
stroke: #333333 !important;
|
||||
}
|
||||
}
|
||||
// 线
|
||||
.djs-visual path {
|
||||
stroke: #333333 !important;
|
||||
}
|
||||
|
||||
// 实心箭头
|
||||
[id^='sequenceflow-end-white-black'] path {
|
||||
fill: #333333 !important;
|
||||
stroke: #333333 !important;
|
||||
}
|
||||
// 空心箭头
|
||||
[id^='conditional-flow-marker-white-black'] path {
|
||||
stroke: #333333 !important;
|
||||
}
|
||||
|
||||
@@ -125,12 +125,14 @@ import { useLayoutStore } from '@/store';
|
||||
const layoutStore = useLayoutStore();
|
||||
|
||||
interface IProps extends ThirdProps {
|
||||
flowEntry?: ANY_OBJECT | undefined;
|
||||
flowEntry: ANY_OBJECT;
|
||||
// 当使用Dialog.show弹出组件时,须定义该prop属性,以便对dialog进行回调
|
||||
dialog?: DialogProp<ANY_OBJECT>;
|
||||
}
|
||||
const props = withDefaults(defineProps<IProps>(), {
|
||||
flowEntry: undefined,
|
||||
flowEntry: () => {
|
||||
return {};
|
||||
},
|
||||
});
|
||||
const { thirdParams } = useThirdParty(props);
|
||||
const formItemSize = computed(() => {
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
:taskId="dialogParams.taskId"
|
||||
:taskName="dialogParams.taskName"
|
||||
:operationList="dialogParams.operationList"
|
||||
:isRuntime="dialogParams.isRuntime"
|
||||
:isDraft="dialogParams.isDraft"
|
||||
:isRuntime="isRuntime"
|
||||
:isDraft="isDraft"
|
||||
@close="handlerClose"
|
||||
@start="handlerStart"
|
||||
@submit="handlerOperation"
|
||||
@@ -22,20 +22,24 @@
|
||||
style="width: 100%"
|
||||
:style="{ height: mainContextHeight - 188 + 'px' }"
|
||||
:formId="dialogParams.formId"
|
||||
:readOnly="isReadOnly"
|
||||
:readOnly="readOnly"
|
||||
:flowInfo="getFlowInfo"
|
||||
/>
|
||||
<!-- 路由页面 -->
|
||||
<router-view
|
||||
ref="routerFlowForm"
|
||||
style="width: 100%"
|
||||
:isRuntimeTask="dialogParams.isRuntime"
|
||||
:isDraft="dialogParams.isDraft"
|
||||
:readOnly="dialogParams.readOnly"
|
||||
:processInstanceId="dialogParams.processInstanceId"
|
||||
:taskId="dialogParams.taskId"
|
||||
:taskVariableList="dialogParams.variableList"
|
||||
/>
|
||||
<router-view v-slot:="{ Component, route }">
|
||||
<component
|
||||
:is="Component"
|
||||
ref="routerFlowForm"
|
||||
:key="route.path"
|
||||
style="width: 100%"
|
||||
:isRuntimeTask="isRuntime"
|
||||
:isDraft="isDraft"
|
||||
:readOnly="readOnly"
|
||||
:processInstanceId="dialogParams.processInstanceId"
|
||||
:taskId="dialogParams.taskId"
|
||||
:taskVariableList="variableList"
|
||||
/>
|
||||
</router-view>
|
||||
</HandlerFlowTask>
|
||||
</template>
|
||||
|
||||
@@ -73,11 +77,28 @@ const { handlerFlowTaskRef, preHandlerOperation, submitConsign, handlerClose, di
|
||||
const isOnlineForm = computed(() => {
|
||||
return !!dialogParams.value.formId;
|
||||
});
|
||||
const isReadOnly = computed(() => {
|
||||
return typeof dialogParams.value.readOnly === 'string'
|
||||
? dialogParams.value.readOnly === 'true'
|
||||
: dialogParams.value.readOnly;
|
||||
|
||||
const isDraft = computed(() => {
|
||||
return typeof dialogParams.isDraft === 'string'
|
||||
? dialogParams.isDraft === 'true'
|
||||
: dialogParams.isDraft;
|
||||
});
|
||||
const isPreview = computed(() => {
|
||||
return typeof dialogParams.isPreview === 'string'
|
||||
? dialogParams.isPreview === 'true'
|
||||
: dialogParams.isPreview;
|
||||
});
|
||||
const isRuntime = computed(() => {
|
||||
return typeof dialogParams.isRuntime === 'string'
|
||||
? dialogParams.isRuntime === 'true'
|
||||
: dialogParams.isRuntime;
|
||||
});
|
||||
const readOnly = computed(() => {
|
||||
return typeof dialogParams.readOnly === 'string'
|
||||
? dialogParams.readOnly === 'true'
|
||||
: dialogParams.readOnly;
|
||||
});
|
||||
|
||||
const getFlowInfo = computed(() => {
|
||||
return {
|
||||
processInstanceId: dialogParams.value.processInstanceId,
|
||||
@@ -85,10 +106,15 @@ const getFlowInfo = computed(() => {
|
||||
processDefinitionKey: dialogParams.value.processDefinitionKey,
|
||||
processInstanceInitiator: dialogParams.value.processInstanceInitiator,
|
||||
messageId: dialogParams.value.messageId,
|
||||
isRuntime: dialogParams.value.isRuntime,
|
||||
isDraft: dialogParams.value.isDraft,
|
||||
isRuntime: isRuntime.value,
|
||||
isDraft: isDraft.value,
|
||||
};
|
||||
});
|
||||
const variableList = computed(() => {
|
||||
let temp = dialogParams.value.variableList;
|
||||
const variableList = Array.isArray(temp) ? temp : JSON.parse(temp || '[]');
|
||||
return variableList;
|
||||
});
|
||||
|
||||
const messageStore = useMessage();
|
||||
|
||||
@@ -107,20 +133,21 @@ const getRouterCompomentFunction = (functionName: string) => {
|
||||
*/
|
||||
const getMasterData = (
|
||||
operationType: string,
|
||||
assignee: string | undefined,
|
||||
assignee: string | Array<string> | undefined,
|
||||
): Promise<ANY_OBJECT> => {
|
||||
return new Promise((resolve, reject) => {
|
||||
// TODO workflowFormRef.value.getFormData无须判断
|
||||
if (isOnlineForm.value && workflowFormRef.value.getFormData) {
|
||||
workflowFormRef.value
|
||||
.getFormData(false, dialogParams.value.variableList)
|
||||
.getFormData(false, variableList)
|
||||
.then((formData: ANY_OBJECT | null) => {
|
||||
console.log('handleerFlowTask.getMasterData 表单数据', formData);
|
||||
if (formData == null) {
|
||||
reject();
|
||||
return;
|
||||
}
|
||||
const assigneeArr = assignee && assignee !== '' ? assignee.split(',') : undefined;
|
||||
const assigneeArr =
|
||||
assignee && assignee !== '' ? (assignee as string).split(',') : undefined;
|
||||
if (operationType === SysFlowTaskOperationType.MULTI_SIGN) {
|
||||
// 会签操作设置多实例处理人集合
|
||||
if (formData.taskVariableData == null) formData.taskVariableData = {};
|
||||
@@ -140,7 +167,7 @@ const getMasterData = (
|
||||
} else {
|
||||
// 获得静态表单页面的getMasterData函数
|
||||
let funGetMasterData = getRouterCompomentFunction('getMasterData');
|
||||
return funGetMasterData ? funGetMasterData(dialogParams.value.variableList) : reject();
|
||||
return funGetMasterData ? funGetMasterData(variableList) : reject();
|
||||
}
|
||||
});
|
||||
};
|
||||
@@ -271,10 +298,10 @@ const preHandlerOperationThen = (
|
||||
const handlerOperation = (
|
||||
operation: ANY_OBJECT,
|
||||
copyItemList: ANY_OBJECT[],
|
||||
xml: string | undefined,
|
||||
xml?: string | undefined,
|
||||
) => {
|
||||
if (isOnlineForm.value) {
|
||||
preHandlerOperation(operation, isStart.value || dialogParams.value.isDraft, xml, copyItemList)
|
||||
preHandlerOperation(operation, isStart.value || isDraft.value, xml, copyItemList)
|
||||
.then(res => {
|
||||
preHandlerOperationThen(operation, copyItemList, res);
|
||||
})
|
||||
@@ -302,7 +329,7 @@ const handlerOperation = (
|
||||
const handlerStart = (
|
||||
operation: ANY_OBJECT,
|
||||
copyItemList: ANY_OBJECT[],
|
||||
xml: string | undefined,
|
||||
xml?: string | undefined,
|
||||
) => {
|
||||
// 启动并保存草稿后再次提交
|
||||
if (draftProcessInstanceId.value != null && draftTaskId.value != null) {
|
||||
@@ -345,7 +372,7 @@ const handlerStart = (
|
||||
},
|
||||
{
|
||||
// 判断是否是从流程设计里启动
|
||||
processDefinitionKey: dialogParams.value.isPreview
|
||||
processDefinitionKey: isPreview.value
|
||||
? undefined
|
||||
: dialogParams.value.processDefinitionKey,
|
||||
},
|
||||
@@ -441,8 +468,8 @@ const initFormData = () => {
|
||||
taskId: dialogParams.value.taskId,
|
||||
};
|
||||
// 判断是展示历史流程的数据还是待办流程的数据
|
||||
let httpCall = null;
|
||||
if (dialogParams.value.isDraft) {
|
||||
let httpCall: ANY_OBJECT | null = null;
|
||||
if (isDraft.value) {
|
||||
// 草稿数据
|
||||
httpCall = FlowOperationController.viewOnlineDraftData({
|
||||
processDefinitionKey: dialogParams.value.processDefinitionKey,
|
||||
@@ -455,7 +482,7 @@ const initFormData = () => {
|
||||
});
|
||||
} else {
|
||||
httpCall =
|
||||
dialogParams.value.taskId != null && dialogParams.value.isRuntime
|
||||
dialogParams.value.taskId != null && isRuntime.value
|
||||
? FlowOperationController.viewUserTask(params)
|
||||
: FlowOperationController.viewHistoricProcessInstance(params);
|
||||
}
|
||||
@@ -465,7 +492,7 @@ const initFormData = () => {
|
||||
// 一对多数据
|
||||
oneToManyRelationData.value = (res.data || {}).oneToMany;
|
||||
// 草稿一对多数据,添加唯一主键
|
||||
if (dialogParams.value.isDraft || dialogParams.value.isDraft === 'true') {
|
||||
if (isDraft.value) {
|
||||
if (oneToManyRelationData.value != null) {
|
||||
let tempTime = new Date().getTime();
|
||||
Object.keys(oneToManyRelationData.value).forEach(key => {
|
||||
|
||||
@@ -146,6 +146,7 @@ import FormVariable from './form-variable/index.vue';
|
||||
import CopyForSelect from './copy-for/index.vue';
|
||||
import UserTaskListeners from './listeners/UserTaskListeners.vue';
|
||||
import AutoAgree from './autoAgree/index.vue';
|
||||
import RightAddBtn from '@/components/Btns/RightAddBtn.vue';
|
||||
|
||||
const props = withDefaults(
|
||||
defineProps<{
|
||||
|
||||
@@ -260,9 +260,13 @@ const onEditOperation = (operation: ANY_OBJECT) => {
|
||||
height: '450px',
|
||||
pathName: '/thirdParty/thirdEditOperation',
|
||||
},
|
||||
).then(res => {
|
||||
updateEditOperation(res);
|
||||
});
|
||||
)
|
||||
.then(res => {
|
||||
updateEditOperation(res);
|
||||
})
|
||||
.catch(e => {
|
||||
console.warn(e);
|
||||
});
|
||||
};
|
||||
const updateEditOperation = (res: ANY_OBJECT) => {
|
||||
//console.log('>>> updateEditOperation', res);
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
>
|
||||
<el-option label="不更新" :value="undefined" />
|
||||
<el-option
|
||||
v-for="item in dialogParams.validStatusList"
|
||||
v-for="item in dialogParams.validStatusList.value"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
@@ -173,7 +173,9 @@ import { Dialog } from '@/components/Dialog';
|
||||
import { DialogProp } from '@/components/Dialog/types';
|
||||
import { useThirdParty } from '@/components/thirdParty/hooks';
|
||||
import { ThirdProps } from '@/components/thirdParty/types';
|
||||
import { useLayoutStore } from '@/store';
|
||||
|
||||
const layoutStore = useLayoutStore();
|
||||
interface IProps extends ThirdProps {
|
||||
rowData?: ANY_OBJECT;
|
||||
validStatusList?: Ref<ANY_OBJECT[]>;
|
||||
@@ -185,9 +187,6 @@ const props = withDefaults(defineProps<IProps>(), {
|
||||
});
|
||||
const { thirdParams, onCloseThirdDialog } = useThirdParty(props);
|
||||
|
||||
import { useLayoutStore } from '@/store';
|
||||
const layoutStore = useLayoutStore();
|
||||
|
||||
const form = ref();
|
||||
const formData = ref<ANY_OBJECT>({
|
||||
id: undefined,
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
<script setup lang="ts">
|
||||
import { ElMessage } from 'element-plus';
|
||||
import { VxeTable, VxeColumn } from 'vxe-table';
|
||||
|
||||
import RightAddBtn from '@/components/Btns/RightAddBtn.vue';
|
||||
import { useLayoutStore } from '@/store';
|
||||
const layoutStore = useLayoutStore();
|
||||
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
/* 改变主题色变量
|
||||
// $--color-primary: #1890ff;
|
||||
// $--color-danger: #ff4d4f;
|
||||
*/
|
||||
|
||||
/* 改变 icon 字体路径变量,必需 */
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// 边框被 token-simulation 样式覆盖了
|
||||
.djs-palette {
|
||||
background: var(--palette-background-color);
|
||||
border: solid 1px var(--palette-border-color) !important;
|
||||
@@ -101,8 +100,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
//侧边栏配置
|
||||
|
||||
.djs-palette.open .djs-palette-entries div[class^='bpmn-icon-']:before,
|
||||
.djs-palette.open .djs-palette-entries div[class*='bpmn-icon-']:before {
|
||||
line-height: unset;
|
||||
@@ -187,8 +184,6 @@ pre {
|
||||
font-family: Consolas, Monaco, monospace;
|
||||
}
|
||||
|
||||
// 流程图
|
||||
|
||||
rect {
|
||||
stroke: #c1c2c4 !important;
|
||||
stroke-width: 1px !important;
|
||||
@@ -218,7 +213,6 @@ rect {
|
||||
}
|
||||
|
||||
.djs-container {
|
||||
// 框
|
||||
.djs-visual {
|
||||
rect,
|
||||
polygon,
|
||||
@@ -235,17 +229,13 @@ rect {
|
||||
stroke: #333333 !important;
|
||||
}
|
||||
}
|
||||
// 线
|
||||
.djs-visual path {
|
||||
stroke: #333333 !important;
|
||||
}
|
||||
|
||||
// 实心箭头
|
||||
[id^='sequenceflow-end-white-black'] path {
|
||||
fill: #333333 !important;
|
||||
stroke: #333333 !important;
|
||||
}
|
||||
// 空心箭头
|
||||
[id^='conditional-flow-marker-white-black'] path {
|
||||
stroke: #333333 !important;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user