230 lines
6.0 KiB
Vue
230 lines
6.0 KiB
Vue
<template>
|
|
<!-- <baseTitle title="审核意见"></baseTitle>-->
|
|
<!-- <fvForm :schema="schema" @getInstance="(e)=>form = e"></fvForm>-->
|
|
<div class="oper-page-btn" style="display: flex">
|
|
<el-select v-if="taskUserOptionList?.length>0" v-model="backNode" placeholder="请选择退回节点" clearable style="width: 150px;margin-right: 10px">
|
|
<el-option
|
|
v-for="item in taskUserOptionList"
|
|
:key="item.nodeId"
|
|
:label="item.nodeName + (item.userInfo ? ':' + item.userInfo.name : '')"
|
|
:value="item.nodeId">
|
|
</el-option>
|
|
</el-select>
|
|
<el-button type="danger" @click="rollbackHandler">驳回</el-button>
|
|
<el-button color="#DED0B2" @click="handleAgree">同意</el-button>
|
|
</div>
|
|
<!-- <el-dialog v-model="showBackNode" title="选择退回节点" width="400">-->
|
|
<!-- <el-select v-model="backNode" placeholder="请选择退回节点" clearable filterable>-->
|
|
<!-- <el-option-->
|
|
<!-- v-for="item in taskUserOptionList"-->
|
|
<!-- :key="item.nodeId"-->
|
|
<!-- :label="item.nodeName + ':' + item.userInfo.name"-->
|
|
<!-- :value="item.nodeId">-->
|
|
<!--<!– {{item.nodeName }} : {{item.userInfo.name}}–>-->
|
|
<!-- </el-option>-->
|
|
<!-- </el-select>-->
|
|
<!-- <el-button type="danger" @click="rollbackHandler">确认</el-button>-->
|
|
<!-- </el-dialog>-->
|
|
</template>
|
|
|
|
<script setup lang="jsx">
|
|
import {ElNotification} from 'element-plus';
|
|
import {agreeTask, rejectTask} from "@/api/project-demand/index.js";
|
|
import {useTagsView} from '@/stores/tagsview.js'
|
|
|
|
const tagsViewStore = useTagsView()
|
|
const route = useRoute()
|
|
const router = useRouter()
|
|
const props = defineProps({
|
|
taskId: {
|
|
type: String,
|
|
default: ''
|
|
},
|
|
formData: {
|
|
type: Object,
|
|
default: {}
|
|
},
|
|
value: {
|
|
type: String,
|
|
default: ''
|
|
},
|
|
//退回节点选择框数据
|
|
taskUserOptionList: {
|
|
type: Array,
|
|
default: []
|
|
}
|
|
})
|
|
|
|
const form = ref()
|
|
const backNode = ref('')
|
|
const showBackNode = ref(false)
|
|
const schema = computed(() => {
|
|
return [
|
|
{
|
|
label: '',
|
|
prop: 'auditOpinion',
|
|
component: 'el-input',
|
|
colProps: {
|
|
span: 24
|
|
},
|
|
props: {
|
|
placeholder: '请输入审核意见',
|
|
type: 'textarea',
|
|
rows: 3
|
|
}
|
|
}
|
|
]
|
|
})
|
|
const _value = computed({
|
|
get() {
|
|
return props.value;
|
|
},
|
|
set(val) {
|
|
emit("update:value", val);
|
|
}
|
|
})
|
|
const back = () => {
|
|
switch (route.name) {
|
|
case 'Initiation/detail':
|
|
router.push({name: 'Initiation'})
|
|
break;
|
|
case 'Filing/detail':
|
|
router.push({name: 'Filing'})
|
|
break;
|
|
case 'Implementation/detail':
|
|
if (route.query.source === 'home') {
|
|
router.push('/home')
|
|
} else {
|
|
if (route.query.step === '10') {
|
|
router.push({name: 'Summary'})
|
|
} else if (route.query.step === '20') {
|
|
router.push({name: 'Initiation'})
|
|
} else if (route.query.step === '40') {
|
|
router.push({name: 'Implementation'})
|
|
} else if (route.query.step === '50') {
|
|
router.push({name: 'Filing'})
|
|
} else if (route.query.step === '00') {
|
|
router.push({name: 'Requirement'})
|
|
}
|
|
}
|
|
break;
|
|
case 'Summary/detail':
|
|
if (route.query.source === 'home') {
|
|
router.push('/home')
|
|
} else {
|
|
router.push({name: 'Summary'})
|
|
}
|
|
break;
|
|
case 'Requirement/detail':
|
|
if (route.query.source === 'home') {
|
|
router.push('/home')
|
|
} else {
|
|
router.push({name: 'Requirement'})
|
|
}
|
|
break;
|
|
case 'Fund/detail':
|
|
if (route.query.source === 'home') {
|
|
router.push('/home')
|
|
} else {
|
|
router.push({name: 'Fund'})
|
|
}
|
|
break;
|
|
case 'Share/detail':
|
|
if (route.query.source === 'home') {
|
|
router.push('/home')
|
|
} else {
|
|
router.push({name: 'Expense/share'})
|
|
}
|
|
break;
|
|
case 'Phase/detail':
|
|
if (route.query.source === 'home') {
|
|
router.push('/home')
|
|
} else {
|
|
router.push({name: 'Implementation'})
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
// 驳回
|
|
const handleReject = async () => {
|
|
// const values = form.value.getValues()
|
|
showBackNode.value = true
|
|
// if (!_value.value) {
|
|
// ElNotification({
|
|
// title: '提示',
|
|
// message: '请填写审核意见',
|
|
// type: 'warning'
|
|
// })
|
|
// return
|
|
// }
|
|
// const params = {
|
|
// taskId: props.taskId,
|
|
// // ...values
|
|
// auditOpinion: _value.value
|
|
// }
|
|
// // console.log('params', params)
|
|
// const res = await rejectTask(params)
|
|
// ElNotification({
|
|
// title: '提示',
|
|
// message: res.msg,
|
|
// type: res.code === 1000 ? 'success' : 'error'
|
|
// })
|
|
// if (res.code === 1000){
|
|
// tagsViewStore.delVisitedViews(router.currentRoute.value.path)
|
|
// back()
|
|
// }
|
|
}
|
|
//回退节点
|
|
const rollbackHandler = async () => {
|
|
// const values = form.value.getValues()
|
|
if (!_value.value) {
|
|
ElNotification({
|
|
title: '提示',
|
|
message: '请填写审核意见',
|
|
type: 'warning'
|
|
})
|
|
return
|
|
}
|
|
const params = {
|
|
taskId: props.taskId,
|
|
// ...values
|
|
auditOpinion: _value.value,
|
|
rollBackId: backNode.value
|
|
}
|
|
// console.log('params', params)
|
|
const res = await rejectTask(params)
|
|
ElNotification({
|
|
title: '提示',
|
|
message: res.msg,
|
|
type: res.code === 1000 ? 'success' : 'error'
|
|
})
|
|
if (res.code === 1000) {
|
|
tagsViewStore.delVisitedViews(router.currentRoute.value.path)
|
|
back()
|
|
}
|
|
}
|
|
|
|
const handleAgree = async () => {
|
|
// const values = form.value.getValues()
|
|
const params = {
|
|
taskId: props.taskId,
|
|
formData: props.formData,
|
|
auditOpinion: _value.value
|
|
}
|
|
const res = await agreeTask(params)
|
|
ElNotification({
|
|
title: '提示',
|
|
message: res.msg,
|
|
type: res.code === 1000 ? 'success' : 'error'
|
|
})
|
|
if (res.code === 1000) {
|
|
tagsViewStore.delVisitedViews(router.currentRoute.value.path)
|
|
back()
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
</style>
|