|
|
@@ -1,8 +1,18 @@ |
|
|
|
<script name="approvalDialog" setup> |
|
|
|
import { ref, getCurrentInstance, watch } from 'vue' |
|
|
|
import { fileFormatVerification, handleFileSuccess, handleFilePreview, handleFileError, fileTypes, fileDesc } from '@/utils/uploadAction.js' |
|
|
|
import { ref, getCurrentInstance, watch, nextTick } from 'vue' |
|
|
|
import { |
|
|
|
fileFormatVerification, |
|
|
|
handleFileSuccess, |
|
|
|
handleFilePreview, |
|
|
|
handleFileError, |
|
|
|
fileTypes, |
|
|
|
fileDesc, |
|
|
|
reviewFileParam |
|
|
|
} from '@/utils/uploadAction.js' |
|
|
|
import store from '@/store' |
|
|
|
import { projectApprove } from '@/http/apis/projectStoreManage/annualPlanStore' |
|
|
|
import { getProjectDetail } from '@/http/apis/declareMange' |
|
|
|
|
|
|
|
const { proxy } = getCurrentInstance(), |
|
|
|
uploadUrl = store.dictStore.uploadUrl, |
|
|
|
props = defineProps({ |
|
|
@@ -19,7 +29,9 @@ const { proxy } = getCurrentInstance(), |
|
|
|
}), |
|
|
|
emits = defineEmits(['close']), |
|
|
|
formRef = ref(), |
|
|
|
form = ref({}), |
|
|
|
form = ref({ |
|
|
|
buildPlanFileId: [] |
|
|
|
}), |
|
|
|
rules = { |
|
|
|
approvedAmount: [{ required: true, message: '请输入批复金额', trigger: 'blur' }], |
|
|
|
approvedDate: [{ required: true, message: '请输入批复时间' }], |
|
|
@@ -52,11 +64,38 @@ watch( |
|
|
|
async val => { |
|
|
|
if (val) { |
|
|
|
console.log('props.data', props.data) |
|
|
|
getDetail() |
|
|
|
} else { |
|
|
|
formRef.value.resetFields() |
|
|
|
detailData.value = {} |
|
|
|
} |
|
|
|
} |
|
|
|
) |
|
|
|
|
|
|
|
const detailData = ref({}) |
|
|
|
|
|
|
|
async function getDetail () { |
|
|
|
const detailRes = await getProjectDetail({ id: props.data.projectId }) |
|
|
|
detailData.value = detailRes.data |
|
|
|
|
|
|
|
form.value.buildPlanFileId = reviewFileParam(JSON.parse(detailData.value.constructionPlanFile)) |
|
|
|
} |
|
|
|
|
|
|
|
const upload = ref() |
|
|
|
import { genFileId } from 'element-plus' |
|
|
|
|
|
|
|
function handleExceed (files) { |
|
|
|
form.value.buildPlanFileId = [] |
|
|
|
upload.value.clearFiles() |
|
|
|
const file = files[0] |
|
|
|
file.uid = genFileId() |
|
|
|
|
|
|
|
nextTick(() => { |
|
|
|
upload.value.handleStart(file) |
|
|
|
upload.value.submit() // 手动上传 |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
</script> |
|
|
|
|
|
|
|
<template> |
|
|
@@ -159,6 +198,7 @@ watch( |
|
|
|
prop="buildPlanFileId" |
|
|
|
> |
|
|
|
<el-upload |
|
|
|
ref="upload" |
|
|
|
v-model:file-list="form.buildPlanFileId" |
|
|
|
class="w-full" |
|
|
|
:action="uploadUrl" |
|
|
@@ -167,10 +207,12 @@ watch( |
|
|
|
:before-upload="file=>fileFormatVerification(file, {types: fileTypes})" |
|
|
|
:accept="fileTypes.map(i=>`.${i}`).join(',')" |
|
|
|
multiple |
|
|
|
:auto-upload="true" |
|
|
|
:on-exceed="handleExceed" |
|
|
|
:limit="1" |
|
|
|
:on-preview="handleFilePreview" |
|
|
|
> |
|
|
|
<el-button type="primary">上传附件</el-button> |
|
|
|
<el-button type="primary">更新</el-button> |
|
|
|
<template #tip> |
|
|
|
<div class="el-upload__tip">支持{{ fileDesc }}文件</div> |
|
|
|
</template> |
|
|
|