UNPKG

workflow-bpmn-modeler-antdv

Version:

基于 `vue` 和 `bpmn.io@7.0` ,实现 flowable 的 modeler 模型设计器 Antdv版

135 lines (133 loc) 3.48 kB
import showConfig from '../flowable/showConfig' export default { props: { filters: { type: Array, default: () => [] }, associateFormConfig:{ type:Object, default:() => { return { enable: false, //此项为false,后设置两项均无效 isPreview: true, isCreate: true, } } }, associateFormDataOptions: { type: Array, default:() => [] }, modeler: { type: Object, required: true }, element: { type: Object, required: true }, categories: { type: Array, default: () => [] }, skipExpressionDataSource: { type: Array, default: () => [] }, conditionExpressionDataSource: { type: Array, default: () => [] } }, watch: { 'formData.id': function(val) { this.updateProperties({ id: val }) }, 'formData.name': function(val) { this.updateProperties({ name: val }) }, 'formData.documentation': function(val) { if (!val) { this.updateProperties({ documentation: [] }) return } const documentationElement = this.modeler.get('moddle').create('bpmn:Documentation', { text: val }) this.updateProperties({ documentation: [documentationElement] }) } }, methods: { updateProperties(properties) { const modeling = this.modeler.get('modeling') modeling.updateProperties(this.element, properties) }, getSignalElements(){ var signals = []; this.rootElements = this.modeler.getDefinitions().rootElements; if (this.rootElements.length > 0){ this.rootElements.forEach(item=>{ if (item.$type==='bpmn:Signal'){ signals.push(item); } }) } return signals; }, getSignalElementIds(){ var signals = []; this.rootElements = this.modeler.getDefinitions().rootElements; if (this.rootElements.length > 0){ this.rootElements.forEach(item=>{ if (item.$type==='bpmn:Signal'){ signals.push(item.id); } }) } return signals; }, getMessageElements(){ var signals = []; this.rootElements = this.modeler.getDefinitions().rootElements; if (this.rootElements.length > 0){ this.rootElements.forEach(item=>{ if (item.$type==='bpmn:Message'){ signals.push(item); } }) } return signals; }, getMessageElementIds(){ var signals = []; this.rootElements = this.modeler.getDefinitions().rootElements; if (this.rootElements.length > 0){ this.rootElements.forEach(item=>{ if (item.$type==='bpmn:Message'){ signals.push(item.id); } }) } return signals; }, filter(name){ return this.filters.indexOf(name) !== -1 }, showAssociateForm(formKey){ this.$emit("showForm",formKey) }, createAssociateForm(){ this.$emit("createForm") } }, computed: { elementType() { const bizObj = this.element.businessObject return bizObj.eventDefinitions ? bizObj.eventDefinitions[0].$type : bizObj.$type }, showConfig() { return showConfig[this.elementType] || {} } } }