From 38e88f0ff50611b216679b214645c793f45deb8a Mon Sep 17 00:00:00 2001 From: GGJ <357021191@qq.com> Date: Wed, 17 Apr 2024 09:44:50 +0800 Subject: [PATCH] =?UTF-8?q?=E8=81=94=E8=B0=83=E6=B5=81=E7=A8=8B=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=20=E6=B5=81=E7=A8=8B=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 1 + pnpm-lock.yaml | 7 + src/api/process-boot/bpm.ts | 16 +- .../package/designer/ProcessDesigner.vue | 126 ++++----- .../package/penal/base/ElementBaseInfo.vue | 245 +++++++++--------- .../pqs/process/definition/allocation.vue | 46 ++++ .../pqs/process/definition/editor/index.vue | 32 ++- src/views/pqs/process/definition/index.vue | 19 +- .../supervise/retire/components/equipment.vue | 26 ++ src/views/pqs/supervise/retire/index.vue | 58 +---- src/views/system/auth/menu/popupMenu.vue | 1 + 11 files changed, 314 insertions(+), 263 deletions(-) create mode 100644 src/views/pqs/process/definition/allocation.vue create mode 100644 src/views/pqs/supervise/retire/components/equipment.vue diff --git a/package.json b/package.json index b9f957ad..1b7f076a 100644 --- a/package.json +++ b/package.json @@ -33,6 +33,7 @@ "lodash-es": "^4.17.21", "luckyexcel": "^1.0.1", "luckysheet": "^2.1.13", + "min-dash": "^4.2.1", "mitt": "^3.0.1", "nprogress": "^0.2.0", "pinia": "^2.1.7", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1b387f15..dce27116 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -77,6 +77,9 @@ dependencies: luckysheet: specifier: ^2.1.13 version: 2.1.13 + min-dash: + specifier: ^4.2.1 + version: 4.2.1 mitt: specifier: ^3.0.1 version: 3.0.1 @@ -2774,6 +2777,10 @@ packages: resolution: {integrity: sha512-evumdlmIlg9mbRVPbC4F5FuRhNmcMS5pvuBUbqb1G9v09Ro0ImPEgz5n3khir83lFok1inKqVDjnKEg3GpDxQg==} dev: false + /min-dash@4.2.1: + resolution: {integrity: sha512-to+unsToePnm7cUeR9TrMzFlETHd/UXmU+ELTRfWZj5XGT41KF6X3L233o3E/GdEs3sk2Tbw/lOLD1avmWkg8A==} + dev: false + /min-dom@0.2.0: resolution: {integrity: sha512-VmxugbnAcVZGqvepjhOA4d4apmrpX8mMaRS+/jo0dI5Yorzrr4Ru9zc9KVALlY/+XakVCb8iQ+PYXljihQcsNw==} dependencies: diff --git a/src/api/process-boot/bpm.ts b/src/api/process-boot/bpm.ts index 0702d6eb..48a6b681 100644 --- a/src/api/process-boot/bpm.ts +++ b/src/api/process-boot/bpm.ts @@ -30,15 +30,15 @@ export function getRouteMenu() { } export const getModelPage = async (params: any) => { - return await createAxios({ url: '/bpm/model/page', params, method: 'get' }) + return await createAxios({ url: '/process-boot/bpm/model/page', params, method: 'get' }) } export const getModel = async (id: number) => { - return await createAxios({ url: '/bpm/model/get?id=' + id, method: 'get' }) + return await createAxios({ url: '/process-boot/bpm/model/get?id=' + id, method: 'get' }) } export const updateModel = async (data: any) => { - return await createAxios({ url: '/bpm/model/update', method: 'put', data: data }) + return await createAxios({ url: '/process-boot/bpm/model/update', method: 'put', data: data }) } // 任务状态修改 @@ -47,19 +47,19 @@ export const updateModelState = async (id: number, state: number) => { id: id, state: state } - return await createAxios({ url: '/bpm/model/update-state', method: 'put', data: data }) + return await createAxios({ url: '/process-boot/bpm/model/update-state', method: 'put', data: data }) } -export const createModel = async data => { - return await createAxios({ url: '/bpm/model/create', method: 'POST', data: data }) +export const save = async data => { + return await createAxios({ url: '/process-boot/flowable/definition/save', method: 'POST', data: data }) } export const deleteModel = async (id: number) => { - return await createAxios({ url: '/bpm/model/delete?id=' + id, method: 'DELETE' }) + return await createAxios({ url: '/process-boot/bpm/model/delete?id=' + id, method: 'DELETE' }) } export const deployModel = async (id: number) => { - return await createAxios({ url: '/bpm/model/deploy?id=' + id, method: 'POST' }) + return await createAxios({ url: '/process-boot/bpm/model/deploy?id=' + id, method: 'POST' }) } export const readXml = async (id: number) => { return await createAxios({ url: 'process-boot/flowable/definition/readXml?deployId=' + id, method: 'GET' }) diff --git a/src/components/bpmnProcessDesigner/package/designer/ProcessDesigner.vue b/src/components/bpmnProcessDesigner/package/designer/ProcessDesigner.vue index bb76eb66..cc053d37 100644 --- a/src/components/bpmnProcessDesigner/package/designer/ProcessDesigner.vue +++ b/src/components/bpmnProcessDesigner/package/designer/ProcessDesigner.vue @@ -19,21 +19,6 @@ 下载文件 - - 浏览 - - - @@ -81,7 +66,7 @@ @@ -109,13 +94,25 @@ - + + + + + + + + + + + + + + @@ -238,9 +235,28 @@ const defaultZoom = ref(1) const previewModelVisible = ref(false) const simulationStatus = ref(false) const previewResult = ref('') +const ruleFormRef = ref() const previewType = ref('xml') const recoverable = ref(false) const revocable = ref(false) +const rules = { + name: [{ required: true, message: '请输入流程名称', trigger: 'blur' }], + category: [{ required: true, message: '请输入流程分类', trigger: 'blur' }] +} +const options = [ + { + name: '默认分类', + id: '默认分类' + }, + { + name: '业务分类', + id: '业务分类' + } +] +const form = ref({ + name: '', + category: '' +}) const additionalModules = computed(() => { console.log(props.additionalModel, 'additionalModel') const Modules: any[] = [] @@ -543,56 +559,26 @@ const elementsAlign = align => { Align.trigger(SelectedElements, align) }) } -/*----------------------------- 方法结束 ---------------------------------*/ -const previewProcessXML = () => { - console.log(bpmnModeler.saveXML, 'bpmnModeler') - bpmnModeler.saveXML({ format: true }).then(({ xml }) => { - // console.log(xml, 'xml111111') - previewResult.value = xml - previewType.value = 'xml' - previewModelVisible.value = true - }) -} -const previewProcessJson = () => { - bpmnModeler.saveXML({ format: true }).then(({ xml }) => { - // console.log(xml, 'xml') - - // const rootNode = parseXmlString(xml) - // console.log(rootNode, 'rootNoderootNode') - const rootNodes = new XmlNode(XmlNodeType.Root, parseXmlString(xml)) - // console.log(rootNodes, 'rootNodesrootNodesrootNodes') - // console.log(rootNodes.parent.toJsObject(), 'rootNodes.toJSON()') - // console.log(JSON.stringify(rootNodes.parent.toJsObject()), 'rootNodes.toJSON()') - // console.log(JSON.stringify(rootNodes.parent.toJSON()), 'rootNodes.toJSON()') - - // const parser = new xml2js.XMLParser() - // let jObj = parser.parse(xml) - // console.log(jObj, 'jObjjObjjObjjObjjObj') - // const builder = new xml2js.XMLBuilder(xml) - // const xmlContent = builder - // console.log(xmlContent, 'xmlContent') - // console.log(xml2js, 'convertconvertconvert') - previewResult.value = rootNodes.parent?.toJSON() as unknown as string - // previewResult.value = jObj - // previewResult.value = convert.xml2json(xml, {explicitArray : false},{ spaces: 2 }) - previewType.value = 'json' - previewModelVisible.value = true - }) +// 保存 +const preservation = () => { + previewModelVisible.value = true } /* ------------------------------------------------ 芋道源码 methods ------------------------------------------------------ */ const processSave = async () => { - // console.log(bpmnModeler, 'bpmnModelerbpmnModelerbpmnModelerbpmnModeler') - const { err, xml } = await bpmnModeler.saveXML() - // console.log(err, 'errerrerrerrerr') - // console.log(xml, 'xmlxmlxmlxmlxml') - // 读取异常时抛出异常 - if (err) { - // this.$modal.msgError('保存模型失败,请重试!') - alert('保存模型失败,请重试!') - return - } - // 触发 save 事件 - emit('save', xml) + ruleFormRef.value.validate(async valid => { + if (valid) { + const { err, xml } = await bpmnModeler.saveXML() + + // 读取异常时抛出异常 + if (err) { + // this.$modal.msgError('保存模型失败,请重试!') + alert('保存模型失败,请重试!') + return + } + // 触发 save 事件 + emit('save', xml, form.value) + } + }) } /** 高亮显示 */ // const highlightedCode = (previewType, previewResult) => { diff --git a/src/components/bpmnProcessDesigner/package/penal/base/ElementBaseInfo.vue b/src/components/bpmnProcessDesigner/package/penal/base/ElementBaseInfo.vue index aee32ecb..4256a7d6 100644 --- a/src/components/bpmnProcessDesigner/package/penal/base/ElementBaseInfo.vue +++ b/src/components/bpmnProcessDesigner/package/penal/base/ElementBaseInfo.vue @@ -1,161 +1,168 @@ diff --git a/src/views/pqs/process/definition/allocation.vue b/src/views/pqs/process/definition/allocation.vue new file mode 100644 index 00000000..faf116bc --- /dev/null +++ b/src/views/pqs/process/definition/allocation.vue @@ -0,0 +1,46 @@ + + + diff --git a/src/views/pqs/process/definition/editor/index.vue b/src/views/pqs/process/definition/editor/index.vue index d3b79a6a..b0352517 100644 --- a/src/views/pqs/process/definition/editor/index.vue +++ b/src/views/pqs/process/definition/editor/index.vue @@ -61,42 +61,38 @@ const initModeler = item => { } /** 添加/修改模型 */ -const save = async bpmnXml => { +const save = async (bpmnXml: any, form: any) => { const data = { // name // flowableXml // category ...model.value, flowableXml: bpmnXml, // bpmnXml 只是初始化流程图,后续修改无法通过它获得 - category: '', - name: '' + category: form.category, + name: form.name } as unknown as ModelApi.ModelVO // 提交 if (data.id) { - await ModelApi.updateModel(data) ElMessage.success('修改成功') } else { - await ModelApi.createModel(data) + await ModelApi.save(data) ElMessage.success('新增成功') } // 跳转回去 - close() + emit('quit') } -/** 关闭按钮 */ -const close = () => {} -const randomStr = () => { - return Math.random().toString(36).slice(-8) -} /** 初始化 */ onMounted(async () => { const data: any = {} if (prop.model?.deploymentId === undefined) { if (!data.bpmnXml) { // 首次创建的 Model 模型,它是没有 bpmnXml,此时需要给它一个默认的 + data.key = Math.random().toString(36).slice(-8) + console.log('🚀 ~ onMounted ~ data.key:', data.key) data.bpmnXml = ` - + @@ -110,11 +106,13 @@ onMounted(async () => { } // 查询模型 - model.value = { - ...data, - bpmnXml: undefined // 清空 bpmnXml 属性 - } - xmlString.value = data.bpmnXml + setTimeout(() => { + model.value = { + ...data, + bpmnXml: undefined // 清空 bpmnXml 属性 + } + xmlString.value = data.bpmnXml + }, 0) }) diff --git a/src/views/pqs/supervise/retire/index.vue b/src/views/pqs/supervise/retire/index.vue index 749608c4..c5148794 100644 --- a/src/views/pqs/supervise/retire/index.vue +++ b/src/views/pqs/supervise/retire/index.vue @@ -29,23 +29,21 @@ + + diff --git a/src/views/system/auth/menu/popupMenu.vue b/src/views/system/auth/menu/popupMenu.vue index 019714fd..945648f3 100644 --- a/src/views/system/auth/menu/popupMenu.vue +++ b/src/views/system/auth/menu/popupMenu.vue @@ -5,6 +5,7 @@