| | |
| | | destroy-on-close |
| | | :close-on-click-modal="false" |
| | | > |
| | | <div class="detail-container" v-if="dialogReadonly"> |
| | | <div class="detail-container detail-container1" v-if="dialogReadonly"> |
| | | <el-row class="detail-row-view"> |
| | | <el-col :span="12"> |
| | | <div class="label">标题</div> |
| | |
| | | > |
| | | 保存 |
| | | </el-button> |
| | | <el-button class="save-btn" color="#4C34FF" :loading="submitting" :disabled="submitting" @click="handleApply">申请</el-button> |
| | | <el-button class="" color="#4C34FF" :loading="submitting" :disabled="submitting" @click="handleApply">申请</el-button> |
| | | </template> |
| | | <template v-if="dialogReadonly && detailObjectionStatus === '1'"> |
| | | <el-button color="#F2F3F5" :loading="submitting" :disabled="submitting" @click="visible = false">取消</el-button> |
| | | |
| | | <el-button |
| | | class="save-btn" |
| | | class="" |
| | | color="#4C34FF" |
| | | |
| | | :loading="submitting" |
| | |
| | | 反馈 |
| | | </el-button> |
| | | <el-button |
| | | class="save-btn" |
| | | class="" |
| | | color="#4C34FF" |
| | | |
| | | :loading="submitting" |
| | |
| | | |
| | | // 文件移除 |
| | | const handleFileRemove = (file, fileListVal) => { |
| | | if (file.response && file.response.attachId) { |
| | | uploadedFiles.value = uploadedFiles.value.filter(item => item.attachId !== file.response.attachId) |
| | | } |
| | | uploadedFiles.value = fileListVal |
| | | } |
| | | |
| | | // 上传前验证 |
| | |
| | | async function submitForm(objectionStatus) { |
| | | const isValid = await formRef.value?.validate().catch(() => false) |
| | | if (!isValid) return |
| | | if (uploadedFiles.value.length === 0) { |
| | | return ElMessage.warning('请上传附件') |
| | | } |
| | | submitting.value = true |
| | | |
| | | try { |
| | | // 构建符合接口要求的提交数据 |
| | | const submitData = { |
| | |
| | | ElMessage.warning('没有可下载的附件') |
| | | return |
| | | } |
| | | |
| | | |
| | | // 遍历所有附件并下载 |
| | | attachmentDetailsList.value.forEach(attach => { |
| | | if (attach.link) { |
| | |
| | | </script> |
| | | |
| | | <style scoped lang="scss"> |
| | | .detail-container { |
| | | padding: 20px; |
| | | .detail-container1 { |
| | | display: flex; |
| | | flex-direction: column; |
| | | } |
| | | .upload-container { |
| | | width: 100%; |