增加流程配置

This commit is contained in:
zhoulingpo
2023-04-20 15:51:28 +08:00
parent 812e7bc8fb
commit b3611568b0
4 changed files with 288 additions and 503 deletions
+25 -1
View File
@@ -17,5 +17,29 @@ export default {
params: data
})
},
//
//部署接口
deploy (data) {
return request({
url: '/api/lawss/activiti/get_list_by_instance',
method: 'get',
params: data
})
},
//获取流程配置列表
getModelListPage (data){
return request({
url: '/api/modelList',
method: 'get',
data: data
})
},
//新增模板
addModel (data){
return request({
url: '/api/createModel',
method: 'get',
data: data
})
}
}
+68 -36
View File
@@ -1,21 +1,25 @@
<template>
<div class="content">
<div class="content-height content-center">
<div class="title">
<span>流程中心</span>
</div>
<div class="searchForm">
<div class="item">
<div>流程编号</div>
<el-input v-model="form.id" ></el-input>
</div>
<div class="item">
<div>流程名称</div>
<el-input v-model="form.name"></el-input>
</div>
<div class="item">
<el-button type="primary" @click="search">查询</el-button>
<el-button type="" @click="reset">重置</el-button>
</div>
<div class="search">
<el-row>
<el-col :span="20">
<div class="search-box-left">
<label>流程编号</label>
<el-input v-model="form.id" ></el-input>
<label>流程名称</label>
<el-input v-model="form.name"></el-input>
</div>
</el-col>
<el-col :span="4" align="right">
<div class="search-box-right">
<el-button type="primary" @click="search">查询</el-button>
<el-button type="" @click="reset">重置</el-button>
</div>
</el-col>
</el-row>
</div>
<div class="tabs">
<tabs :tableData="tableData"/>
@@ -63,11 +67,7 @@ import tabs from '../userCenter/processCenter/tabs.vue'
</script>
<style lang="scss" scoped>
.content{
min-height: calc(100vh - 60px - 20px);
box-shadow: 0 6px 11px 0 rgba(163, 163, 163, 0.2);
border-radius: 6px;
background: #FFFFFF;
.content-center{
.title {
border-bottom: 1px solid #EBEEF5;
height: 42px;
@@ -80,26 +80,58 @@ import tabs from '../userCenter/processCenter/tabs.vue'
color: #262626;
}
}
.searchForm{
width: 1200px;
display: flex;
align-items: center;
margin: 20px 0 0 22px;
.item{
width: 300px;
display: flex;
align-items: center;
font-size: 14px;
font-weight: 400;
color: #595959;
margin-right: 5px;
padding-left: 22px;
}
::v-deep .el-input{
width: 200px;
.search {
.search-box-left {
padding-top: 20px;
display: flex;
justify-content: flex-start;
align-items: center;
label {
font-size: 14px;
font-weight: 400;
color: #595959;
margin-right: 5px;
padding-left: 22px;
}
.year {
::v-deep .el-input__inner {
padding: 0 15px !important;
}
}
::v-deep .el-input {
width: 167px;
margin-right: 5px;
}
@media screen and (max-width: 1366px) {
::v-deep .el-input {
width: 135px;
margin-right: 5px;
}
}
::v-deep .el-button {
float: right;
}
}
.search-box-right {
padding-top: 20px;
display: flex;
justify-content: flex-end;
align-items: center;
padding-right: 14px;
}
.operate-box {
padding-left: 13px;
padding-bottom: 11px;
padding-top: 18px;
}
}
.tabs{
margin: 20px 0 0 13px;
}
@@ -17,7 +17,7 @@
return {
modelId : '',
name: '',
actUrl: 'http://10.0.10.87:17210/bat-wkflow/modeler.html?modelId='
actUrl: 'http://localhost:17210/bat-wkflow/modeler.html?modelId='
}
},
created() {
+194 -465
View File
@@ -1,190 +1,84 @@
<template>
<div style="height: 100%;background-color: #fff;position: relative;overflow: hidden;">
<div style="height:50px;margin-top: 20px;overflow:hidden;">
<el-form class="hight_form label-input-form" :modal="processForm" :inline="true"
label-width="103px" @keyup.enter.native="queryTablePage()">
<el-col :xl="6" :lg="8" >
<el-form-item label="流程名称:" prop="name" class="search-item search-item-last">
<el-input :maxlength='100' v-model="processForm.name"
placeholder="请输入流程名称"
clearable/>
</el-form-item>
</el-col>
<el-col :xl=" 6" :lg="8">
<el-form-item class="btn-box">
<el-button size="small" type="primary"
class="common-button-primary img-button"
@click="queryTablePage()">查询
</el-button>
<el-button size="small" class="common-button-default img-button"
@click="clearAllSearchs('standCommonlySearch')">
重置
</el-button>
</el-form-item>
</el-col>
</el-form>
<div class="content-height configBox">
<div class="title">
<span>报告管理</span>
</div>
<div class="action-bar" style="text-align: left;width:100%;">
<el-button
size="small"
type="primary"
class="common-button-primary img-button"
@click="addRow"
>新增
</el-button>
<div class="search">
<el-row>
<!-- <el-col :span="5">-->
<!-- <div class="search-box-left">-->
<!-- <label>流程名称</label>-->
<!-- <el-input v-model="processForm.name" ></el-input>-->
<!-- </div>-->
<!-- </el-col>-->
<!-- <el-col :span="4" align="right">-->
<!-- <div class="search-box-right">-->
<!-- <el-button type="primary" @click="queryTablePage">查询</el-button>-->
<!-- <el-button type="" @click="clearAllSearchs">重置</el-button>-->
<!-- </div>-->
<!-- </el-col>-->
<el-col :span="24">
<div class="operate-box">
<el-button @click="addRow">新增</el-button>
</div>
</el-col>
</el-row>
</div>
<div style="height: 100%;">
<!--<table-tools-bar>-->
<!-- <div slot="left">-->
<!-- <div class="search-area">-->
<!-- <el-form :model="searchForm" inline class="label-input-form">-->
<!-- <el-form-item :label="$t('m.standardNumAndName')" prop="standardKey" class="search-item">-->
<!-- <el-input-->
<!-- v-model="searchForm.standardKey"-->
<!-- :placeholder="$t('m.standardNumAndNameTips')"-->
<!-- clearable-->
<!-- :maxlength="100"/>-->
<!-- </el-form-item>-->
<!-- <el-form-item class="search-item btn-box">-->
<!-- <el-button-->
<!-- icon="el-icon-search"-->
<!-- type="primary"-->
<!-- class="common-button-primary"-->
<!-- round-->
<!-- @click="searchBtn"-->
<!-- ></el-button>-->
<!-- </el-form-item>-->
<!-- <el-form-item class="search-item btn-box">-->
<!-- <el-button-->
<!-- class="common-button-default"-->
<!-- icon="el-icon-refresh-left"-->
<!-- round-->
<!-- @click="resetSearchForm">{{$t('m.clearQuery')}}</el-button>-->
<!-- </el-form-item>-->
<!-- </el-form>-->
<!-- </div>-->
<!-- </div>-->
<!--</table-tools-bar>-->
<!-- v-btn-permission="'XBRKH5BP5K'"-->
<div class="content">
<el-table
border
ref="selection"
:data="tableList"
tooltip-effect="dark"
style="width: 100%;"
height="100%"
@sort-change="sortChange($event, 'queryTablePage')"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}"
row-key="id"
>
<el-table-column
type="index"
width="55"
label="序号"
align="center">
</el-table-column>
<el-table-column
prop="name"
label="流程名称"
>
</el-table-column>
<el-table-column
prop="categoryName"
label="流程类型"
>
</el-table-column>
<el-table-column
prop="createTime" sortable="custom"
label="创建时间">
<!-- <template slot-scope="scope">-->
<!-- <span>{{$moment(scope.row.createTime).format('YYYY-MM-DD HH:mm:ss')}}</span>-->
<!-- </template>-->
</el-table-column>
<el-table-column label="操作" align="center" width="60" fixed="right">
<template slot-scope="scope">
<div @click.stop style="display: inline-block">
<el-dropdown trigger="click" @command="handleCommand">
<el-button type="text" class="text" style="padding: 0">更多</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item :command="[scope.row, '编辑']">
编辑
</el-dropdown-item>
<el-dropdown-item :command="[scope.row, '部署']">
部署
</el-dropdown-item>
<el-dropdown-item :command="[scope.row, '复制']">
复制
</el-dropdown-item>
<el-dropdown-item :command="[scope.row, '删除']">
删除
</el-dropdown-item>
<el-dropdown-item :command="[scope.row, '流程']">
流程人员配置
</el-dropdown-item>
<el-dropdown-item :command="[scope.row, '预设']" v-if="processId.indexOf(scope.row.id)>-1">
预设人员配置
</el-dropdown-item>
<el-dropdown-item :command="[scope.row, '提示']">
提示语配置
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</template>
</el-table-column>
</el-table>
</div>
<pagination :total="total" :page="pageNo" @pageChange="pageChange" @pageSizeChange="pageSizeChange"></pagination>
<edit-process
:visible="editRowDialogVisible"
:data="editRowDialogData"
@close="handleEditRowDialogClose"
@success="handleEditRowDialogSuccess"
></edit-process>
<div class="table">
<vxe-table ref="xTable" :data="tableList" :empty-render="{name: 'NotData'}" align="center" border stripe v-table-min-height="'calc(100vh - 320px)'">
<vxe-column show-overflow show-header-overflow field="name" title="流程名称"></vxe-column>
<vxe-column show-overflow show-header-overflow field="categoryName" title="流程类型"></vxe-column>
<vxe-column show-overflow show-header-overflow field="createTime" title="创建时间"></vxe-column>
<vxe-column show-overflow show-header-overflow title="操作" width="200" fixed="right">
<template #default="{ row }">
<el-button type="text" @click="editRow(row)">编辑</el-button>
<el-button type="text" @click="deploy(row)">部署</el-button>
</template>
</vxe-column>
</vxe-table>
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="q.current"
:page-sizes="[5, 10, 20]" :page-size="q.size" layout="total, sizes, prev, pager, next, jumper"
:total="total" />
<el-dialog :close-on-click-modal="false"
:visible="visible"
:title="title"
@close="closeDialog"
width="400px"
width="300px"
class="addDialog"
>
<el-form
ref="form"
:model="formData"
class="label-input-form"
class="addform"
label-width="100px"
inline
>
<el-form-item label="流程类型" prop="category" class="add-form-item">
<el-select v-model="formData.category" placeholder="请选择流程类型" clearable>
<el-option v-for="opt in typeList" :value="opt.value" :key="opt.value" :label="opt.label">{{
opt.label}}
</el-option>
</el-select>
</el-form-item>
<el-form-item label="模型名称" class="add-form-item">
<el-input
v-model="formData.name"
placeholder="请输入模型名称"
clearable
:maxlength="100"></el-input>
</el-form-item>
<el-form-item label="模型描述" class="add-form-item">
<el-input
v-model="formData.desc"
placeholder="请输入模型描述"
clearable
:maxlength="100"></el-input>
</el-form-item>
<el-row>
<el-form-item label="模型名称" class="add-form-item">
<el-input
v-model="formData.name"
placeholder="请输入模型名称"
clearable
:maxlength="100"></el-input>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="模型描述" class="add-form-item">
<el-input
v-model="formData.desc"
placeholder="请输入模型描述"
clearable
:maxlength="100"></el-input>
</el-form-item>
</el-row>
</el-form>
<div slot="footer">
<el-button size="small" class="common-button-default" @click="closeDialog">
取消
<div slot="footer" class="add-footer">
<el-button size="big" class="common-button-default" @click="closeDialog">
取消
</el-button>
<el-button size="small" class="common-button-primary" type="primary"
<el-button size="big" class="common-button-primary" type="primary"
@click="confirmDialog">确认
</el-button>
</div>
@@ -201,191 +95,43 @@ export default {
components: { EditProcess },
data () {
return {
tableDataLoading: false,
formData: {
name: '',
desc: ''
},
total: 0,
visible: false,
formData: {},
title: '添加流程',
selectRoleId: '',
typeList: [],
searchForm: {
standardKey: ''
q: {
current: 1,
size: 10
},
pageNo: 1,
pageSize: 10,
tableList: [{name:1}],
editRowDialogVisible: false,
editRowDialogData: undefined, // 新增时为 undefined null 或者 false 即可
nowOrder: 'prder',
processId: ['6450334', '6465017', '6482501', '6482508', '6485001', '6482515'],
processForm: {
name: ''
}
},
visible:false,
title: '添加流程'
}
},
methods: {
// 表格排序
sortChange (sortObj, tableName) {
console.log(sortObj)
if (sortObj.order === 'ascending') {
this.nowOrder = 'asc'
} else if (sortObj.order === 'descending') {
this.nowOrder = 'desc'
} else {
this.nowOrder = 'prder'
}
this[tableName]()
},
// 根据条件查询信息
searchBtn () {
this.resetPageNo()
handleCurrentChange(page) {
this.q.current = page
this.queryTablePage()
},
closeDialog () {
this.visible = false
},
confirmDialog () {
const formData = {
category: this.formData.category,
desc: this.formData.desc,
name: this.formData.name
}
this.$http.get('lawss/activiti/createModel',
formData,
{
_this: this,
loading: 'tableDataLoading'
},
res => {
if (res.success) {
this.$message.warning(res.message)
this.visible = false
this.queryTablePage()
}
}, e => {
})
},
/**
* 重置搜索表单并重新加载表格数据
*/
resetSearchForm () {
this.searchForm.standardKey = ''
// this.resetSearchForm()
handleSizeChange(size) {
this.q.size = size
this.queryTablePage()
},
pageChange (page) {
this.pageNo = page
this.queryTablePage()
closeDialog() {
this.visible=false
},
pageSizeChange () {
this.queryTablePage()
},
resetPageNo () {
this.pageNo = 1
},
querytypeList () {
const formData = {
...this.processForm
// page: this.pageNo,
// pageSize: this.$store.getters.userInfo.configContent,
// standNumber: this.searchForm.standardKey
}
this.$http.get('lawss/activiti/categoryList',
formData,
{
_this: this,
loading: 'tableDataLoading'
},
res => {
this.typeList = res.result.map(item => {
return {
label: item.type,
value: item.objectId
}
})
// this.total = res.data.count
}, e => {
})
},
// 查询、加载表格
queryTablePage () {
// const formData = {
// current: this.pageNo,
// size: this.$store.getters.userInfo.configContent,
// order: this.nowOrder,
// ...this.processForm
// // standNumber: this.searchForm.standardKey
// }
// this.$http.get('lawss/activiti/modelListPage',
// formData,
// {
// _this: this,
// loading: 'tableDataLoading'
// },
// res => {
// if (res.success) {
// this.tableList = res.result.records
// this.total = res.result.total
// } else {
// this.tableList = []
// this.total = 0
// this.$message.warning(res.message)
// }
// }, e => {
// })
},
clearAllSearchs () {
this.processForm = { name: '' }
this.queryTablePage()
},
// 点击查看
handlePreview (item) {
console.log('item', item)
const routeUrl = this.$router.resolve({
name: 'OtherStandardDetails',
params: {
id: item.id,
pageType: 'INLAND_STAND'
}
editRow(row) {
this.$router.push({
path: '/userCenter/processMapping',
query: {id: 'AEHJB8YNJ3',modelId: row.id}
})
window.open(routeUrl.href, '_blank')
},
// 表格行 - 点击更多 事件
handleCommand (command) {
switch (command[1]) {
case '编辑':
this.$router.push({
path: '/userCenter/processMapping',
query: { id: 'AEHJB8YNJ3' ,modelId: command[0].id}
})
// this.editRow(command[0])
break
case '删除':
this.deleteRow(command[0])
break
case '复制':
this.copyModel(command[0].id)
break
case '部署':
this.deploy(command[0].id)
break
case '流程':
this.nodeConfiguration(command[0])
break
case '预设':
this.preSet(command[0])
break
case '提示':
this.showTip(command[0])
break
}
},
deploy (modelId) {
//部署
deploy(row) {
this.$confirm('确认部署该条数据?', '确认部署', {
confirmButtonText: '确定',
cancelButtonText: '取消',
@@ -393,146 +139,129 @@ export default {
type: 'warning'
}).then(() => {
this.$http.get('lawss/activiti/deploy', {
modelId: modelId
}, {
_this: this
}, res => {
if (res.success) {
this.$message.warning(res.message)
this.queryTablePage()
}
}, e => {
this.$api.process.deploy({id: row.id}).then(res=>{
this.$message.warning(res.message)
this.queryTablePage()
})
}).catch(() => {
})
},
copyModel (modelId) {
this.$confirm('确认复制该条数据?', '确认复制', {
confirmButtonText: '确定',
cancelButtonText: '取消',
confirmButtonClass: 'common-button-primary',
type: 'warning'
}).then(() => {
this.$http.get('/lawss/activiti/copyModel', {
modelId: modelId
}, {
_this: this
}, res => {
if (res.success) {
this.$router.push({
path: '/processMapping',
query: { id: res.result }
})
}
}, e => {
})
}).catch(() => {
queryTablePage() {
this.$api.process.getModelListPage({...this.q,...this.searchForm}).then(res=>{
this.tableList = res.result.records
this.total = res.result.total
}).catch(err=>{
console.log("dddddddddddddddd")
this.tableList =[ {name:1}]
})
},
// 删除
deleteRow (row) {
this.$confirm('确认删除该条数据?', '确认删除', {
confirmButtonText: '确定',
cancelButtonText: '取消',
confirmButtonClass: 'common-button-primary',
type: 'warning'
}).then(() => {
const id = row.id
const oDate1 = new Date('2021-09-22 15:00:00')
const oDate2 = new Date(row.createTime)
if (oDate1.getTime() > oDate2.getTime()) {
this.$message.warning('原始流程不可以删除')
} else {
this.$http.get('/lawss/activiti/deleteModel', {
modelId: id
}, {
_this: this
}, res => {
this.$message.success(res.message)
this.queryTablePage()
}, e => {
})
}
}).catch(() => {
})
},
preSet (row) {
row.page = this.pageNo
this.$router.push({
path: '/presetPersonnel',
query: { id: row.id }
})
},
nodeConfiguration (row) {
row.page = this.pageNo
this.$router.push({
path: '/nodeConfiguration',
query: row
})
},
showTip (row) {
row.page = this.pageNo
this.$router.push({
path: '/promptConfiguration',
query: row
})
},
editRow (row) {
this.editRowDialogData = { ...row }
this.editRowDialogVisible = true
},
handleEditRowDialogClose () {
this.editRowDialogVisible = false
},
handleEditRowDialogSuccess () {
this.queryTablePage()
},
addRow () {
addRow() {
this.formData = {
name: '',
desc: ''
}
this.visible = true
// this.$router.push({
// path: '/ProcessMapping',
// query:{id:0}
// })
// this.editRowDialogData = undefined
// this.editRowDialogVisible = true
},
confirmDialog() {
this.$api.process.addModel(this.formData).then(res=> {
this.$message.success(res.message)
this.visible = false
this.queryTablePage()
})
}
},
created () {
// this.queryTablePage()
// this.querytypeList()
}
}
</script>
<style lang="scss" scoped>
.content {
padding: 0 10px;
height: 100px;
}
::v-deep .label-input-form .el-input__inner{
border-radius: 20px;
.configBox{
.search {
.search-box-left {
padding-top: 20px;
display: flex;
justify-content: flex-start;
align-items: center;
label {
font-size: 14px;
font-weight: 400;
color: #595959;
margin-right: 5px;
padding-left: 22px;
}
.year {
::v-deep .el-input__inner {
padding: 0 15px !important;
}
}
::v-deep .el-input {
width: 167px;
margin-right: 5px;
}
@media screen and (max-width: 1366px) {
::v-deep .el-input {
width: 135px;
margin-right: 5px;
}
}
::v-deep .el-button {
float: right;
}
}
.search-box-right {
padding-top: 20px;
display: flex;
justify-content: flex-end;
align-items: center;
padding-right: 14px;
}
.operate-box {
padding-left: 13px;
padding-bottom: 11px;
padding-top: 18px;
}
}
.title {
border-bottom: 1px solid #EBEEF5;
height: 42px;
line-height: 42px;
margin: 0 18px 0 22px;
span {
font-size: 16px;
font-weight: 600;
color: #262626;
}
}
.table {
margin: 0 14px 0 13px;
::v-deep .el-pagination {
margin-top: 13px;
padding-left: 20px;
padding-bottom: 10px;
}
}
.addform{
padding: 50px 0;
.add-form-item {
::v-deep .el-input__inner {
padding: 0 15px !important;
width: 250px;
height: 40px;
}
}
}
.add-footer{
padding: 20px 20px;
}
}
.el-divider-low {
margin: 15px 0;
}
.search-area {
padding: 0;
}
.btn-group {
position: absolute;
bottom: 20px;
right: 20px;
background: #ffffff;
z-index: 999;
}
</style>