流程绑定表单可以选到历史表单

流程命名规则增加流程变量且流程变量可从表单赋值
This commit is contained in:
yaoyn
2024-05-22 16:47:57 +08:00
parent 4c13e0f054
commit 5639efdb38
6 changed files with 62 additions and 8 deletions

View File

@ -133,6 +133,7 @@ export enum OperationType {
VALUE = 0, //值
VARIABLE, //变量
API, //APi
FORM_DATA, //表单数据
}
// 按钮类型

View File

@ -3,7 +3,7 @@
import { InfoId } from './bpmnConfig';
import { FormConfigItem, formInitConfig, FormSettingItem } from './formSetting';
import { CountersignConfig, MemberConfig } from './memberSetting';
import { AssignmentConfig, TimeOutConfig } from './ParamSetting';
import {AssignmentConfig, FormAssignmentSourceConfig, TimeOutConfig} from './ParamSetting';
import { ApiConfig } from '/@/components/ApiConfig/src/interface';
import {
@ -115,6 +115,8 @@ export interface ProcessParameter {
type: OperationType;
value: string;
apiConfig: ApiConfig;
formConfig: FormAssignmentSourceConfig; // 如果type === 表单数据 存储表单配置
}
// 输入参数

View File

@ -1,6 +1,6 @@
<template>
<a-tree-select
:value="props.target.key"
:value="props.target?.key"
autoExpandParent
treeDefaultExpandAll
:tree-data="props.formSettingTree"
@ -28,7 +28,7 @@
});
function changeTarget(value, node) {
let target = props.target;
let target = props.target||{};
target.formId = node.formId;
target.key = value;
target.formField = node.formField;

View File

@ -6,6 +6,7 @@
<a-button type="primary" @click="add">{{ t('添加') }}</a-button>
</div>
</div>
<span>(在流程开始节点开始用户节点结束脚本节点结束事件中赋值)</span>
<div class="list">
<div class="row head">
<span class="source">{{ t('赋值来源') }}</span>

View File

@ -57,6 +57,11 @@
v-model="record.apiConfig"
:need-hide-components="true"
/>
<FormTargetItem
v-if="record.type == OperationType.FORM_DATA"
v-model:target="record.formConfig"
:formSettingTree="formTree"
/>
</template>
<template v-if="column.key === 'operation'">
<a-popconfirm @confirm="deleteItem(index)">
@ -80,6 +85,7 @@
import Icon from '/@/components/Icon/index';
//import ScriptApiSelect from '/@bpmn/components/arguments/ApiSelect.vue'; //之前是调的这个现在换成ScriptApiSelect.vue
import ScriptApiSelect from '/@bpmn/components/arguments/ScriptApiSelect.vue';
import FormTargetItem from './FormTargetItem.vue';
import { ProcessArgumentTreeData } from '/@bpmn/config/rules';
import { OperationType } from '/@/enums/workflowEnum';
import { useBpmnStore } from '/@bpmn/store/bpmn';
@ -87,7 +93,10 @@
import { randomNum } from '/@bpmn/util/random';
import { updateProcessParameterRelevance } from '/@bpmn/config/useUpdateAllFormInfo';
import { useI18n } from '/@/hooks/web/useI18n';
import {computed} from "vue";
import {getFormSettingTree} from "/@bpmn/config/info";
const { t } = useI18n();
const bpmnStore = useBpmnStore();
const configColumns = [
{
title: t('参数名称'),
@ -128,8 +137,25 @@
id: OperationType.API,
name: 'API',
},
{
id: OperationType.FORM_DATA,
name: '表单数据',
},
];
let variableTree = ProcessArgumentTreeData;
const formTree = computed(() => {
const { info } = bpmnStore;
let infoId="Event_start_node";//启动流程就需要获取表单数据,因此取开始节点表单
if (infoId && info.has(infoId)) {
let value = info.get(infoId);
if (value?.formConfigs) {
return getFormSettingTree(value.formConfigs, infoId, value.name, true);
} else {
return [];
}
}
return [];
});
// 新增
function add() {
processInfo.value.processParamConfigs.push({
@ -145,6 +171,7 @@
requestHeaderConfigs: [], //Header
requestBodyConfigs: [], //Body
},
formConfig: { key: '', formId: '', formField: '' },
});
}
//删除

View File

@ -26,13 +26,14 @@
</template>
<div class="title">
<NodeHead :node-name="t('命名规则配置面板')" />
<div style="font-size: 12px"><div>只在发起流程重新发起流程发起外部流程前触发</div><div>其他情况修改流程变量processNameKey</div></div>
</div>
<div class="opr-box" :key="nameRule.renderKey">
<a-button @click="addRandomNumber('-')">-</a-button>
<a-select
v-model:value="nameRule.serialRuleValue"
:placeholder="t('点击选择流水号')"
style="width: 240px; margin: 0 4px"
style="width: 140px; margin: 0 4px"
:disabled="nameRule.canAddSerialRule ? false : true"
@change="changeSerialRuleValue"
>
@ -60,10 +61,25 @@
{{ item.title }}
</a-select-option>
</a-select>
<a-select
v-model:value="nameRule.processParameter"
:placeholder="t('点击选择流程参数')"
style="width: 160px"
@change="addProcessParameter"
>
<a-select-option
v-for="item in processInfo.processParamConfigs"
:key="item.id"
:value="item.id"
:title="item.name"
>
{{ item.name }}
</a-select-option>
</a-select>
<div class="input-box">
<span>{{ t('自定义文本:') }}</span>
<!-- <span>{{ t('自定义文本:') }}</span>-->
<a-input
:placeholder="t('输入文本后点击确认')"
:placeholder="t('输入自定义文本后点击确认')"
v-model:value="nameRule.inputRandomNumber"
:maxLength="20"
class="input"
@ -92,7 +108,7 @@
<EmptyBox
:msg="
t(
'请先添加变量或自定义文本 格式举例:模板名称-发起人所属组织架构-发起人名称-yyyy-MM-dd-6位流水号 生成名称为:出差申请单-产品部-张三-20221011-000001',
'请先添加变量或自定义文本 格式举例:模板名称-发起人所属组织架构-发起人名称-yyyy-MM-dd-6位流水号 生成名称为:出差申请单-产品部-张三-20221011-000001'
)
"
/>
@ -130,6 +146,7 @@
inputRandomNumber: string;
serialRuleValue: string | undefined;
randomNumber: string | undefined;
processParameter: string | undefined;
canAddSerialRule: boolean;
renderKey: number;
} = reactive({
@ -139,6 +156,7 @@
inputRandomNumber: '',
serialRuleValue: undefined,
randomNumber: undefined,
processParameter: undefined,
canAddSerialRule: true,
renderKey: 0,
});
@ -205,6 +223,11 @@
nameRule.randomNumber = undefined;
nameRule.renderKey++;
}
function addProcessParameter(_value, item) {
nameRule.list.push({ title: '流程参数'+item.title, key: item.key });
nameRule.processParameter = undefined;
nameRule.renderKey++;
}
function addRandomNumber(str: string) {
let item = symbolRuleMap.has(str) ? symbolRuleMap.get(str) : null;
if (item) nameRule.list.push(item);
@ -242,7 +265,7 @@
.input-box {
.input {
width: 180px;
width: 200px;
font: 12px;
margin-right: 4px;
}