Files
ruoyi-vue-pro/yudao-admin-ui/src/views/bpm/model/index.vue
2022-01-01 22:03:17 +08:00

211 lines
6.4 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<div class="app-container">
<!-- 搜索工作栏 -->
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="模型名字" prop="name">
<el-input v-model="queryParams.name" placeholder="请输入模型名字" clearable style="width: 240px;" size="small"
@keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item>
<el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<!-- 操作工具栏 -->
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['infra:config:create']">新建流程</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<!-- 列表 -->
<el-table v-loading="loading" :data="list">
<el-table-column label="流程编号" align="center" prop="id" :show-overflow-tooltip="true" />
<el-table-column label="流程标识" align="center" prop="key" />
<el-table-column label="流程名称" align="center" prop="name" />
<el-table-column label="流程分类" align="center" prop="category" /> <!-- TODO 芋艿数据字典的格式化 -->
<el-table-column label="表单信息" align="center" prop="formId" /> <!-- TODO 芋艿需要支持表单的点击 -->
<el-table-column label="流程版本" align="center" prop="processDefinition.version" />
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="240">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-setting" @click="handleUpdate(scope.row)">设计流程</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)">删除</el-button>
<el-button size="mini" type="text" icon="el-icon-thumb" @click="handleDeploy(scope.row)">发布</el-button>
<!-- TODO 芋艿流程定义 -->
</template>
</el-table-column>
</el-table>
<!-- 分页组件 -->
<pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
@pagination="getList"/>
<!-- 流程编辑器 -->
<el-dialog class="bpmnclass dialogClass" :visible.sync="showBpmnOpen" :before-cancel="cancel" :fullscreen="true">
<vue-bpmn v-if="showBpmnOpen" product="activiti" @processSave="processSave"
:bpmnXml="bpmnXML" :bpmnData="bpmnData" @beforeClose="cancel" />
</el-dialog>
</div>
</template>
<script>
import {deleteModel, deployModel, createModel, updateModel, getModelPage, getModel} from "@/api/bpm/model";
import VueBpmn from "@/components/bpmn/VueBpmn";
export default {
name: "model",
data() {
return {
// 遮罩层
loading: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 表格数据
list: [],
// 查询参数
queryParams: {
pageNo: 1,
pageSize: 10
},
// BPMN 数据
showBpmnOpen: false,
bpmnXML: null,
bpmnData: {},
};
},
components: {VueBpmn},
created() {
this.getList();
},
methods: {
/** 查询流程模型列表 */
getList() {
this.loading = true;
getModelPage(this.queryParams).then(response => {
this.list = response.data.list;
this.total = response.data.total;
this.loading = false;
}
);
},
// 表单重置
reset() {
this.bpmnData = {}
this.bpmnXML = ""
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNo = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange = [];
this.resetForm("queryForm");
this.handleQuery();
},
processSave(data) {
// TODO 芋艿:临时写死的参数
data.category = '1'
data.formId = 11
// 修改的提交
if (data.id) {
updateModel(data).then(response => {
this.msgSuccess("修改成功");
// 关闭弹窗,刷新列表
this.showBpmnOpen = false
this.getList();
})
return
}
// 添加的提交
createModel(data).then(response => {
this.bpmnData.id = response.data
this.msgSuccess("保存成功");
// 关闭弹窗,刷新列表
this.showBpmnOpen = false
this.getList();
})
},
handleAdd() {
// 重置 Model 信息
this.reset()
// 打开弹窗
this.showBpmnOpen = true
},
cancel() {
// 打开弹窗
this.showBpmnOpen = false
// 重置 Model 信息
this.reset()
// 刷新列表
this.getList()
},
handleUpdate(row) {
// 重置 Model 信息
this.reset()
// 获得 Model 信息
getModel(row.id).then(response => {
this.bpmnXML = response.data.bpmnXml
this.bpmnData = response.data
// 打开弹窗
this.showBpmnOpen = true
})
},
handleDelete(row) {
const that = this;
this.$confirm('是否删除该流程!!', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
deleteModel(row.id).then(response => {
that.getList();
that.msgSuccess("删除成功");
})
})
},
handleDeploy(row) {
const that = this;
this.$confirm('是否部署该流程!!', "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "success"
}).then(function() {
deployModel(row.id).then(response => {
that.getList();
that.msgSuccess("部署成功");
})
})
}
}
};
</script>
<style>
.el-dialog > .el-dialog__body{
margin: 0;
border: 0;
}
.bpmn-viewer-header{
background: white;
}
.v-modal{
z-index: 2000!important;
}
.dialogClass{
padding: 0 ;
}
</style>