This commit is contained in:
Teo
2025-08-15 16:53:31 +08:00
parent ff2f36e88c
commit 1e87b87bb9
8 changed files with 292 additions and 126 deletions

View File

@ -79,24 +79,34 @@
<el-table-column label="办理状态" align="center" prop="processingStatus" />
<el-table-column label="手续材料" align="center" prop="formalitiesUrl" width="180">
<template #default="scope">
<el-link type="primary" :underline="false" :href="scope.row.formalitiesUrl" target="_blank" v-if="scope.row.formalitiesUrl">查看</el-link>
<el-link type="primary" :underline="false" @click="handlePreview(scope.row)" target="_blank">查看</el-link>
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template #default="scope">
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['formalities:formalitiesAreConsolidated:edit']"
>修改</el-button
>
<el-button
link
type="primary"
icon="EditPen"
@click="handleUpdateStatus(scope.row)"
v-hasPermi="['formalities:formalitiesAreConsolidated:edit']"
>修改状态</el-button
>
<div v-if="scope.row.status != 1">
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['formalities:formalitiesAreConsolidated:edit']"
>修改</el-button
>
<el-button
link
type="primary"
icon="Upload"
@click="handleUpload(scope.row)"
v-hasPermi="['formalities:formalitiesAreConsolidated:edit']"
>上传</el-button
>
<el-button
link
type="primary"
icon="EditPen"
@click="handleUpdateStatus(scope.row)"
v-hasPermi="['formalities:formalitiesAreConsolidated:edit']"
>修改状态</el-button
>
</div>
</template>
</el-table-column>
</el-table>
@ -116,18 +126,6 @@
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
<el-form-item label="上传文件" prop="processingStatus">
<file-upload
v-model="file"
ref="uploadRef"
uploadUrl="/formalities/formalitiesAreConsolidated/edit"
:data="{ ...form }"
:auto-upload="false"
showFileList
method="put"
:onUploadSuccess="handleUploadSuccess"
/>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
@ -136,6 +134,55 @@
</div>
</template>
</el-dialog>
<el-dialog draggable title="文件列表" v-model="viewVisible" width="45%">
<el-table :data="fileList" style="width: 100%" border v-loading="fileLoading">
<el-table-column prop="fileName" label="文件" align="center">
<template #default="scope">
<el-link :key="scope.row.annexUrl" :href="scope.row.annexUrl" target="_blank" type="primary" :underline="false">
{{ scope.row.fileName || '查看文件' }}
</el-link>
</template>
</el-table-column>
<el-table-column label="操作" width="90" align="center" v-if="fileStatus != 1">
<template #default="scope">
<el-button type="danger" link icon="Delete" @click="handleDeleteFile(scope.row)"> 删除 </el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="fileTotal > 0"
:total="fileTotal"
v-model:page="fileParams.pageNum"
v-model:limit="fileParams.pageSize"
@pagination="getFileList"
/>
<template #footer>
<span>
<el-button type="primary" @click="viewVisible = false">关闭</el-button>
</span>
</template>
</el-dialog>
<!-- 上传文件对话框 -->
<el-dialog draggable title="上传文件" v-model="fileVisible" width="45%">
<el-form-item label="上传文件" prop="processingStatus">
<file-upload
v-model="file"
ref="uploadRef"
uploadUrl="/formalities/formalitiesAnnex"
:data="{ formalitiesId: form.id }"
:auto-upload="false"
showFileList
method="put"
:onUploadSuccess="handleUploadSuccess"
/>
</el-form-item>
<template #footer>
<span>
<el-button :loading="buttonLoading" type="primary" @click="submitFileForm"> </el-button>
<el-button @click="fileVisible = false"> </el-button>
</span>
</template>
</el-dialog>
</div>
</template>
@ -146,6 +193,8 @@ import {
delFormalitiesAreConsolidated,
addFormalitiesAreConsolidated,
updateFormalitiesAreConsolidated,
listFormalitiesAnnex,
delFormalitiesAnnex,
editStatus
} from '@/api/formalities/formalitiesAreConsolidated';
import {
@ -154,8 +203,7 @@ import {
FormalitiesAreConsolidatedForm
} from '@/api/formalities/formalitiesAreConsolidated/types';
import { useUserStoreHook } from '@/store/modules/user';
import { json } from 'stream/consumers';
const fileVisible = ref(false);
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
// 获取用户 store
const userStore = useUserStoreHook();
@ -164,6 +212,8 @@ const currentProject = computed(() => userStore.selectedProject);
const formalitiesAreConsolidatedList = ref<FormalitiesAreConsolidatedVO[]>([]);
const buttonLoading = ref(false);
const loading = ref(true);
const fileLoading = ref(false);
const showSearch = ref(true);
const ids = ref<Array<string | number>>([]);
const single = ref(true);
@ -172,12 +222,20 @@ const total = ref(0);
const uploadRef = ref();
const queryFormRef = ref<ElFormInstance>();
const formalitiesAreConsolidatedFormRef = ref<ElFormInstance>();
const fileList = ref([]);
const fileTotal = ref(0);
const viewVisible = ref(false);
const fileStatus = ref(0);
const dialog = reactive<DialogOption>({
visible: false,
title: ''
});
const file = ref(null);
const fileParams = reactive({
pageNum: 1,
pageSize: 10,
formalitiesId: undefined
});
const initFormData: FormalitiesAreConsolidatedForm = {
id: undefined,
projectId: currentProject.value?.id,
@ -246,11 +304,14 @@ const handleSelectionChange = (selection: FormalitiesAreConsolidatedVO[]) => {
multiple.value = !selection.length;
};
/** 新增按钮操作 */
const handleAdd = () => {
reset();
dialog.visible = true;
dialog.title = '添加合规性手续合账';
/** 删除文件按钮操作 */
const handleDeleteFile = async (row) => {
await proxy?.$modal.confirm('是否确认删除文件编号为"' + row.id + '"的数据项?').finally(() => (fileLoading.value = false));
fileLoading.value = true;
await delFormalitiesAnnex(row.id);
proxy?.$modal.msgSuccess('删除成功');
await getFileList();
};
/** 修改按钮操作 */
@ -263,6 +324,15 @@ const handleUpdate = async (row?: FormalitiesAreConsolidatedVO) => {
dialog.title = '修改合规性手续合账';
};
/** 上传按钮操作 */
const handleUpload = (row) => {
form.value.id = row.id;
fileList.value = [];
file.value = null;
fileVisible.value = true;
};
const handleUpdateStatus = async (row?: FormalitiesAreConsolidatedVO) => {
await proxy?.$modal.confirm('是否确认修改状态?').finally(() => (loading.value = false));
@ -276,30 +346,43 @@ const handleUpdateStatus = async (row?: FormalitiesAreConsolidatedVO) => {
const submitForm = () => {
formalitiesAreConsolidatedFormRef.value?.validate(async (valid: boolean) => {
if (valid) {
for (const key in form.value) {
if (form.value[key] === null) {
delete form.value[key];
}
}
const res = uploadRef.value.submitUpload();
console.log(res);
updateFormalitiesAreConsolidated(form.value).then(() => {
proxy?.$modal.msgSuccess('修改成功');
dialog.visible = false;
getList();
});
}
});
};
const submitFileForm = () => {
uploadRef.value.submitUpload().then((res) => {
if (res === 'noFile') {
proxy?.$modal.msgWarning('请先选择文件');
}
});
};
const handleUploadSuccess = async () => {
proxy?.$modal.msgSuccess('上传成功');
dialog.visible = false;
fileVisible.value = false;
await getList();
};
/** 删除按钮操作 */
const handleDelete = async (row?: FormalitiesAreConsolidatedVO) => {
const _ids = row?.id || ids.value;
await proxy?.$modal.confirm('是否确认删除合规性手续合账编号为"' + _ids + '"的数据项?').finally(() => (loading.value = false));
await delFormalitiesAreConsolidated(_ids);
proxy?.$modal.msgSuccess('删除成功');
await getList();
const handlePreview = async (row?: FormalitiesAreConsolidatedVO) => {
viewVisible.value = true;
fileLoading.value = true;
fileParams.formalitiesId = row.id;
fileStatus.value = row.status;
getFileList();
};
const getFileList = async () => {
const res = await listFormalitiesAnnex(fileParams);
fileList.value = res.rows;
fileTotal.value = res.total;
fileLoading.value = false;
};
/** 导出按钮操作 */
@ -316,12 +399,6 @@ const handleExport = () => {
onMounted(() => {
getList();
});
const formData = new FormData();
let arr = [];
formData.append('file', JSON.stringify(arr));
formData.append('bo', JSON.stringify({}));
//监听项目id刷新数据
const listeningProject = watch(
() => currentProject.value?.id,