修改技术监督 重新发起 逻辑问题

This commit is contained in:
GGJ
2024-06-19 09:19:10 +08:00
parent 75b3e9992d
commit b5b79e4f81
5 changed files with 207 additions and 203 deletions

View File

@@ -13,12 +13,12 @@
<div v-for="(item, i) in list" class="cardBox" :style="i == 1 ? 'flex:1.3' : ''"> <div v-for="(item, i) in list" class="cardBox" :style="i == 1 ? 'flex:1.3' : ''">
<div class="card"> <div class="card">
<span style="cursor: pointer" @click="GridDiagram(i)">{{ item.title }}</span> <span style="cursor: pointer" @click="GridDiagram(i)">{{ item.title }}</span>
<!-- <span <span
:style="`color: ${item.color[0]}; cursor:pointer`" :style="`color: ${item.color[0]}; cursor:pointer`"
@click="LookMap(item.list[4].numOneList, item.list[4].numTwoList, 0)" @click="LookMap(item.list[4].numOneList, item.list[4].numTwoList, 0)"
> >
{{ item.list[4].numOne }} {{ item.list[4].numOne }}
</span> --> </span>
</div> </div>
</div> </div>
</div> </div>

View File

@@ -159,8 +159,7 @@ const tableStore = new TableStore({
icon: 'el-icon-Open', icon: 'el-icon-Open',
render: 'basicButton', render: 'basicButton',
disabled: row => { disabled: row => {
return (row.createBy = return row.createBy != adminInfo.$state.id || row.status != 1
adminInfo.$state.id || row.status == 3 || row.status == 2 || row.status == 4)
}, },
click: row => { click: row => {
cancelLeave(row) cancelLeave(row)

View File

@@ -1,26 +1,27 @@
6T
<template> <template>
<TableHeader area datePicker nextFlag ref='TableHeaderRef'> <TableHeader area datePicker nextFlag ref="TableHeaderRef">
<template v-slot:select> <template v-slot:select>
<el-form-item label='流程状态'> <el-form-item label="流程状态">
<el-select v-model='tableStore.table.params.status' clearable placeholder='请选择流程状态'> <el-select v-model="tableStore.table.params.status" clearable placeholder="请选择流程状态">
<el-option <el-option
v-for='item in statusSelect' v-for="item in statusSelect"
:key='item.id' :key="item.id"
:label='item.name' :label="item.name"
:value='item.id' :value="item.id"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</template> </template>
<template #operation> <template #operation>
<!-- <el-button icon="el-icon-Download" type="primary" @click="exportFn">导出</el-button> --> <!-- <el-button icon="el-icon-Download" type="primary" @click="exportFn">导出</el-button> -->
</template> </template>
</TableHeader> </TableHeader>
<Table ref='tableRef' /> <Table ref="tableRef" />
<!-- 新增 --> <!-- 新增 -->
<planTest ref='planTestRef' @onsubmit='tableStore.index()' /> <planTest ref="planTestRef" @onsubmit="tableStore.index()" />
</template> </template>
<script setup lang='ts'> <script setup lang="ts">
import { ref, onMounted, provide, nextTick } from 'vue' import { ref, onMounted, provide, nextTick } from 'vue'
import { useAdminInfo } from '@/stores/adminInfo' import { useAdminInfo } from '@/stores/adminInfo'
//获取登陆用户姓名和部门 //获取登陆用户姓名和部门
@@ -49,145 +50,150 @@ const TableHeaderRef = ref()
const auditList: any = ref([]) const auditList: any = ref([])
const tableStore = new TableStore({ const tableStore = new TableStore({
url: '/supervision-boot/surveyTest/surveyTestPage', url: '/supervision-boot/surveyTest/surveyTestPage',
publicHeight: 65, publicHeight: 65,
method: 'POST', method: 'POST',
column: [ column: [
{
title: '序号',
width: 60,
formatter: (row: any) => {
return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1
}
},
{ field: 'planName', title: '计划名称', minWidth: 140 },
{
field: 'supvType',
title: '监督类型',
minWidth: 130,
formatter: (row: any) => {
return supvTypeOptionList.filter(item => item.id === row.cellValue)[0]?.name
}
},
{
field: 'supvObjectName',
minWidth: 130,
title: '监督对象名称'
},
{ field: 'substationName', title: '变电站', minWidth: 140 },
{ field: 'planStartTime', title: '计划开始时间', minWidth: 140 },
{ field: 'planEndTime', title: '计划结束时间', minWidth: 140 },
{
field: 'problemFlag', title: '是否存在问题', minWidth: 120,
render: 'tag',
custom: {
0: 'success',
1: 'danger',
null: 'primary'
},
replaceValue: {
0: '合格',
1: '存在问题',
null: '待测试'
}
},
{ field: 'deptName', title: '负责单位', minWidth: 140 },
{ field: 'completeBy', title: '计划负责人', minWidth: 130 },
{ field: 'completeTime', title: '实际完成时间', minWidth: 140 },
{
field: 'status',
title: '流程状态',
render: 'tag',
minWidth: 140,
custom: {
6: 'primary',
1: 'primary',
2: 'success',
3: 'danger',
4: 'warning'
},
replaceValue: {
6: '新增',
1: '审批中',
2: '审批通过',
3: '审批不通过',
4: '已取消'
}
},
{
field: 'createBy',
title: '填报人',
minWidth: 80,
formatter: (row: any) => {
return dictData.state.userList.filter(item => item.id == row.cellValue)[0]?.name
}
},
{
title: '操作',
minWidth: 180,
render: 'buttons',
fixed: 'right',
buttons: [
{ {
name: 'productSetting', title: '序号',
title: '测试填报', width: 60,
type: 'primary', formatter: (row: any) => {
icon: 'el-icon-EditPen', return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1
render: 'basicButton', }
disabled: row => { },
return row.status != 6 { field: 'planName', title: '计划名称', minWidth: 140 },
}, {
click: row => { field: 'supvType',
add(row.id) title: '监督类型',
} minWidth: 130,
formatter: (row: any) => {
return supvTypeOptionList.filter(item => item.id === row.cellValue)[0]?.name
}
}, },
{ {
name: 'productSetting', field: 'supvObjectName',
title: '流程详情', minWidth: 130,
type: 'primary', title: '监督对象名称'
icon: 'el-icon-EditPen', },
render: 'basicButton', { field: 'substationName', title: '变电站', minWidth: 140 },
disabled: row => { { field: 'planStartTime', title: '计划开始时间', minWidth: 140 },
return row.status == 6 || row.status == 4 { field: 'planEndTime', title: '计划结束时间', minWidth: 140 },
}, {
click: row => { field: 'problemFlag',
// planTestRef.value.open('查看计划', row) title: '是否存在问题',
handleAudit(row.processInstanceId, row.historyInstanceId) minWidth: 120,
} render: 'tag',
custom: {
0: 'success',
1: 'danger',
null: 'primary'
},
replaceValue: {
0: '合格',
1: '存在问题',
null: '待测试'
}
},
{ field: 'deptName', title: '负责单位', minWidth: 140 },
{ field: 'completeBy', title: '计划负责人', minWidth: 130 },
{ field: 'completeTime', title: '实际完成时间', minWidth: 140 },
{
field: 'status',
title: '流程状态',
render: 'tag',
minWidth: 140,
custom: {
6: 'primary',
1: 'primary',
2: 'success',
3: 'danger',
4: 'warning'
},
replaceValue: {
6: '新增',
1: '审批中',
2: '审批通过',
3: '审批不通过',
4: '已取消'
}
}, },
{ {
name: 'edit', field: 'createBy',
title: '重新发起', title: '填报人',
type: 'warning', minWidth: 80,
icon: 'el-icon-Open', formatter: (row: any) => {
render: 'basicButton', return dictData.state.userList.filter(item => item.id == row.cellValue)[0]?.name
disabled: row => { }
return row.createBy != adminInfo.$state.id || !(row.status == 3 || row.status == 4|| row.status == 6)
},
click: row => {
planTestRef.value.open('重新发起计划测试', row.id, false)
}
}, },
{ {
name: 'cancel', title: '操作',
title: '取消', minWidth: 180,
type: 'danger', render: 'buttons',
icon: 'el-icon-Open', fixed: 'right',
render: 'basicButton', buttons: [
disabled: row => { {
return !(row.createBy == adminInfo.$state.id|| row.status == 1 ) name: 'productSetting',
}, title: '测试填报',
click: row => { type: 'primary',
cancelLeave(row) icon: 'el-icon-EditPen',
} render: 'basicButton',
disabled: row => {
return row.status != 6
},
click: row => {
add(row.id)
}
},
{
name: 'productSetting',
title: '流程详情',
type: 'primary',
icon: 'el-icon-EditPen',
render: 'basicButton',
disabled: row => {
return row.status == 6 || row.status == 4
},
click: row => {
// planTestRef.value.open('查看计划', row)
handleAudit(row.processInstanceId, row.historyInstanceId)
}
},
{
name: 'edit',
title: '重新发起',
type: 'warning',
icon: 'el-icon-Open',
render: 'basicButton',
disabled: row => {
return (
row.createBy != adminInfo.$state.id ||
!(row.status == 3 || row.status == 4 )
)
},
click: row => {
planTestRef.value.open('重新发起计划测试', row.id, false)
}
},
{
name: 'cancel',
title: '取消',
type: 'danger',
icon: 'el-icon-Open',
render: 'basicButton',
disabled: row => {
return row.createBy != adminInfo.$state.id || row.status != 1
},
click: row => {
cancelLeave(row)
}
}
]
} }
] ],
beforeSearchFun: () => {
tableStore.table.params.orgNo = tableStore.table.params.deptIndex
tableStore.table.params.currentPage = tableStore.table.params.pageNum
} }
],
beforeSearchFun: () => {
tableStore.table.params.orgNo = tableStore.table.params.deptIndex
tableStore.table.params.currentPage = tableStore.table.params.pageNum
}
}) })
tableStore.table.params.status = '' tableStore.table.params.status = ''
@@ -195,68 +201,66 @@ tableStore.table.params.status = ''
provide('tableStore', tableStore) provide('tableStore', tableStore)
// 新增计划 // 新增计划
const add = (id: string) => { const add = (id: string) => {
planTestRef.value.open('计划测试填报', id, true) planTestRef.value.open('计划测试填报', id, true)
} }
const exportFn = () => { const exportFn = () => {
let form = JSON.parse(JSON.stringify(tableStore.table.params)) let form = JSON.parse(JSON.stringify(tableStore.table.params))
form.pageNum = 1 form.pageNum = 1
form.pageSize = tableStore.table.total form.pageSize = tableStore.table.total
queryPlan(form).then(res => { queryPlan(form).then(res => {
tableRef.value.getRef().exportData({ tableRef.value.getRef().exportData({
filename: '计划', // 文件名字 filename: '计划', // 文件名字
sheetName: 'Sheet1', sheetName: 'Sheet1',
type: 'xlsx', //导出文件类型 xlsx 和 csv type: 'xlsx', //导出文件类型 xlsx 和 csv
useStyle: true, useStyle: true,
data: res.data.records, // 数据源 // 过滤那个字段导出 data: res.data.records, // 数据源 // 过滤那个字段导出
columnFilterMethod: function(column: any) { columnFilterMethod: function (column: any) {
return !(column.$columnIndex === 0) return !(column.$columnIndex === 0)
} }
})
}) })
})
} }
/**取消流程操作*/ /**取消流程操作*/
const cancelLeave = async (row: any) => { const cancelLeave = async (row: any) => {
// 二次确认 // 二次确认
const { value } = await ElMessageBox.prompt('请输入取消原因', '取消流程', { const { value } = await ElMessageBox.prompt('请输入取消原因', '取消流程', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
inputPattern: /^[\s\S]*.*\S[\s\S]*$/, // 判断非空,且非空格 inputPattern: /^[\s\S]*.*\S[\s\S]*$/, // 判断非空,且非空格
inputErrorMessage: '取消原因不能为空' inputErrorMessage: '取消原因不能为空'
}) })
// 发起取消 // 发起取消
let data = { let data = {
id: row.id, id: row.id,
processInstanceId: row.processInstanceId, processInstanceId: row.processInstanceId,
reason: value reason: value
} }
await cancelTest(data) await cancelTest(data)
ElMessage.success('取消成功') ElMessage.success('取消成功')
// 加载数据 // 加载数据
tableStore.index() tableStore.index()
} }
/** 处理审批按钮 */ /** 处理审批按钮 */
const handleAudit = (instanceId: any, historyInstanceId: any) => { const handleAudit = (instanceId: any, historyInstanceId: any) => {
push({ push({
name: 'BpmProcessInstanceDetail', name: 'BpmProcessInstanceDetail',
state: { state: {
id: instanceId, id: instanceId,
historyInstanceId historyInstanceId
} }
}) })
} }
// 取消 // 取消
onMounted(() => { onMounted(() => {
tableStore.index() tableStore.index()
getUserByRoleType(3).then(res => { getUserByRoleType(3).then(res => {
auditList.value = res.data auditList.value = res.data
}) })
}) })
</script> </script>
<style scoped lang='scss'></style> <style scoped lang="scss"></style>

View File

@@ -237,7 +237,8 @@ const tableStore = new TableStore({
icon: 'el-icon-Open', icon: 'el-icon-Open',
render: 'basicButton', render: 'basicButton',
disabled: row => { disabled: row => {
return row.createBy != adminInfo.$state.id || row.status != 1 || !row.processInstanceId // return row.createBy != adminInfo.$state.id || row.status != 1 || !row.processInstanceId
return row.createBy != adminInfo.$state.id || row.status != 1
}, },
click: row => { click: row => {
cancelLeave(row) cancelLeave(row)

View File

@@ -146,7 +146,7 @@ const tableStore = new TableStore({
icon: 'el-icon-Open', icon: 'el-icon-Open',
render: 'basicButton', render: 'basicButton',
disabled: row => { disabled: row => {
return row.status != 1 return row.createBy != adminInfo.$state.id || row.status != 1
}, },
click: async row => { click: async row => {
// cancelLeave(row) // cancelLeave(row)