example.vue 8.5 KB
<template>
    <el-container>
        <el-main>
            <!--检索条件-->
            <el-row class="toolbar" style="background-color: white;margin-bottom: 10px">
                <el-col :span="6">
                    <el-input v-model="queryinfo.processInstanceId " placeholder="实例ID" style="width: 200px" clearable>
                        <template slot="prepend">实例ID</template>
                    </el-input>
                </el-col>
                <el-col :span="7">
                    <el-input v-model="queryinfo.processDefinitionKey" placeholder="实例关键字" style="width: 220px" clearable>
                        <template slot="prepend">实例关键字</template>
                    </el-input>
                </el-col>
                <el-col :span="8">
                    <el-button type="primary" v-on:click="getList">查询</el-button>
                </el-col>
            </el-row>
            <el-row>
                <el-table
                        v-loading="tableloading"
                        :data="tableData"
                        style="width: 100%"
                        :default-sort = "{prop: 'date', order: 'descending'}"
                        :header-cell-style="{background:'#6F8294',color:'#FFFFFF'}" size="small">
                    <el-table-column type="expand">
                        <template slot-scope="props">
                            <el-form label-position="left" style="margin-left: -700px" inline class="demo-table-expand">
                                <el-row>
                                    <el-form-item label="变量数量:">
                                        <span>{{ props.row.variableCount }}</span>
                                    </el-form-item>
                                </el-row>
                                <el-row>
                                    <el-form-item label="瞬时变量:">
                                        <span>{{ JSON.stringify(props.row.transientVariables) }}</span>
                                    </el-form-item>
                                </el-row>
                            </el-form>
                        </template>
                    </el-table-column>
                    <el-table-column
                            fixed="left"
                            label="操作">
                        <template slot-scope="scope">
                            <el-button type="success" size="mini" @click="chart(scope.$index,scope.row)">流程图</el-button>
                            <!--                            <el-button type="warning" size="mini" @click="remove(scope.$index,scope.row)">删除</el-button>-->
                            <!--                            <el-button type="danger" size="mini" @click="removeDel(scope.$index,scope.row)">彻底删除</el-button>-->
                        </template>
                    </el-table-column>
                    <el-table-column
                            label="实例名称"
                            prop="processDefinitionName"
                            width="160">
                    </el-table-column>
                    <el-table-column
                            label="开始时间"
                            prop="startTime"
                            width="160">
                    </el-table-column>
                    <el-table-column
                            label="执行中"
                            prop="isActive">
                    </el-table-column>
                    <el-table-column
                            label="是否结束"
                            prop="isEnded">
                    </el-table-column>
                    <el-table-column
                            label="租户"
                            prop="tenantId">
                    </el-table-column>
                    <el-table-column
                            label="流程状态"
                            prop="suspensionState">
                        <template slot-scope="scope">
                            <span  v-if="scope.row.suspensionState ==='1'">活跃</span>
                            <span  v-if="scope.row.suspensionState ==='2'">中断</span>
                        </template>
                    </el-table-column>
                    <el-table-column
                            label="实例关键字"
                            prop="processDefinitionKey">
                    </el-table-column>
                </el-table>
            </el-row>
            <!--分页模块-->
            <el-row style="float: right;margin-top: 20px">
                <el-col>
                    <div class="block">
                        <el-pagination
                                @size-change="handleSizeChange"
                                @current-change="handleCurrentChange"
                                :current-page="queryinfo.pageNum"
                                :page-sizes="[10, 20, 30, 40]"
                                :page-size="queryinfo.pageSize"
                                layout="total, sizes, prev, pager, next, jumper"
                                :total="total">
                        </el-pagination>
                    </div>
                </el-col>
            </el-row>
<!--            流程图弹框-->
            <el-row>
                <el-dialog title="流程图" :visible.sync="dialogFormVisible">
                    <el-form :model="form">
                        <el-form-item>
                            <div class="demo-image__preview">
                                <el-image

                                        :src="form.url">
                                </el-image>
                            </div>
                        </el-form-item>
                    </el-form>
                    <div slot="footer" class="dialog-footer">
                        <el-button @click="dialogFormVisible = false">取 消</el-button>
                    </div>
                </el-dialog>
            </el-row>
        </el-main>
    </el-container>
</template>

<script>
    import {instanceList,processDiagram} from "../../api/technological";

    export default {
        name: "example",
        data(){
            return{
                queryinfo: {
                    processInstanceId:'',
                    processDefinitionKey:'',
                    pageNum:1,
                    pageSize:10,
                },
                total:0,
                tableData: [],
                tableloading:false,
                dialogFormVisible: false,
                form: {
                    url: ''
                }
            }
        },
        mounted() {
            this.getList();
        },
        methods: {
// 分页
            handleSizeChange(val) {
                this.queryinfo.pageSize= val
                this.getList()
            },
            handleCurrentChange(val) {
                this.queryinfo.pageNum  = val
                this.getList()
            },
            getList() {
                const _this = this
                this.tableloading = true;
                instanceList(this.queryinfo).then((response) => {
                    console.log(response);
                    const res = response.data
                    if (res.code != '200') {
                        return _this.$message.error('获取消息收发记录,失败!')
                    }
                    // 获取列表数据
                    _this.tableData = res.data;
                    // 获取列表的总记录数

                    _this.total = res.total
                    this.tableloading = false;
                    _this.$message.success('获取消息收发记录,成功!')
                }).catch(error => {

                    // 关闭加载
                    _this.$message.error(error.toString())
                    this.tableloading = false;

                })
            },
            // 打开流程图
            chart(index, row) {
                this.dialogFormVisible = true

                processDiagram({processId:row.processInstanceId}).then(res =>{
                    // eslint-disable-next-line no-console
                    console.log(res)
                        this.form.url=window.URL.createObjectURL(res.data);
                    });

            },
        }
    }
</script>

<style scoped>
    .demo-table-expand {
        font-size: 0;
    }
    .demo-table-expand label {
        width: 90px;
        color: #99a9bf;
    }
    .demo-table-expand .el-form-item {
        margin-right: 0;
        margin-bottom: 0;
        width: 50%;
    }
</style>