流程台账界面完成
This commit is contained in:
@@ -52,26 +52,23 @@ export default {
|
||||
loadLib() {
|
||||
this.$injectCss("https://cdn.cunwuyun.cn/logicflow/index.css")
|
||||
const load = url => new Promise(resolve => this.$injectLib(url, () => resolve()))
|
||||
let libs = ["https://cdn.cunwuyun.cn/logicflow/logic-flow.js"]
|
||||
let libs = ["https://cdn.cunwuyun.cn/logicflow/logic-flow.js", "https://cdn.jsdelivr.net/npm/@logicflow/extension/lib/BpmnElement.js"]
|
||||
if (!this.readonly) {
|
||||
this.$injectCss("https://cdn.jsdelivr.net/npm/@logicflow/extension/lib/style/index.css")
|
||||
libs = [
|
||||
libs,
|
||||
"https://cdn.jsdelivr.net/npm/@logicflow/extension/lib/Menu.js",
|
||||
"https://cdn.jsdelivr.net/npm/@logicflow/extension/lib/DndPanel.js",
|
||||
"https://cdn.jsdelivr.net/npm/@logicflow/extension/lib/BpmnElement.js"
|
||||
"https://cdn.jsdelivr.net/npm/@logicflow/extension/lib/DndPanel.js"
|
||||
].flat()
|
||||
}
|
||||
return Promise.all(libs.map(e => load(e)))
|
||||
},
|
||||
initFlow(count = 0) {
|
||||
const {LogicFlow, Menu, DndPanel, BpmnElement} = window
|
||||
if (!!LogicFlow && this.$refs.lfIns && !!Menu && !!DndPanel) {
|
||||
this.flow = new LogicFlow({
|
||||
container: this.$refs.lfIns,
|
||||
plugins: [Menu, DndPanel, BpmnElement]
|
||||
})
|
||||
this.flow.extension.dndPanel.setPatternItems(this.dndPanel)
|
||||
let plugins = [BpmnElement, this.readonly ? [] : [Menu, DndPanel]].flat()
|
||||
if (!!LogicFlow && this.$refs.lfIns && plugins.reduce((r, e) => r && !!e, true)) {
|
||||
this.flow = new LogicFlow({container: this.$refs.lfIns, plugins})
|
||||
this.flow.extension.dndPanel?.setPatternItems(this.dndPanel)
|
||||
this.initValue()
|
||||
this.flow.on('history:change', evt => {
|
||||
this.configWatch?.()
|
||||
|
||||
@@ -7,10 +7,11 @@
|
||||
<script>
|
||||
import List from "./list";
|
||||
import Add from "./add";
|
||||
import WorkflowLogs from "./workflowLogs";
|
||||
|
||||
export default {
|
||||
name: "AppWorkflowManage",
|
||||
components: {Add, List},
|
||||
components: {WorkflowLogs, Add, List},
|
||||
label: "工作流管理",
|
||||
props: {
|
||||
instance: Function,
|
||||
@@ -20,7 +21,8 @@ export default {
|
||||
computed: {
|
||||
currentPage() {
|
||||
let {hash} = this.$route
|
||||
return hash == "#add" ? Add : List
|
||||
return hash == "#add" ? Add :
|
||||
hash == "#logs" ? WorkflowLogs : List
|
||||
}
|
||||
},
|
||||
created() {
|
||||
|
||||
@@ -17,7 +17,9 @@
|
||||
@getList="getTableData" :col-configs="colConfigs" :dict="dict">
|
||||
<el-table-column slot="options" label="操作" fixed="right" align="center" width="300">
|
||||
<template slot-scope="{row}">
|
||||
<el-button type="text" @click="handleAdd(row.id)">编辑</el-button><el-button type="text" @click="handleDelete(row.id)">删除</el-button>
|
||||
<el-button type="text" @click="handleAdd(row.id)">编辑</el-button>
|
||||
<el-button type="text" @click="handleLogs(row.id)">台账</el-button>
|
||||
<el-button type="text" @click="handleDelete(row.id)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</ai-table>
|
||||
@@ -39,7 +41,10 @@ export default {
|
||||
search: {name: ""},
|
||||
page: {current: 1, size: 10, total: 0},
|
||||
tableData: [],
|
||||
colConfigs: [{"prop":"name","label":"流程名称","isTable":true,"isDetail":true},{"prop":"app","label":"对应应用","isTable":true,"isDetail":true}],
|
||||
colConfigs: [
|
||||
{prop: "name", label: "流程名称"},
|
||||
{prop: "app", label: "对应应用"}
|
||||
],
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -56,6 +61,9 @@ export default {
|
||||
handleAdd(id) {
|
||||
this.$router.push({hash: "#add", query: {id}})
|
||||
},
|
||||
handleLogs(id) {
|
||||
this.$router.push({hash: "#logs", query: {id}})
|
||||
},
|
||||
handleDelete(ids) {
|
||||
this.$confirm("是否要删除?").then(() => {
|
||||
this.instance.post("/app/appworkflowmanage/delete", null, {
|
||||
|
||||
84
packages/extra/AppWorkflowManage/workflowLogs.vue
Normal file
84
packages/extra/AppWorkflowManage/workflowLogs.vue
Normal file
@@ -0,0 +1,84 @@
|
||||
<template>
|
||||
<section class="workflowLogs">
|
||||
<ai-list>
|
||||
<ai-title slot="title" title="流程台账" isShowBottomBorder isShowBack @back="back"/>
|
||||
<template #content>
|
||||
<ai-search-bar>
|
||||
<template #right>
|
||||
<el-input size="small" placeholder="搜索" v-model="search.name" clearable
|
||||
@change="page.current=1,getTableData()"/>
|
||||
</template>
|
||||
</ai-search-bar>
|
||||
|
||||
<ai-table :tableData="tableData" :total="page.total" :current.sync="page.current" :size.sync="page.size"
|
||||
@getList="getTableData" :col-configs="colConfigs" :dict="dict">
|
||||
<el-table-column slot="options" label="操作" fixed="right" align="center" width="300">
|
||||
<template slot-scope="{row}">
|
||||
<el-button type="text" @click="showProcess(row.config)">查看进度</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</ai-table>
|
||||
</template>
|
||||
</ai-list>
|
||||
<ai-dialog :visible.sync="dialog" title="查看进度" @closed="process=null" customFooter>
|
||||
<ai-workflow v-model="process" readonly/>
|
||||
<template #footer>
|
||||
<el-button @click="dialog=false">关闭</el-button>
|
||||
</template>
|
||||
</ai-dialog>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import AiWorkflow from "./AiWorkflow";
|
||||
|
||||
export default {
|
||||
name: "workflowLogs",
|
||||
components: {AiWorkflow},
|
||||
props: {
|
||||
instance: Function,
|
||||
dict: Object,
|
||||
permissions: Function
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
search: {name: ""},
|
||||
page: {current: 1, size: 10, total: 0},
|
||||
tableData: [],
|
||||
colConfigs: [
|
||||
{prop: "name", label: "流程名称"},
|
||||
{prop: "app", label: "对应应用"}
|
||||
],
|
||||
dialog: false,
|
||||
process: null
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
getTableData() {
|
||||
this.instance.post("/app/appworkflowmanage/list", null, {
|
||||
params: {...this.page, ...this.search}
|
||||
}).then(res => {
|
||||
if (res?.data) {
|
||||
this.tableData = res.data.records
|
||||
this.page.total = res.data.total
|
||||
}
|
||||
})
|
||||
},
|
||||
back() {
|
||||
this.$router.push({})
|
||||
},
|
||||
showProcess(process) {
|
||||
this.process = JSON.parse(process)
|
||||
this.dialog = true
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getTableData()
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.workflowLogs {
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user