feat: 发起前查看流程图

master
ssc 3 years ago
parent e563c94746
commit d5a9e9e7f3
  1. 22
      src/api/plugin/workflow/process.js
  2. 34
      src/views/plugin/workflow/process/start.vue

@ -140,6 +140,28 @@ export const detail = (params) => {
}) })
} }
/**
* 获取模型xml - 根据processDefId
*/
export const getXmlByProcessDefId = (params) => {
return request({
url: `${prefix}/getXmlByProcessDefId`,
method: 'get',
params
})
}
/**
* 获取模型xml - 根据processDefKey
*/
export const getXmlByProcessDefKey = (params) => {
return request({
url: `${prefix}/getXmlByProcessDefKey`,
method: 'get',
params
})
}
/** /**
* 发起流程 * 发起流程
*/ */

@ -40,6 +40,11 @@
size="small" size="small"
icon="el-icon-video-play" icon="el-icon-video-play"
@click="dynamicRoute(row, 'start')">发起</el-button> @click="dynamicRoute(row, 'start')">发起</el-button>
<el-button v-if="permission.wf_process_start_flow"
type="text"
size="small"
icon="el-icon-search"
@click="handleFlow(row)">流程图</el-button>
</template> </template>
</avue-crud> </avue-crud>
</template> </template>
@ -52,11 +57,22 @@
@reset="searchReset"></wf-start-grid> @reset="searchReset"></wf-start-grid>
</el-main> </el-main>
</el-container> </el-container>
<el-dialog :visible.sync="bpmnVisible"
append-to-body
destroy-on-close
title="流程图"
width="70%"
custom-class="wf-dialog">
<wf-design ref="bpmn"
style="height: 60vh;"
:options="bpmnOption"></wf-design>
</el-dialog>
</basic-container> </basic-container>
</template> </template>
<script> <script>
import { processList as getList } from "@/api/plugin/workflow/process"; import { processList as getList, getXmlByProcessDefId } from "@/api/plugin/workflow/process";
import { mapGetters } from "vuex"; import { mapGetters } from "vuex";
@ -142,6 +158,8 @@ export default {
] ]
}, },
data: [], data: [],
bpmnVisible: false,
bpmnOption: {}
}; };
}, },
computed: { computed: {
@ -169,6 +187,18 @@ export default {
this.handleChangeMode(localStorage.getItem("wf-start-mode") || 'list') this.handleChangeMode(localStorage.getItem("wf-start-mode") || 'list')
}, },
methods: { methods: {
handleFlow(row) {
getXmlByProcessDefId({ processDefId: row.id }).then(res => {
const xml = res.data.data
if (xml) {
this.bpmnOption = {
mode: 'view',
xml,
}
this.bpmnVisible = true
} else this.$message.error('没有可显示的流程图')
})
},
handleChangeMode(mode) { handleChangeMode(mode) {
localStorage.setItem("wf-start-mode", mode) localStorage.setItem("wf-start-mode", mode)
this.mode = mode this.mode = mode
@ -218,7 +248,7 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
/deep/ .avue-crud__img { ::v-deep .avue-crud__img {
img { img {
width: 32px; width: 32px;
height: 32px; height: 32px;

Loading…
Cancel
Save