From b015db153dfadda53efa8b516749daeb1c27cd1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=A6=8D?= <1455167345@qq.com> Date: Mon, 11 Mar 2024 16:55:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=81=E7=A8=8B=E6=A8=A1=E6=9D=BF=EF=BC=9A?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E3=80=81=E6=94=B9=E5=8F=98=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E3=80=81=E5=8E=86=E5=8F=B2=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E3=80=81=E5=88=87=E6=8D=A2=E6=A8=A1=E6=9D=BF=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=AF=B9=E6=8E=A5=E3=80=82=E6=A2=B3=E7=90=86?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=B5=81=E7=A8=8B=E6=A8=A1=E6=9D=BF=E7=9A=84?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/sys/WFSchemeInfo.ts | 11 +- src/api/sys/model/wfSchemeInfoModel.ts | 7 + src/components/ProcessDesigner/index.vue | 36 ++- .../package/designer/ProcessDesigner.vue | 19 +- .../package/penal/PropertiesPanel.vue | 254 +++++++++++++----- .../package/penal/auth/index.vue | 9 + .../package/penal/endEvent/index.vue | 19 +- .../package/penal/shcemeInfo/index.vue | 16 +- .../package/penal/startEvent/index.vue | 135 +--------- .../package/penal/subprocess/index.vue | 22 +- .../package/penal/userTask/index.vue | 18 +- .../ProcessDesigner/package/utils.ts | 26 ++ .../demo/workflow/scheme/HistoryDrawer.vue | 76 +++++- src/views/demo/workflow/scheme/preview.vue | 126 +++------ src/views/demo/workflow/scheme/scheme.data.ts | 62 ----- 15 files changed, 448 insertions(+), 388 deletions(-) diff --git a/src/api/sys/WFSchemeInfo.ts b/src/api/sys/WFSchemeInfo.ts index f324845..4e11c56 100644 --- a/src/api/sys/WFSchemeInfo.ts +++ b/src/api/sys/WFSchemeInfo.ts @@ -1,7 +1,7 @@ // WFSchemeInfo 流程模版基本信息 import { defHttp } from '@/utils/http/axios'; import {SchemeListParams,GetSchemeModel,AddParams, - DeleteParams,UpdateParams,StateParams,HistoryParams,GetHistoryModel} from './model/wfSchemeInfoModel' + DeleteParams,UpdateParams,StateParams,HistoryParams,GetHistoryModel,SchemeParams} from './model/wfSchemeInfoModel' enum Api { // 流程模板基本信息 LoadPage = '/api/WFSchemeInfo/LoadPage', @@ -10,7 +10,8 @@ enum Api { Delete = '/api/WFSchemeInfo/Delete', UpDateState = '/api/WFSchemeInfo/UpDateState', // 流程模板详细信息 - loadHistoryPage= '/api/WFScheme/LoadPage' + LoadHistoryPage= '/api/WFScheme/LoadPage', + UpdateScheme='/api/WFSchemeInfo/UpdateScheme', } /** @@ -47,5 +48,9 @@ export function updateState(params:StateParams){ } export function getLoadHistoryPage(params?:HistoryParams){ - return defHttp.get({url:Api.loadHistoryPage,params}) + return defHttp.get({url:Api.LoadHistoryPage,params}) } +export function updateScheme(params:SchemeParams){ + return defHttp.post({ url: Api.UpdateScheme + "?id=" + params.id +"&schemeId="+params.schemeId}); +} + diff --git a/src/api/sys/model/wfSchemeInfoModel.ts b/src/api/sys/model/wfSchemeInfoModel.ts index ed8fb46..d930cb7 100644 --- a/src/api/sys/model/wfSchemeInfoModel.ts +++ b/src/api/sys/model/wfSchemeInfoModel.ts @@ -151,3 +151,10 @@ export interface GetHistoryModel{ createUserName: string, content: string } +/** + * @description: 切换版本 + */ +export interface SchemeParams{ + id:string, + schemeId:string +} diff --git a/src/components/ProcessDesigner/index.vue b/src/components/ProcessDesigner/index.vue index bf76a3a..0515d6c 100644 --- a/src/components/ProcessDesigner/index.vue +++ b/src/components/ProcessDesigner/index.vue @@ -5,20 +5,22 @@ 'connection.added', 'connection.removed', 'connection.changed' - ]" @element-click="elementClick" @init-finished="initModeler" @event="handlerEvent" @save="onSaveProcess" /> + ]" @connection-added="connectionAdded" @connection-removed="connectionRemoved" + @connection-changed="connectionChanged" @element-click="elementClick" @init-finished="initModeler" + @event="handlerEvent" @save="onSaveProcess" /> - + \ No newline at end of file + + \ No newline at end of file diff --git a/src/components/ProcessDesigner/package/penal/PropertiesPanel.vue b/src/components/ProcessDesigner/package/penal/PropertiesPanel.vue index 0da466f..700eca8 100644 --- a/src/components/ProcessDesigner/package/penal/PropertiesPanel.vue +++ b/src/components/ProcessDesigner/package/penal/PropertiesPanel.vue @@ -1,58 +1,40 @@ \ No newline at end of file diff --git a/src/components/ProcessDesigner/package/penal/auth/index.vue b/src/components/ProcessDesigner/package/penal/auth/index.vue index 4baf560..b642645 100644 --- a/src/components/ProcessDesigner/package/penal/auth/index.vue +++ b/src/components/ProcessDesigner/package/penal/auth/index.vue @@ -109,6 +109,15 @@ function accountHandleOk() { console.log(accountRef.value.getRow()) } + function getForm() { + return { + f_AuthType: f_AuthType.value, + authData: dataSource.value + } + } + defineExpose({ + getForm + }) \ No newline at end of file diff --git a/src/components/ProcessDesigner/package/penal/startEvent/index.vue b/src/components/ProcessDesigner/package/penal/startEvent/index.vue index a8102e2..4f87dd9 100644 --- a/src/components/ProcessDesigner/package/penal/startEvent/index.vue +++ b/src/components/ProcessDesigner/package/penal/startEvent/index.vue @@ -94,7 +94,7 @@ import { reactive, defineProps, computed, inject, ref, watch, h } from 'vue' import { DeleteOutlined, PlusOutlined } from '@ant-design/icons-vue' const labelCol = { span: 7 }; - const wrapperCol = { span: 17 }; + const wrapperCol = { span: 17 }; const props = defineProps({ disabled: { type: Boolean, @@ -157,9 +157,8 @@ watch( () => props.element, (newVal, oldVal) => { - data.elementData = newVal - node.id = data.elementData.id - node.type = data.elementData.type + node.id = newVal.id + node.type = newVal.type } ) watch( @@ -175,124 +174,12 @@ } } ) - - - async function custmerformChange(val) { - this.$set(this.node, 'formRelationId', '') - if (val == null) { - this.node.authFields = []; - this.node.formVerison = '' - return; + watch( + () => node, (newVal, oldVal) => { + console.log(oldVal) + console.log(newVal) } - if (this.$validatenull(this.wfdesign.custmerformSchemes[val.f_SchemeId])) { - // const {f_SchemeInfoId,f_Scheme,f_Id} = (await this.$awaitWraper(apiForm.getHistory(val.f_SchemeId))) || {} - this.wfdesign.custmerformSchemes[f_Id] = { f_Scheme } - if (this.node.formCode == f_SchemeInfoId) { - this.loadFormScheme(f_Scheme) - } - } - else { - this.loadFormScheme(this.wfdesign.custmerformSchemes[val.f_SchemeId].f_Scheme); - } - this.node.formVerison = val.f_SchemeId - } - async function custmerformVerisonChange(val) { - this.$set(this.node, 'formRelationId', '') - if (this.$validatenull(val)) { - this.node.authFields = [] - return - } - if (this.$validatenull(this.wfdesign.custmerformSchemes[val.value])) { - // const {f_Scheme,f_Id} = (await this.$awaitWraper(apiForm.getHistory(val.value))) || {} - this.wfdesign.custmerformSchemes[f_Id] = { f_Scheme } - if (this.node.formVerison == f_Id) { - - this.loadFormScheme(f_Scheme) - } - } - else { - this.loadFormScheme(this.wfdesign.custmerformSchemes[val.value].f_Scheme); - } - } - function loadFormScheme(strScheme) { - const scheme = JSON.parse(strScheme) - const fields = [] - const rfields = [] - scheme.formInfo.tabList.forEach(tab => { - tab.components.forEach(component => { - if (['guid'].includes(component.type)) { - rfields.push({ label: component.label, value: component.prop }) - } - - if (!['gridtable', 'divider'].includes(component.type) && component.display) { - fields.push({ - prop: component.prop, - field: component.field, - label: component.label, - table: component.table, - required: component.required, - isEdit: true, - isLook: true - }) - } - else if (['gridtable'].includes(component.type)) { - fields.push({ - prop: `${component.prop}_add`, - label: `${component.label || '表格'}-添加按钮`, - required: false, - isEdit: true, - isLook: false, - type: 'grid' - }) - fields.push({ - prop: `${component.prop}_remove`, - label: `${component.label || '表格'}-删除按钮`, - required: false, - isEdit: true, - isLook: false, - type: 'grid' - }) - - fields.push({ - prop: `${component.prop}_required`, - label: `${component.label || '表格'}-数据`, - required: component.required, - isEdit: false, - isLook: false, - type: 'gridrequired' - }) - fields.push(...component.children.filter(t => t.display).map(t => { - return { - gridprop: component.prop, - prop: t.prop, - field: t.field, - label: `${component.label || '表格'}-${t.label}`, - table: component.table, - required: t.required, - isEdit: true, - isLook: true - } - })) - } - }) - }) - - - - this.node.formRelations = rfields - this.node.authFields = fields - - } - function handleFormTypeChange() { - this.node.formCode = '' - this.node.formUrl = '' - this.node.formAppUrl = '' - this.node.authFields = [] - this.node.formRelations = [] - - this.$set(this.node, 'formRelationId', '') - - } + ) function handleAddAuthField() { node.authFields.push({ field: '', @@ -306,6 +193,12 @@ node.authFields = node.authFields.filter(item => item.field !== key); } + function getForm(){ + return node + } + defineExpose({ + getForm + }) \ No newline at end of file diff --git a/src/views/demo/workflow/scheme/scheme.data.ts b/src/views/demo/workflow/scheme/scheme.data.ts index a1068a2..35777de 100644 --- a/src/views/demo/workflow/scheme/scheme.data.ts +++ b/src/views/demo/workflow/scheme/scheme.data.ts @@ -119,66 +119,4 @@ export const formSchema: FormSchema[] = [ component: 'InputTextArea', }, ]; -// 历史记录表头 -export const columnsHistory: BasicColumn[] = [ - { - title: '创建人', - dataIndex: 'createUserName', - }, - { - title: '创建时间', - dataIndex: 'createDate', - }, - { - title: '状态', - dataIndex: 'type', - customRender: ({ record }) => { - if (record.type == 1) { - const color = 'green'; - const text = '正式'; - return h(Tag, { color: color }, () => text); - } else { - const color = 'blue'; - const text = '草稿'; - return h(Tag, { color: color }, () => text); - } - } - }, - // { - // title: '当前版本', - // dataIndex: 'enabledMark', - // width: 80, - // customRender: ({ record }) => { - // if (!record.type) { - // const color = 'blue'; - // const text = '草稿'; - // return h(Tag, { color: color }, () => text); - // } else { - // return h(Switch, { - // checked: record.enabledMark === 1, - // checkedChildren: '启用', - // unCheckedChildren: '停用', - // loading: record.pendingStatus, - // onChange(checked) { - // record.pendingStatus = true; - // const newStatus = checked ? 1 : 0; - // const { createMessage } = useMessage(); - // updateState({ id: record.id, state: newStatus }) - // .then((data) => { - // record.enabledMark = newStatus; - // createMessage.success(data.message); - // }) - // .catch((err) => { - // createMessage.error(err.message); - // }) - // .finally(() => { - // record.pendingStatus = false; - // }); - // }, - // }); - // } - // }, - // }, - -];