【修改】权限申请流程修改页面

This commit is contained in:
zhoulingpo
2023-04-23 17:51:04 +08:00
parent ee5a84368d
commit 3d69b7266b
12 changed files with 287 additions and 101 deletions
+7 -2
View File
@@ -1,13 +1,16 @@
.DS_Store
node_modules
/dist
*.zip
# local env files
.env.local
.env.*.local
vue.config.js
.elslintignore
.gitignore
# Log files
npm-debug.log*
yarn-debug.log*
@@ -15,6 +18,7 @@ yarn-error.log*
pnpm-debug.log*
# Editor directories and files
.idea
.vscode
*.suo
@@ -23,4 +27,5 @@ pnpm-debug.log*
*.sln
*.sw?
*.lock
*-lock.json
*-lock.json
+19 -2
View File
@@ -77,10 +77,27 @@ export default {
exportStandard(data) {
return request({
url: '/api/historyExport',
method: 'post',
method: 'get',
params: data ,
responseType:'blob'
})
}
},
// 通用流程提交
completeTask(data){
return request({
url: '/api/completeTask',
method: 'post',
data: data
})
},
// 通用流程详细信息查询
getProcessDetail( data ){
return request({
url: '/api/zcfgrklcDetail',
method: 'get',
params: data
})
},
}
+31 -19
View File
@@ -14,27 +14,24 @@
},
],
formDisableFlag: false,
pickerOptions: {
disabledDate(time) {
const start = new Date(new Date().toLocaleDateString());
start.setTime(start.getTime());
return time.getTime() < start
}
},
nowOrder: '',
nowOrderBy: '',
searchForm: {}
searchForm: {},
busMes: {
createUser: '',
createUserName: '',
dataJson: '',
dept: '',
id: '',
prcType: '',
submitJson: '',
taskId: '',
userId: '',
},
processOld:{} //存储流程的就信息
}
},
methods: {
search(){
this.$bus.$on('getSearchItem',(data)=>{
console.log( "dd")
this.searchForm = data
this.loadData()
});
},
// 表格排序
sortChange(sortObj, tableName) {
// console.log(sortObj)
@@ -63,9 +60,6 @@
})
return prcName
},
/**
* @description: 对表单部分字段进行校验
* @date: 2021-01-15 10:00:16
@@ -94,6 +88,24 @@
}
})
},
// 所有流程的完成任务
completeProcess(dataJson,submitJson) {
this.$api.process.completeTask().then(res=>{
this.$message['success']('提交成功')
})
},
// 获取流程详细信息
getProcessDetail(){
return new Promise((resolve,reject)=>{
this.$api.process.getProcessDetail({taskId:this.taskIds}).then(res=>{
let data=res.data
this.processOld=res.data
resolve()
}).catch(err=>{
reject()
})
})
}
},
computed: {},
watch: {},
@@ -6,19 +6,19 @@
:rules="examineFormRules"
size="medium"
class="label-input-form prc-content-border">
<el-row :gutter="24">
<el-col :span="9">
<el-form-item label="选择赋权时间:" prop="date"
label-width="132px" class="add-form-item"
:class="{'form-item-disabled': formdisableflag}">
<el-date-picker
v-model="examineForm.date"
type="date"
placeholder="选择赋权时间">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<!-- <el-row :gutter="24">-->
<!-- <el-col :span="9">-->
<!-- <el-form-item label="选择赋权时间:" prop="date"-->
<!-- label-width="132px" class="add-form-item"-->
<!-- :class="{'form-item-disabled': formdisableflag}">-->
<!-- <el-date-picker-->
<!-- v-model="examineForm.date"-->
<!-- type="date"-->
<!-- placeholder="选择赋权时间">-->
<!-- </el-date-picker>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- </el-row>-->
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="审批结果:" prop="flag"
@@ -76,15 +76,10 @@ export default {
examineForm: {
planReasonFile: '',
oldName: '',
flag: '1'
flag: '1',
approvalOpinion: ''
},
examineFormRules: {
date: [
{ required: true, message: '选择赋权时间不能为空', trigger: 'change' }
],
oldName: [
{ required: true, message: '添加指派不能为空', trigger: 'change' }
],
flag: [
{ required: true, message: '审核结果不能为空', trigger: 'change' }
],
+40 -6
View File
@@ -2,10 +2,21 @@
<!-- 此页面主要展示审核和已完成-->
<div class="process">
<div class="process_box">
<process-header :title="'权限审批'" :proceesNum="'proceesNum'"></process-header>
<process-header :title="'权限审批'" :proceesNum="this.processOld.prcNum"></process-header>
<div class="procedure">
<div class="process_content">
<span class="base_title">基础信息</span>
<el-form ref="processFormRef" :model="processForm" label-width="150px"
:rules="processFormRule" class="label-input-form" size="medium">
<el-row>
<el-col :span="9">
<el-form-item label="流程名称:" prop="prcName">
<el-input readonly :disabled="formControl " v-model="processForm.prcName" @click.native="handleCheck('spr1')"
placeholder="请输入流程名称"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-row>
<report-table v-model="tableData" @updateTable="(newValue)=>{tableData=newValue}" :disabled="formControl"></report-table>
</el-row>
@@ -72,9 +83,10 @@ import processApprovalHistory from '@/components/ProcessApprovalHistory'
import auditOperation from './components/AuditOperation'
import reportTable from './components/reportTable'
import { PERMISSION } from '@/utils/Enum/enum'
import processMixin from "../../components/ProcessMixin";
export default {
name: 'launch',
mixins: [processMixin],
components: {
processHeader,
reportTable,
@@ -85,6 +97,18 @@ export default {
},
data () {
return {
processFormRule: {
prcName: [{
required: true,
message: '请输入流程名称',
trigger: 'change'
},{
max: 100,
message: '申请原因最多填写100字符',
trigger: 'change'
}]
},
processForm: { prcName : ''},
visibleTree: false,
isSubmit: false,
tranLoading: false,
@@ -124,10 +148,20 @@ export default {
}
},
created () {
if (this.$route.query.ids) {
this.reportList(this.$route.query.ids)
}
console.log(this.PERMISSION, 'ddd')
this.getProcessDetail().then(res=>{
this.applicationForm.name = JSON.parse(this.processOld.dataJson).name
this.applicationForm.send = JSON.parse(this.processOld.dataJson).send
this.tableData = JSON.parse(this.processOld.dataJson).tableData
this.processForm.prcName = JSON.parse(this.processOld.dataJson).prcName
this.formControl= true
if(this.$route.query.yiban){
}else{
}
})
},
methods: {
// 获取表格列表 吧查询到的值传给子组件
+87 -13
View File
@@ -5,6 +5,17 @@
<div class="procedure">
<div class="process_content">
<span class="base_title">基础信息</span>
<el-form ref="processFormRef" :model="processForm" label-width="150px"
:rules="processFormRule" class="label-input-form" size="medium">
<el-row>
<el-col :span="9">
<el-form-item label="流程名称:" prop="prcName">
<el-input readonly :disabled="formControl || formControlname" v-model="processForm.prcName" @click.native="handleCheck('spr1')"
placeholder="请输入流程名称"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-row>
<report-table v-model="tableData" @updateTable="(newValue)=>{tableData=newValue}"></report-table>
</el-row>
@@ -106,6 +117,7 @@ import processApprovalHistory from '@/components/ProcessApprovalHistory'
import reportTable from './components/reportTable'
import { PERMISSION } from '@/utils/Enum/enum'
import orgTable from '../../components/OrgTable'
import processMixin from "../../components/ProcessMixin";
export default {
name: 'launch',
components: {
@@ -115,9 +127,10 @@ export default {
processApprovalHistory,
orgTable
},
mixins: [processMixin],
data () {
return {
initShow: false, // 控制审批历史是否显示
initShow: false, // 控制审批历史是否显示 只有在不是第一次的时候才是true
treeType: '',
orgTableVal: '',
orgTableValName: '',
@@ -127,17 +140,35 @@ export default {
isShowReset: true,
isShowSubmit: true,
formControl: false,
formControlname: false,
assignForm: {
oneApprove: '',
twoApprove: ''
},
tableData: [],
applicationForm: {},
applicationForm: {
name:'',
send:''
},
q: {
pageSize: 10000,
pageNo: 1
},
PERMISSION,
processForm: {
prcName:''
},
processFormRule: {
prcName: [{
required: true,
message: '请输入流程名称',
trigger: 'change'
},{
max: 100,
message: '申请原因最多填写100字符',
trigger: 'change'
}]
},
applicationFormRule: {
name: [{
max: 1000, message: '申请原因最多填写1000字符'
@@ -169,6 +200,22 @@ export default {
if (this.$route.query.ids) {
this.reportList(this.$route.query.ids)
this.handleReset()
}
if(this.$route.query.taskDefinitionKey){
this.initShow = true
this.formControlname=true
this.getProcessDetail().then(res =>{
//指派信息
this.applicationForm.name = JSON.parse(this.processOld.dataJson).name
this.applicationForm.send = JSON.parse(this.processOld.dataJson).send
this.tableData = JSON.parse(this.processOld.dataJson).tableData
this.processForm.prcName = JSON.parse(this.processOld.dataJson).prcName
//基础信息
this.assignForm=JSON.parse(this.processOld.submitJson)
})
}
if(this.$route.query.yiban){
}
console.log(this.PERMISSION, 'ddd')
},
@@ -215,7 +262,10 @@ export default {
},
handleReset () {
this.applicationForm = {
name:'',
send:''
}
this.processForm.prcName=''
this.assignForm = {
oneApprove: '',
twoApprove: ''
@@ -223,25 +273,49 @@ export default {
this.$refs.applicationFormRef.clearValidate()
this.$refs.assignFormRef.clearValidate()
},
// 整理数据
organizeData() {
let userId = this.$store.getters.userInfo.USID
this.tableData=this.tableData.map(item=>{
item = {...item, ... this.applicationForm,userId:userId}
return item
})
},
// 提交
handleSubmit () {
this.$refs.assignFormRef.validate(v => {
this.$refs.applicationFormRef.validate(m => {
if (v && m) {
// 过了校验 需要把数据都整合 this.tableData this.applicationForm this.assignForm
// 表格数据没有不能提交 需要提示
if (this.tableData.length == 0) {
this.$message.warning('至少需要选择一条报告数据')
this.$refs.processFormRef.validate(z =>{
if (v && m && z) {
// 过了校验 需要把数据都整合 this.tableData this.applicationForm this.assignForm
// 表格数据没有不能提交 需要提示
if (this.tableData.length == 0) {
this.$message.warning('至少需要选择一条报告数据')
} else {
// 调用流程数据
console.log("发送数据")
// 处理表格数据
this.organizeData()
//如果不是第一次
if(this.initShow){
this.completeProcess()
}else{
this.startProcess()
this.completeProcess()
}
}
} else {
// 调用流程数据
console.log("发送数据")
this.$message.warning('请检查表单填写完整')
}
} else {
this.$message.warning('请检查表单填写完整')
}
})
})
})
}
},
startProcess() {
},
//获取流程详细信息
}
}
</script>
+10 -3
View File
@@ -8,9 +8,13 @@
<el-col :span="20">
<div class="search-box-left">
<label>流程编号</label>
<el-input v-model="form.prcNum" ></el-input>
<el-input v-model="form.prcNum" placeholder="请输入流程编号"></el-input>
<label>流程名称</label>
<el-input v-model="form.prcName"></el-input>
<el-select v-model="form.prcName" collapse-tags placeholder="请选择流程名称">
<template v-for="item in processTypeList">
<el-option :label="item.label" :value="item.value" :key="item.value"></el-option>
</template>
</el-select>
</div>
</el-col>
<el-col :span="4" align="right">
@@ -28,9 +32,11 @@
</template>
<script>
import ProcessMixin from "../../components/ProcessMixin";
import tabs from '../userCenter/processCenter/tabs.vue'
export default {
name:'processCenter',
mixins: [ProcessMixin],
components:{
tabs
},
@@ -54,6 +60,7 @@ import tabs from '../userCenter/processCenter/tabs.vue'
methods: {
//查询
search() {
console.log(this.form)
this.$bus.$emit('getSearchItem',this.form)
// this.$api.processCenter.search({})
},
@@ -63,7 +70,7 @@ import tabs from '../userCenter/processCenter/tabs.vue'
prcNum:'',
prcName:''
}
this.$bus.$emit('getSearchItem',this.form)
this.$bus.$emit('getSearchItem',this.form)
}
},
}
@@ -9,7 +9,11 @@
</vxe-column>
<vxe-column show-overflow show-header-overflow field="prcNum"
title="流程编号"></vxe-column>
<vxe-column show-overflow show-header-overflow field="prcName" title="流程名称"></vxe-column>
<vxe-column show-overflow show-header-overflow field="prcName" title="流程名称">
<template #default="{ row,index }">
<div>{{getPrcName(row.prcName)}}</div>
</template>
</vxe-column>
<vxe-column show-overflow show-header-overflow field="creatUser"
title="发起人"></vxe-column>
<vxe-column show-overflow show-header-overflow field="taskAssignee" title="当前处理人"></vxe-column>
@@ -50,19 +54,27 @@ export default {
}
},
props:{
secondData:{
type:Array,
default:[],
form:{
type:Object,
default:{},
}
},
watch:{
form:{
handler(){
console.log("我见他",this.form)
this.loadData()
},
deep:true
}
},
mounted () {
this.search()
this.loadData()
},
methods: {
loadData() {
let userId=this.$store.getters.userInfo.usid
this.$api.processCenter.finishProcessPage({...this.q,...this.searchForm,userId:userId}).then(res=>{
this.$api.processCenter.finishProcessPage({...this.q,...this.form,userId:userId}).then(res=>{
this.tableData = res.data.list
this.total = res.data.count
})
@@ -9,7 +9,11 @@
</vxe-column>
<vxe-column show-overflow show-header-overflow field="prcNum"
title="流程编号"></vxe-column>
<vxe-column show-overflow show-header-overflow field="prcName" title="流程名称"></vxe-column>
<vxe-column show-overflow show-header-overflow field="prcName" title="流程名称">
<template #default="{ row,index }">
<div>{{getPrcName(row.prcName)}}</div>
</template>
</vxe-column>
<vxe-column show-overflow show-header-overflow field="creatUserName"
title="发起人"></vxe-column>
<vxe-column show-overflow show-header-overflow field="creatTime" title="创建时间"></vxe-column>
@@ -44,22 +48,28 @@ export default {
};
},
props:{
firstData:{
type:Array,
default:[],
form:{
type:Object,
default:{},
}
},
watch: {
form:{
handler(){
console.log("我见他",this.form)
this.loadData()
},
deep:true
}
},
mounted () {
this.search()
this.loadData()
},
methods: {
loadData() {
let userId=this.$store.getters.userInfo.usid
this.$api.processCenter.gencyProcessPage({...this.q,...this.searchForm,userId:userId}).then(res=>{
this.$api.processCenter.gencyProcessPage({...this.q,...this.form,userId:userId}).then(res=>{
this.tableData = res.data.list
this.total = res.data.count
})
@@ -85,9 +95,6 @@ export default {
}
},
},
beforeDestroy(){
this.$bus.$off('getSearchItem')
}
};
</script>
@@ -9,7 +9,11 @@
</vxe-column>
<vxe-column show-overflow show-header-overflow field="prcNum"
title="流程编号"></vxe-column>
<vxe-column show-overflow show-header-overflow field="prcName" title="流程名称"></vxe-column>
<vxe-column show-overflow show-header-overflow field="prcName" title="流程名称">
<template #default="{ row,index }">
<div>{{getPrcName(row.prcName)}}</div>
</template>
</vxe-column>
<vxe-column show-overflow show-header-overflow field="labelOneName"
title="发起人"></vxe-column>
<vxe-column show-overflow show-header-overflow field="taskAssignee" title="当前处理人"></vxe-column>
@@ -50,13 +54,21 @@ export default {
}
},
props:{
fourthData:{
type:Array,
default:[],
form:{
type:Object,
default:{},
}
},
watch:{
form:{
handler(){
console.log("我见他",this.form)
this.loadData()
},
deep:true
}
},
mounted () {
this.search()
this.loadData()
},
methods: {
@@ -12,7 +12,7 @@
title="流程编号"></vxe-column>
<vxe-column show-overflow show-header-overflow field="prcName" title="流程名称">
<template #default="{ row,index }">
<div @click="viewDetails(row)">{{prcName}}</div>
<div @click="viewDetails(row)">{{getPrcName(row.prcName)}}</div>
</template>
</vxe-column>
<vxe-column show-overflow show-header-overflow field="creatUserName"
@@ -61,13 +61,21 @@ export default {
};
},
props: {
thirdData: {
type: Array,
default: [],
form:{
type:Object,
default:{},
}
},
watch:{
form:{
handler(){
console.log("我见他",this.form)
this.loadData()
},
deep:true
}
},
mounted () {
this.search()
this.loadData()
},
methods: {
@@ -119,7 +127,7 @@ export default {
},
loadData() {
let userId=this.$store.getters.userInfo.usid
this.$api.processCenter.sentProcessPage({...this.q,...this.searchForm,userId:userId}).then(res=>{
this.$api.processCenter.sentProcessPage({...this.q,...this.form,userId:userId}).then(res=>{
this.tableData = res.data.list.length>0 ?res.data.list:[{name:1}]
this.total = res.data.count
}).catch(err=>{
+13 -10
View File
@@ -2,16 +2,16 @@
<div>
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="待办流程" name="first">
<gencyProcess v-if="activeName=='first'"></gencyProcess>
<gencyProcess v-if="activeName == 'first'" :form="form"></gencyProcess>
</el-tab-pane>
<el-tab-pane label="已办流程" name="second">
<finishProcess v-if="activeName=='second'"></finishProcess>
<finishProcess v-if="activeName=='second'" :form="form"></finishProcess>
</el-tab-pane>
<el-tab-pane label="已发流程" name="third">
<sentProcess v-if="activeName=='third'"></sentProcess>
<sentProcess v-if="activeName=='third'" :form="form"></sentProcess>
</el-tab-pane>
<el-tab-pane label="监控流程" name="fourth">
<monitorProcesses v-if="activeName=='fourth'"></monitorProcesses>
<monitorProcesses v-if="activeName=='fourth'" :form="form"></monitorProcesses>
</el-tab-pane>
</el-tabs>
</div>
@@ -37,6 +37,7 @@ export default {
secondData:[],
thirdData:[],
fourthData:[],
form:[]
};
},
watch: {
@@ -45,19 +46,21 @@ export default {
created () {
},
mounted () {
this.$bus.$on('getSearchItem',(data)=>{
this.form = JSON.parse(JSON.stringify(data))
console.log(this.form,"hhh")
})
this.activeName=this.$store.getters.activeTab ?this.$store.getters.activeTab:'first'
},
methods: {
handleClick(tab, event) {
this.$router.push({
path: '/userCenter/processCenter',
query: {
id:'AEHJB8YNJ3'
}
})
this.$emit('clearForm')
this.$store.commit('setActiveTabIndex','')
}
},
beforeDestroy(){
console.log("我不监听了")
this.$bus.$off('getSearchItem')
}
}
</script>