细节修改
This commit is contained in:
@@ -206,6 +206,15 @@ export function downloadLaunchFile(fileName) {
|
||||
});
|
||||
}
|
||||
|
||||
export function uploadWatermarkFile(id, formData) {
|
||||
return request({
|
||||
url: `/contract/launch/${id}/watermark/upload`,
|
||||
method: "post",
|
||||
data: formData,
|
||||
headers: { "Content-Type": "multipart/form-data" },
|
||||
});
|
||||
}
|
||||
|
||||
export function queryContractLogList(data) {
|
||||
return request({
|
||||
url: "/contract/log/list",
|
||||
|
||||
@@ -707,15 +707,15 @@
|
||||
<a-radio-group
|
||||
v-model:value="detailState.isInvolveHongKongMacaoTaiwan"
|
||||
>
|
||||
<a-radio :value="true">是</a-radio>
|
||||
<a-radio :value="false">否</a-radio>
|
||||
<a-radio value="1">是</a-radio>
|
||||
<a-radio value="0">否</a-radio>
|
||||
</a-radio-group>
|
||||
</div>
|
||||
<div class="boolean-row">
|
||||
<span>是否公开招标</span>
|
||||
<a-radio-group v-model:value="detailState.isPublicTender">
|
||||
<a-radio :value="true">是</a-radio>
|
||||
<a-radio :value="false">否</a-radio>
|
||||
<a-radio value="1">是</a-radio>
|
||||
<a-radio value="0">否</a-radio>
|
||||
</a-radio-group>
|
||||
</div>
|
||||
<div class="boolean-row">
|
||||
@@ -723,8 +723,8 @@
|
||||
<a-radio-group
|
||||
v-model:value="detailState.isForeignRelatedSubject"
|
||||
>
|
||||
<a-radio :value="true">是</a-radio>
|
||||
<a-radio :value="false">否</a-radio>
|
||||
<a-radio value="1">是</a-radio>
|
||||
<a-radio value="0">否</a-radio>
|
||||
</a-radio-group>
|
||||
</div>
|
||||
<div
|
||||
@@ -735,22 +735,22 @@
|
||||
<a-radio-group
|
||||
v-model:value="detailState.isIncludedInCurrentYearBudget"
|
||||
>
|
||||
<a-radio :value="true">是</a-radio>
|
||||
<a-radio :value="false">否</a-radio>
|
||||
<a-radio value="1">是</a-radio>
|
||||
<a-radio value="0">否</a-radio>
|
||||
</a-radio-group>
|
||||
</div>
|
||||
<div class="boolean-row">
|
||||
<span>是否共享</span>
|
||||
<a-radio-group v-model:value="detailState.isShared">
|
||||
<a-radio :value="true">是</a-radio>
|
||||
<a-radio :value="false">否</a-radio>
|
||||
<a-radio value="1">是</a-radio>
|
||||
<a-radio value="0">否</a-radio>
|
||||
</a-radio-group>
|
||||
</div>
|
||||
<div class="boolean-row">
|
||||
<span>是否重大合同</span>
|
||||
<a-radio-group v-model:value="detailState.isMajorContract">
|
||||
<a-radio :value="true">是</a-radio>
|
||||
<a-radio :value="false">否</a-radio>
|
||||
<a-radio value="1">是</a-radio>
|
||||
<a-radio value="0">否</a-radio>
|
||||
</a-radio-group>
|
||||
</div>
|
||||
<div class="boolean-row">
|
||||
@@ -1043,12 +1043,9 @@ function normalizeFileItem(item = {}) {
|
||||
}
|
||||
|
||||
function normalizeBooleanValue(value) {
|
||||
if (value === true || value === false) return value;
|
||||
if (value === 1 || value === "1" || value === "Y" || value === "true")
|
||||
return true;
|
||||
if (value === 0 || value === "0" || value === "N" || value === "false")
|
||||
return false;
|
||||
return false;
|
||||
if (value === 1 || value === "1" || value === true || value === "Y" || value === "true")
|
||||
return "1";
|
||||
return "0";
|
||||
}
|
||||
|
||||
function pickBooleanSource(source = {}, key) {
|
||||
@@ -1405,12 +1402,12 @@ function createContractFormData() {
|
||||
counterpartyList: [],
|
||||
},
|
||||
isSingleAgreement: "0",
|
||||
isInvolveHongKongMacaoTaiwan: false,
|
||||
isPublicTender: false,
|
||||
isForeignRelatedSubject: false,
|
||||
isIncludedInCurrentYearBudget: false,
|
||||
isShared: false,
|
||||
isMajorContract: false,
|
||||
isInvolveHongKongMacaoTaiwan: "0",
|
||||
isPublicTender: "0",
|
||||
isForeignRelatedSubject: "0",
|
||||
isIncludedInCurrentYearBudget: "0",
|
||||
isShared: "0",
|
||||
isMajorContract: "0",
|
||||
needAmendments: "0",
|
||||
extraAmounts: {
|
||||
depositEnabled: false,
|
||||
@@ -2172,9 +2169,9 @@ function validateSubmit() {
|
||||
// 以下为 pushContract 必填项补充校验(接口文档要求)
|
||||
if (detailState.value.isMajorContract === undefined || detailState.value.isMajorContract === null || detailState.value.isMajorContract === "")
|
||||
return "请选择是否重大合同";
|
||||
if (detailState.value.isPublicTender === undefined || detailState.value.isPublicTender === null)
|
||||
if (detailState.value.isPublicTender === undefined || detailState.value.isPublicTender === null || detailState.value.isPublicTender === "")
|
||||
return "请选择是否公开招标";
|
||||
if (detailState.value.isInvolveHongKongMacaoTaiwan === undefined || detailState.value.isInvolveHongKongMacaoTaiwan === null)
|
||||
if (detailState.value.isInvolveHongKongMacaoTaiwan === undefined || detailState.value.isInvolveHongKongMacaoTaiwan === null || detailState.value.isInvolveHongKongMacaoTaiwan === "")
|
||||
return "请选择是否涉及港澳台";
|
||||
if (!detailState.value.paymentDirection) return "请选择收支方向";
|
||||
if (!detailState.value.contractTypeCode) return "请选择合同类型编码";
|
||||
@@ -2376,12 +2373,12 @@ function buildLaunchRecord() {
|
||||
isElectron: detailState.value.isElectron || "1",
|
||||
isSingleAgreement: detailState.value.isSingleAgreement || "0",
|
||||
paymentDirection: detailState.value.paymentDirection || "0",
|
||||
isMajorContract: detailState.value.isMajorContract ? 1 : 0,
|
||||
isOpenBidding: detailState.value.isPublicTender ? 1 : 0,
|
||||
isYearBudget: detailState.value.isIncludedInCurrentYearBudget ? 1 : 0,
|
||||
isShare: detailState.value.isShared ? "1" : "0",
|
||||
contractNature: detailState.value.isForeignRelatedSubject ? "1" : "0",
|
||||
isSgat: detailState.value.isInvolveHongKongMacaoTaiwan ? "1" : "0",
|
||||
isMajorContract: detailState.value.isMajorContract,
|
||||
isOpenBidding: detailState.value.isPublicTender,
|
||||
isYearBudget: detailState.value.isIncludedInCurrentYearBudget,
|
||||
isShare: detailState.value.isShared,
|
||||
contractNature: detailState.value.isForeignRelatedSubject,
|
||||
isSgat: detailState.value.isInvolveHongKongMacaoTaiwan,
|
||||
biddingNo: detailState.value.isPublicTender
|
||||
? detailState.value.biddingNo || ""
|
||||
: "",
|
||||
|
||||
@@ -455,12 +455,12 @@ function createContractFormData() {
|
||||
isSingleAgreement: "0",
|
||||
|
||||
// 合同属性
|
||||
isInvolveHongKongMacaoTaiwan: false, // 是否涉及港澳台
|
||||
isPublicTender: false, // 是否公开招标
|
||||
isForeignRelatedSubject: false, // 签约主体是否涉外
|
||||
isIncludedInCurrentYearBudget: false, // 是否列入当年预算
|
||||
isShared: false, // 是否共享
|
||||
isMajorContract: false, // 是否重大合同
|
||||
isInvolveHongKongMacaoTaiwan: "0", // 是否涉及港澳台
|
||||
isPublicTender: "0", // 是否公开招标
|
||||
isForeignRelatedSubject: "0", // 签约主体是否涉外
|
||||
isIncludedInCurrentYearBudget: "0", // 是否列入当年预算
|
||||
isShared: "0", // 是否共享
|
||||
isMajorContract: "0", // 是否重大合同
|
||||
|
||||
// 额外金额
|
||||
extraAmounts: {
|
||||
|
||||
@@ -323,6 +323,7 @@ import {
|
||||
getLaunchDetail,
|
||||
getLawApproveCallbackSample,
|
||||
mockApproveLaunch,
|
||||
uploadWatermarkFile,
|
||||
mockRejectLaunch,
|
||||
finishLaunchSeal,
|
||||
queryApproveViewUrl,
|
||||
@@ -1039,12 +1040,16 @@ function handleUploadSigned(row) {
|
||||
}
|
||||
|
||||
function handleOnlineSign(row) {
|
||||
getLaunchDetail(row.id).then((res) => {
|
||||
getLaunchDetail(row.id).then(async (res) => {
|
||||
if (!isSuccessResponse(res) || !getDataResult(res)) {
|
||||
message.error(getResponseMessage(res, "获取合同详情失败"));
|
||||
return;
|
||||
}
|
||||
const detail = getDataResult(res);
|
||||
if (!detail.contractTextFilePath) {
|
||||
await handleWatermarkUpload(row);
|
||||
return;
|
||||
}
|
||||
mixedSignModalRef.value?.showModal({
|
||||
...detail,
|
||||
contractId: detail.sealContractId,
|
||||
@@ -1052,6 +1057,60 @@ function handleOnlineSign(row) {
|
||||
});
|
||||
}
|
||||
|
||||
async function handleWatermarkUpload(row) {
|
||||
let file
|
||||
const ok = await new Promise((resolve) => {
|
||||
Modal.confirm({
|
||||
title: "法务水印文件缺失",
|
||||
content: h("div", [
|
||||
h("p", { style: "margin-bottom: 12px" }, "法务审批回调未带回带水印的合同文件,请手动上传带水印的合同文件后继续在线签订。"),
|
||||
h("input", {
|
||||
type: "file",
|
||||
accept: ".pdf,.doc,.docx",
|
||||
style: "margin-top: 8px; width: 100%",
|
||||
onChange(e) {
|
||||
file = e.target.files?.[0]
|
||||
},
|
||||
}),
|
||||
]),
|
||||
okText: "上传并继续",
|
||||
cancelText: "取消",
|
||||
async onOk() {
|
||||
if (!file) {
|
||||
message.warning("请先选择文件")
|
||||
return false
|
||||
}
|
||||
const formData = new FormData()
|
||||
formData.append("file", file)
|
||||
try {
|
||||
const res = await uploadWatermarkFile(row.id, formData)
|
||||
if (!isSuccessResponse(res)) {
|
||||
message.error(getResponseMessage(res, "上传水印文件失败"))
|
||||
return false
|
||||
}
|
||||
message.success("水印文件上传成功")
|
||||
resolve(true)
|
||||
} catch {
|
||||
message.error("上传水印文件失败")
|
||||
return false
|
||||
}
|
||||
},
|
||||
onCancel() {
|
||||
resolve(false)
|
||||
},
|
||||
})
|
||||
})
|
||||
if (!ok) return
|
||||
getLaunchDetail(row.id).then((res) => {
|
||||
if (!isSuccessResponse(res) || !getDataResult(res)) return
|
||||
const detail = getDataResult(res)
|
||||
mixedSignModalRef.value?.showModal({
|
||||
...detail,
|
||||
contractId: detail.sealContractId,
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
function handleSignBusinessUpdated() {
|
||||
getList();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user