fix : 修复审核意见位置

This commit is contained in:
2024-06-05 00:51:27 +08:00
parent df6f49caeb
commit a7d91a8f32
11 changed files with 252 additions and 69 deletions

View File

@@ -1,27 +1,37 @@
<template>
<div v-loading="loading">
<div v-loading="loading">
<fvForm :schema="schema" @getInstance="(e)=>form = e"></fvForm>
<el-form :model="formData" label-width="auto" >
<el-form :model="formData" label-width="auto">
<file-component :title="getTagName(type)+'附件'" :tag="getTagName(type)"
v-model:value="formData.fileList" :processViewer="processViewer"
:file-list-show="fileListShow"/>
</el-form>
<div v-if="data.taskId">
<baseTitle title="审核意见"></baseTitle>
<el-form-item prop="_value">
<el-input
v-model="_value"
:rows="3"
type="textarea"
placeholder="请输入审核意见"
/>
</el-form-item>
</div>
<div class="approval-record">
<baseTitle title="审批记录"></baseTitle>
<div class="process">
<operation-render v-if="processViewer" :operation-list="data.operationList"
:state="data.state"/>
<process-diagram-viewer v-if="processViewer" :id-name="type"/>
</div>
<baseTitle title="审批记录"></baseTitle>
<div class="process">
<operation-render v-if="processViewer" :operation-list="data.operationList"
:state="data.state"/>
<process-diagram-viewer v-if="processViewer" :id-name="type"/>
</div>
</div>
</div>
</template>
<script setup lang="jsx">
import { computed, markRaw, reactive, ref, watchEffect } from 'vue';
import OperationRender from '@/views/workflow/common/OperationRender.vue'
import ProcessDiagramViewer from '@/views/workflow/common/ProcessDiagramViewer.vue';
import { ElLoading } from 'element-plus';
import {ElLoading} from 'element-plus';
import {downloadFile} from "@/api/project-demand";
const props = defineProps({
@@ -53,12 +63,16 @@ const props = defineProps({
loading: {
type: Boolean,
default: false
},
value: {
type: String,
default: ''
}
})
const form = ref()
const schema = computed(()=>{
const schema = computed(() => {
let arr
if(props.type == 'approval') {
if (props.type == 'approval') {
arr = [
{
label: '前置流程',
@@ -73,24 +87,24 @@ const schema = computed(()=>{
colProps: {
span: 24
},
component: ()=>(
<div>
{
props.formData.singleFile?.originalFileName?
<span
style={{color: '#409EFF', cursor: 'pointer'}}
onClick={()=>handleDownload(props.formData.singleFile)}
>
component: () => (
<div>
{
props.formData.singleFile?.originalFileName ?
<span
style={{color: '#409EFF', cursor: 'pointer'}}
onClick={() => handleDownload(props.formData.singleFile)}
>
{props.formData.singleFile?.originalFileName}
</span> :
<span>{'--'}</span>
}
</div>
<span>{'--'}</span>
}
</div>
)
},
]
} else if(props.type == 'execute') {
} else if (props.type == 'execute') {
arr = [
{
label: '前置流程',
@@ -105,13 +119,13 @@ const schema = computed(()=>{
colProps: {
span: 24
},
component: ()=>(
component: () => (
<div>
{
props.formData.singleFile?.originalFileName?
props.formData.singleFile?.originalFileName ?
<span
style={{color: '#409EFF', cursor: 'pointer'}}
onClick={()=>handleDownload(props.formData.singleFile)}
onClick={() => handleDownload(props.formData.singleFile)}
>
{props.formData.singleFile?.originalFileName}
</span> :
@@ -122,7 +136,7 @@ const schema = computed(()=>{
)
},
]
} else if(props.type == 'archivist'){
} else if (props.type == 'archivist') {
arr = [
{
label: '项目归档附件',
@@ -130,13 +144,13 @@ const schema = computed(()=>{
colProps: {
span: 24
},
component: ()=>(
component: () => (
<div>
{
props.formData.singleFile?.originalFileName?
props.formData.singleFile?.originalFileName ?
<span
style={{color: '#409EFF', cursor: 'pointer'}}
onClick={()=>handleDownload(props.formData.singleFile)}
onClick={() => handleDownload(props.formData.singleFile)}
>
{props.formData.singleFile?.originalFileName}
</span> :
@@ -147,7 +161,7 @@ const schema = computed(()=>{
)
},
]
} else if(props.type == 'phase'){
} else if (props.type == 'phase') {
arr = [
{
label: '阶段变更附件',
@@ -155,13 +169,13 @@ const schema = computed(()=>{
colProps: {
span: 24
},
component: ()=>(
component: () => (
<div>
{
props.formData.singleFile?.originalFileName?
props.formData.singleFile?.originalFileName ?
<span
style={{color: '#409EFF', cursor: 'pointer'}}
onClick={()=>handleDownload(props.formData.singleFile)}
onClick={() => handleDownload(props.formData.singleFile)}
>
{props.formData.singleFile?.originalFileName}
</span> :
@@ -175,6 +189,17 @@ const schema = computed(()=>{
}
return arr
})
const emit = defineEmits(['update:value'])
const _value = computed({
get() {
return props.value;
},
set(val) {
emit("update:value", val);
}
})
const getTagName = (type) => {
switch (type) {
case 'approval':
@@ -198,7 +223,7 @@ const handleDownload = (row) => {
loading.close()
})
}
watchEffect(()=>{
watchEffect(() => {
Object.keys(props.formData).length && (form.value.setValues(props.formData))
})

View File

@@ -42,6 +42,19 @@
v-model:value="formData.fileList" :processViewer="processViewer"
:file-list-show="fileListShow"/>
</el-col>
<el-col :span="24">
<div v-if="data.taskId">
<baseTitle title="审核意见"></baseTitle>
<el-form-item prop="_value">
<el-input
v-model="_value"
:rows="3"
type="textarea"
placeholder="请输入审核意见"
/>
</el-form-item>
</div>
</el-col>
</el-row>
<div class="approval-record">
<baseTitle title="审批记录"></baseTitle>
@@ -60,6 +73,7 @@ import OperationRender from '@/views/workflow/common/OperationRender.vue'
import ProcessDiagramViewer from '@/views/workflow/common/ProcessDiagramViewer.vue'
import {downloadFile} from "@/api/project-demand";
const emit = defineEmits(['update:value'])
const props = defineProps({
formData: {
type: Array,
@@ -88,8 +102,23 @@ const props = defineProps({
type: {
type: String,
default: ''
},
value: {
type: String,
default: ''
}
})
const _value = computed({
get() {
return props.value;
},
set(val) {
emit("update:value", val);
}
})
const handleDownload = (row) => {
downloadFile(row.fileId).then(res => {
const blob = new Blob([res])

View File

@@ -1,6 +1,6 @@
<template>
<baseTitle title="审核意见"></baseTitle>
<fvForm :schema="schema" @getInstance="(e)=>form = e"></fvForm>
<!-- <baseTitle title="审核意见"></baseTitle>-->
<!-- <fvForm :schema="schema" @getInstance="(e)=>form = e"></fvForm>-->
<div class="oper-page-btn">
<el-button type="danger" @click="handleReject">驳回</el-button>
<el-button color="#DED0B2" @click="handleAgree">同意</el-button>
@@ -23,6 +23,10 @@ const props = defineProps({
formData: {
type: Object,
default: {}
},
value: {
type: String,
default: ''
}
})
@@ -44,6 +48,14 @@ const schema = computed(() => {
}
]
})
const _value = computed({
get() {
return props.value;
},
set(val) {
emit("update:value", val);
}
})
const back = () => {
switch (route.name) {
case 'Initiation/detail':
@@ -91,17 +103,25 @@ const back = () => {
}
break;
case 'Share/detail':
router.push({name: 'Expense/share'})
if (route.query.source === 'home') {
router.push('/home')
} else {
router.push({name: 'Expense/share'})
}
break;
case 'Phase/detail':
router.push({name: 'Implementation'})
if (route.query.source === 'home') {
router.push('/home')
} else {
router.push({name: 'Implementation'})
}
break;
}
}
// 驳回
const handleReject = async () => {
const values = form.value.getValues()
if (!values.auditOpinion) {
// const values = form.value.getValues()
if (!_value.value) {
ElNotification({
title: '提示',
message: '请填写审核意见',
@@ -111,8 +131,10 @@ const handleReject = async () => {
}
const params = {
taskId: props.taskId,
...values
// ...values
auditOpinion: _value.value
}
console.log('params', params)
const res = await rejectTask(params)
ElNotification({
title: '提示',
@@ -124,11 +146,11 @@ const handleReject = async () => {
}
const handleAgree = async () => {
const values = form.value.getValues()
// const values = form.value.getValues()
const params = {
taskId: props.taskId,
formData: props.formData,
...values
auditOpinion: _value.value
}
const res = await agreeTask(params)
ElNotification({

View File

@@ -136,6 +136,19 @@
v-model:value="localFormData.fileList" :processViewer="processViewer"
:file-list-show="fileListShow"/>
</el-col>
<el-col :span="24">
<div v-if="data.taskId">
<baseTitle title="审核意见"></baseTitle>
<el-form-item prop="_value">
<el-input
v-model="_value"
:rows="3"
type="textarea"
placeholder="请输入审核意见"
/>
</el-form-item>
</div>
</el-col>
</el-row>
<div class="approval-record">
<baseTitle title="审批记录"></baseTitle>
@@ -159,6 +172,7 @@ import {useCacheStore} from '@/stores/cache.js'
import {getSubCompOpt} from "@/api/user/user";
import FileComponent from "./FileComponent.vue";
const emit = defineEmits(['update:value'])
const tagsViewStore = useTagsView()
const cacheStore = useCacheStore()
const props = defineProps({
@@ -181,6 +195,10 @@ const props = defineProps({
loading: {
type: Boolean,
default: false
},
value: {
type: String,
default: ''
}
})
const localFormData = ref({})
@@ -191,6 +209,14 @@ const dictName = ref({})
const rules = reactive({
auditOpinion: [{required: true, message: '请输入审核意见', trigger: 'blur'}],
})
const _value = computed({
get() {
return props.value;
},
set(val) {
emit("update:value", val);
}
})
const filterDict = (data, value) => {
if (data === undefined || value === undefined) return;
let label = ''