1.1.53 合同激活终版合同附件改为可以上传多个附件

dev
yinq 3 weeks ago
parent 76eaacef35
commit 93c4adf174

@ -117,7 +117,7 @@ export interface ContractChangeInfoVO {
/**
*
*/
signatureAppendix: number;
signatureAppendix: string;
/**
* ()
@ -315,7 +315,7 @@ export interface ContractChangeInfoForm extends BaseEntity {
/**
*
*/
signatureAppendix?: number;
signatureAppendix?: string;
/**
* ()
@ -509,7 +509,7 @@ export interface ContractChangeInfoQuery extends PageQuery {
/**
*
*/
signatureAppendix?: number;
signatureAppendix?: string;
/**
* ()

@ -180,9 +180,9 @@ export interface ContractInfoVO {
paymentMethod: string;
/**
*
* OSS ID
*/
signatureAppendix: number;
signatureAppendix: string;
/**
* SAP erp_contract_info.internal_contract_code
@ -458,9 +458,9 @@ export interface ContractInfoForm extends BaseEntity {
paymentMethod?: string;
/**
*
* OSS ID
*/
signatureAppendix?: number;
signatureAppendix?: string;
/**
*
@ -734,9 +734,9 @@ export interface ContractInfoQuery extends PageQuery {
paymentMethod?: string;
/**
*
* OSS ID
*/
signatureAppendix?: number;
signatureAppendix?: string;
/**
*

@ -157,7 +157,7 @@
<el-table-column label="付款方式" align="center" prop="paymentMethod" v-if="columns[21].visible" />
<el-table-column label="签字合同附件" align="center" prop="signatureAppendix" v-if="columns[22].visible" />
<el-table-column label="合同税率(预留)" align="center" prop="taxRate" v-if="columns[23].visible" />
<el-table-column label="终版合同" align="center" width="100" v-if="columns[32].visible">
<el-table-column label="终版合同" align="center" width="120" v-if="columns[32].visible">
<template #default="scope">
<el-button
v-if="scope.row.signatureAppendix"
@ -165,7 +165,8 @@
type="primary"
icon="Download"
@click="downloadFinalContract(scope.row.signatureAppendix)"
>下载
>
下载{{ getFinalContractFileCount(scope.row.signatureAppendix) > 1 ? `(${getFinalContractFileCount(scope.row.signatureAppendix)})` : '' }}
</el-button>
<span v-else style="color: #999">未上传</span>
</template>
@ -282,7 +283,7 @@
</el-select>
</el-form-item> -->
<el-form-item label="签字合同附件" prop="oss" required>
<fileUpload v-model="uploadDialog.form.oss" :limit="1" />
<fileUpload v-model="uploadDialog.form.oss" :limit="10" />
</el-form-item>
</el-form>
@ -814,14 +815,14 @@ const confirmUploadFinal = async () => {
}
const { contractId, contractDeptId, oss, contractStatus } = uploadDialog.form;
const ossStr = oss as unknown as string | string[];
const finalOss = Array.isArray(ossStr) ? (ossStr[0] ?? '') : (ossStr ?? '');
const finalOss = Array.isArray(ossStr) ? ossStr.filter(Boolean).join(',') : String(ossStr ?? '').trim();
uploadDialog.loading = true;
try {
await updateContractInfo({
contractId,
contractDeptId,
contractStatus,
signatureAppendix: finalOss
signatureAppendix: finalOss || undefined
} as any);
proxy?.$modal.msgSuccess('合同已激活!');
uploadDialog.visible = false;
@ -831,9 +832,25 @@ const confirmUploadFinal = async () => {
}
};
//
const downloadFinalContract = (ossId: string | number) => {
download.oss(ossId);
/** 解析终版合同附件 OSS ID 列表 */
const parseFinalContractOssIds = (ossIds: string | number | undefined): string[] => {
if (ossIds === undefined || ossIds === null || ossIds === '') return [];
return String(ossIds)
.split(',')
.map((id) => id.trim())
.filter(Boolean);
};
const getFinalContractFileCount = (ossIds: string | number | undefined) => parseFinalContractOssIds(ossIds).length;
//
const downloadFinalContract = (ossIds: string | number) => {
const ids = parseFinalContractOssIds(ossIds);
if (ids.length === 0) {
proxy?.$modal.msgWarning('该合同暂无终版合同附件');
return;
}
ids.forEach((id) => download.oss(id));
};
//

@ -221,7 +221,7 @@
<el-form-item label="终版合同上传" prop="ossId">
<FileUpload
v-model="ossIdString"
:limit="1"
:limit="10"
:fileSize="20"
:fileType="['doc', 'docx', 'pdf', 'xls', 'xlsx']"
:disabled="routeParams.type === 'view' || routeParams.type === 'approval'"
@ -1108,8 +1108,10 @@ const fillContractExtraFields = (contractData: any) => {
form.value.contractTerritorialFlag = contractData?.contractTerritorialFlag;
form.value.settlementCurrency = contractData?.settlementCurrency;
form.value.rmbExchangeRate = contractData?.rmbExchangeRate;
//
if (contractData?.effectiveCustomerOrderFlag === '1' && contractData?.ossId) {
//
if (contractData?.signatureAppendix) {
form.value.ossId = contractData.signatureAppendix;
} else if (contractData?.effectiveCustomerOrderFlag === '1' && contractData?.ossId) {
form.value.ossId = contractData.ossId;
}
};
@ -1132,6 +1134,10 @@ const loadContractInfo = async () => {
if (form.value.peopleId && typeof form.value.peopleId === 'string') {
form.value.peopleId = (form.value.peopleId as string).split(',').map((id) => String(id.trim())) as any;
}
const contractRes = await getContractInfo(contractId);
if (contractRes?.data) {
fillContractExtraFields(contractRes.data);
}
await getPlanStageList();
} else {
//

@ -783,11 +783,17 @@ const handleDownloadFinalContract = async (row: any) => {
const res = await getContractInfo(row.contractId);
const contractData = res?.data as any;
const signatureAppendix = contractData?.signatureAppendix;
if (!signatureAppendix) {
const ossIds = signatureAppendix
? String(signatureAppendix)
.split(',')
.map((id) => id.trim())
.filter(Boolean)
: [];
if (ossIds.length === 0) {
proxy?.$modal.msgWarning('该合同暂无终版合同附件');
return;
}
proxy?.$download.oss(signatureAppendix);
ossIds.forEach((id) => proxy?.$download.oss(id));
} catch (error) {
console.error('下载终版合同附件失败:', error);
proxy?.$modal.msgError('下载终版合同附件失败');

Loading…
Cancel
Save