|
|
|
|
@ -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));
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// 查看审批记录
|
|
|
|
|
|