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 @@
下载文件
-
- 浏览
-
- 预览XML
-
- 预览JSON
-
-
-
@@ -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 @@