diff --git a/src/api/formalities/formalitiesAreConsolidated/index.ts b/src/api/formalities/formalitiesAreConsolidated/index.ts index 218187c..f6db0c1 100644 --- a/src/api/formalities/formalitiesAreConsolidated/index.ts +++ b/src/api/formalities/formalitiesAreConsolidated/index.ts @@ -5,6 +5,7 @@ import { FormalitiesAreConsolidatedForm, FormalitiesAreConsolidatedQuery } from '@/api/formalities/formalitiesAreConsolidated/types'; +import { ListOfFormalitiesQuery, ListOfFormalitiesVO } from '../listOfFormalities/types'; /** * 查询合规性手续合账列表 @@ -101,3 +102,17 @@ export const delFormalitiesAnnex = (id: string | number | Array method: 'delete' }); }; + +/** + * 查询手续办理清单模板属性列表 + * @param query + * @returns {*} + */ + +export const getTemplateTreeList = (query?: any): AxiosPromise => { + return request({ + url: '/formalities/formalitiesAreConsolidated/getTree', + method: 'get', + params: query + }); +}; diff --git a/src/api/progress/progressCategoryTemplate/index.ts b/src/api/progress/progressCategoryTemplate/index.ts index 3e80694..5743b83 100644 --- a/src/api/progress/progressCategoryTemplate/index.ts +++ b/src/api/progress/progressCategoryTemplate/index.ts @@ -1,6 +1,10 @@ import request from '@/utils/request'; import { AxiosPromise } from 'axios'; -import { ProgressCategoryTemplateVO, ProgressCategoryTemplateForm, ProgressCategoryTemplateQuery } from '@/api/progress/progressCategoryTemplate/types'; +import { + ProgressCategoryTemplateVO, + ProgressCategoryTemplateForm, + ProgressCategoryTemplateQuery +} from '@/api/progress/progressCategoryTemplate/types'; /** * 查询进度类别模版列表 @@ -61,3 +65,10 @@ export const delProgressCategoryTemplate = (id: string | number | Array { + return request({ + url: '/progress/progressCategoryTemplate/listSystemTop', + method: 'get' + }); +}; diff --git a/src/components/FileUpload/index.vue b/src/components/FileUpload/index.vue index 5011b9d..b2580ea 100644 --- a/src/components/FileUpload/index.vue +++ b/src/components/FileUpload/index.vue @@ -48,7 +48,13 @@ tag="ul" @click.stop > -
  • +
  • {{ getFileName(file.name) }} @@ -213,31 +219,27 @@ watch( ); // 上传前校检格式和大小 const handleBeforeUpload = (file: any) => { - // 校检文件类型 - if (props.fileType.length) { - const fileName = file.name.split('.'); - const fileExt = fileName[fileName.length - 1]; - const isTypeOk = props.fileType.indexOf(fileExt) >= 0; - if (!isTypeOk) { - proxy?.$modal.msgError(`文件格式不正确, 请上传${props.fileType.join('/')}格式文件!`); - return false; - } + if (!validateFile(file)) return false; + proxy?.$modal.loading('正在上传文件,请稍候...'); + number.value++; + return true; +}; + +//校检格式和大小 +const validateFile = (file: File) => { + const ext = file.name.split('.').pop()?.toLowerCase(); + if (props.fileType.length && !props.fileType.includes(ext!)) { + proxy?.$modal.msgError(`文件格式不正确,请上传 ${props.fileType.join('/')} 格式文件!`); + return false; } - // 校检文件名是否包含特殊字符 if (file.name.includes(',')) { proxy?.$modal.msgError('文件名不正确,不能包含英文逗号!'); return false; } - // 校检文件大小 - if (props.fileSize) { - const isLt = file.size / 1024 / 1024 < props.fileSize; - if (!isLt) { - proxy?.$modal.msgError(`上传文件大小不能超过 ${props.fileSize} MB!`); - return false; - } + if (props.fileSize && file.size / 1024 / 1024 > props.fileSize) { + proxy?.$modal.msgError(`上传文件大小不能超过 ${props.fileSize} MB!`); + return false; } - proxy?.$modal.loading('正在上传文件,请稍候...'); - number.value++; return true; }; @@ -278,13 +280,25 @@ const handleUploadSuccess = (res: any, file: UploadFileWithOssId) => { uploadedSuccessfully(res); }; -const handleChange = (file: any, fileList: any) => { +const handleChange = (file: any, filelist: any) => { + if (!props.autoUpload) { + // 手动上传模式:在选中文件时拦截非法文件 + const isValid = validateFile(file.raw || file); + if (!isValid) { + fileUploadRef.value?.handleRemove(file); // 直接移除非法文件 + console.log(file, filelist, fileList.value); + fileList.value = [...fileList.value]; // 触发列表更新 + return; + } + } // 记录 status = 'ready' 的文件 if (file.status === 'ready') { pendingFiles.value.push(file); + fileList.value = pendingFiles.value; } + console.log(fileList.value); - emit('handleChange', file, fileList); + emit('handleChange', file, filelist); }; // 删除文件 @@ -332,11 +346,6 @@ const uploadedSuccessfully = (res: any) => { emit('update:modelValue', listToString(fileList.value)); proxy?.$modal.closeLoading(); } - // if (props.autoUpload && props.limit === fileList.value.length) { - // fileUploadRef.value?.clearFiles(); - // fileList.value = []; - // emit('update:modelValue', ''); // 同步到外部 v-model - // } props.onUploadSuccess?.(fileList.value, res); }; @@ -400,6 +409,11 @@ const submitUpload = async () => { if (!pendingFiles.value.length) { return 'noFile'; } + const validFiles = pendingFiles.value.filter((f: any) => validateFile(f.raw || f)); + if (!validFiles.length) { + proxy?.$modal.msgError('没有符合条件的文件可上传'); + return; + } try { proxy?.$modal.loading('正在上传文件,请稍候...'); const formData = new FormData(); diff --git a/src/views/design/Professional/index.vue b/src/views/design/Professional/index.vue index bb795fe..6726936 100644 --- a/src/views/design/Professional/index.vue +++ b/src/views/design/Professional/index.vue @@ -187,7 +187,7 @@ const handleDownload = (row) => { { id: row.id }, - `互提资料.zip` + `互提资料.docx` ); }; const handleViewFile = (row) => { diff --git a/src/views/design/received/index.vue b/src/views/design/received/index.vue index 88cca58..e6fa601 100644 --- a/src/views/design/received/index.vue +++ b/src/views/design/received/index.vue @@ -176,7 +176,7 @@