细节修改
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) {
|
export function queryContractLogList(data) {
|
||||||
return request({
|
return request({
|
||||||
url: "/contract/log/list",
|
url: "/contract/log/list",
|
||||||
|
|||||||
@@ -707,15 +707,15 @@
|
|||||||
<a-radio-group
|
<a-radio-group
|
||||||
v-model:value="detailState.isInvolveHongKongMacaoTaiwan"
|
v-model:value="detailState.isInvolveHongKongMacaoTaiwan"
|
||||||
>
|
>
|
||||||
<a-radio :value="true">是</a-radio>
|
<a-radio value="1">是</a-radio>
|
||||||
<a-radio :value="false">否</a-radio>
|
<a-radio value="0">否</a-radio>
|
||||||
</a-radio-group>
|
</a-radio-group>
|
||||||
</div>
|
</div>
|
||||||
<div class="boolean-row">
|
<div class="boolean-row">
|
||||||
<span>是否公开招标</span>
|
<span>是否公开招标</span>
|
||||||
<a-radio-group v-model:value="detailState.isPublicTender">
|
<a-radio-group v-model:value="detailState.isPublicTender">
|
||||||
<a-radio :value="true">是</a-radio>
|
<a-radio value="1">是</a-radio>
|
||||||
<a-radio :value="false">否</a-radio>
|
<a-radio value="0">否</a-radio>
|
||||||
</a-radio-group>
|
</a-radio-group>
|
||||||
</div>
|
</div>
|
||||||
<div class="boolean-row">
|
<div class="boolean-row">
|
||||||
@@ -723,8 +723,8 @@
|
|||||||
<a-radio-group
|
<a-radio-group
|
||||||
v-model:value="detailState.isForeignRelatedSubject"
|
v-model:value="detailState.isForeignRelatedSubject"
|
||||||
>
|
>
|
||||||
<a-radio :value="true">是</a-radio>
|
<a-radio value="1">是</a-radio>
|
||||||
<a-radio :value="false">否</a-radio>
|
<a-radio value="0">否</a-radio>
|
||||||
</a-radio-group>
|
</a-radio-group>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
@@ -735,22 +735,22 @@
|
|||||||
<a-radio-group
|
<a-radio-group
|
||||||
v-model:value="detailState.isIncludedInCurrentYearBudget"
|
v-model:value="detailState.isIncludedInCurrentYearBudget"
|
||||||
>
|
>
|
||||||
<a-radio :value="true">是</a-radio>
|
<a-radio value="1">是</a-radio>
|
||||||
<a-radio :value="false">否</a-radio>
|
<a-radio value="0">否</a-radio>
|
||||||
</a-radio-group>
|
</a-radio-group>
|
||||||
</div>
|
</div>
|
||||||
<div class="boolean-row">
|
<div class="boolean-row">
|
||||||
<span>是否共享</span>
|
<span>是否共享</span>
|
||||||
<a-radio-group v-model:value="detailState.isShared">
|
<a-radio-group v-model:value="detailState.isShared">
|
||||||
<a-radio :value="true">是</a-radio>
|
<a-radio value="1">是</a-radio>
|
||||||
<a-radio :value="false">否</a-radio>
|
<a-radio value="0">否</a-radio>
|
||||||
</a-radio-group>
|
</a-radio-group>
|
||||||
</div>
|
</div>
|
||||||
<div class="boolean-row">
|
<div class="boolean-row">
|
||||||
<span>是否重大合同</span>
|
<span>是否重大合同</span>
|
||||||
<a-radio-group v-model:value="detailState.isMajorContract">
|
<a-radio-group v-model:value="detailState.isMajorContract">
|
||||||
<a-radio :value="true">是</a-radio>
|
<a-radio value="1">是</a-radio>
|
||||||
<a-radio :value="false">否</a-radio>
|
<a-radio value="0">否</a-radio>
|
||||||
</a-radio-group>
|
</a-radio-group>
|
||||||
</div>
|
</div>
|
||||||
<div class="boolean-row">
|
<div class="boolean-row">
|
||||||
@@ -1043,12 +1043,9 @@ function normalizeFileItem(item = {}) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function normalizeBooleanValue(value) {
|
function normalizeBooleanValue(value) {
|
||||||
if (value === true || value === false) return value;
|
if (value === 1 || value === "1" || value === true || value === "Y" || value === "true")
|
||||||
if (value === 1 || value === "1" || value === "Y" || value === "true")
|
return "1";
|
||||||
return true;
|
return "0";
|
||||||
if (value === 0 || value === "0" || value === "N" || value === "false")
|
|
||||||
return false;
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function pickBooleanSource(source = {}, key) {
|
function pickBooleanSource(source = {}, key) {
|
||||||
@@ -1405,12 +1402,12 @@ function createContractFormData() {
|
|||||||
counterpartyList: [],
|
counterpartyList: [],
|
||||||
},
|
},
|
||||||
isSingleAgreement: "0",
|
isSingleAgreement: "0",
|
||||||
isInvolveHongKongMacaoTaiwan: false,
|
isInvolveHongKongMacaoTaiwan: "0",
|
||||||
isPublicTender: false,
|
isPublicTender: "0",
|
||||||
isForeignRelatedSubject: false,
|
isForeignRelatedSubject: "0",
|
||||||
isIncludedInCurrentYearBudget: false,
|
isIncludedInCurrentYearBudget: "0",
|
||||||
isShared: false,
|
isShared: "0",
|
||||||
isMajorContract: false,
|
isMajorContract: "0",
|
||||||
needAmendments: "0",
|
needAmendments: "0",
|
||||||
extraAmounts: {
|
extraAmounts: {
|
||||||
depositEnabled: false,
|
depositEnabled: false,
|
||||||
@@ -2172,9 +2169,9 @@ function validateSubmit() {
|
|||||||
// 以下为 pushContract 必填项补充校验(接口文档要求)
|
// 以下为 pushContract 必填项补充校验(接口文档要求)
|
||||||
if (detailState.value.isMajorContract === undefined || detailState.value.isMajorContract === null || detailState.value.isMajorContract === "")
|
if (detailState.value.isMajorContract === undefined || detailState.value.isMajorContract === null || detailState.value.isMajorContract === "")
|
||||||
return "请选择是否重大合同";
|
return "请选择是否重大合同";
|
||||||
if (detailState.value.isPublicTender === undefined || detailState.value.isPublicTender === null)
|
if (detailState.value.isPublicTender === undefined || detailState.value.isPublicTender === null || detailState.value.isPublicTender === "")
|
||||||
return "请选择是否公开招标";
|
return "请选择是否公开招标";
|
||||||
if (detailState.value.isInvolveHongKongMacaoTaiwan === undefined || detailState.value.isInvolveHongKongMacaoTaiwan === null)
|
if (detailState.value.isInvolveHongKongMacaoTaiwan === undefined || detailState.value.isInvolveHongKongMacaoTaiwan === null || detailState.value.isInvolveHongKongMacaoTaiwan === "")
|
||||||
return "请选择是否涉及港澳台";
|
return "请选择是否涉及港澳台";
|
||||||
if (!detailState.value.paymentDirection) return "请选择收支方向";
|
if (!detailState.value.paymentDirection) return "请选择收支方向";
|
||||||
if (!detailState.value.contractTypeCode) return "请选择合同类型编码";
|
if (!detailState.value.contractTypeCode) return "请选择合同类型编码";
|
||||||
@@ -2376,12 +2373,12 @@ function buildLaunchRecord() {
|
|||||||
isElectron: detailState.value.isElectron || "1",
|
isElectron: detailState.value.isElectron || "1",
|
||||||
isSingleAgreement: detailState.value.isSingleAgreement || "0",
|
isSingleAgreement: detailState.value.isSingleAgreement || "0",
|
||||||
paymentDirection: detailState.value.paymentDirection || "0",
|
paymentDirection: detailState.value.paymentDirection || "0",
|
||||||
isMajorContract: detailState.value.isMajorContract ? 1 : 0,
|
isMajorContract: detailState.value.isMajorContract,
|
||||||
isOpenBidding: detailState.value.isPublicTender ? 1 : 0,
|
isOpenBidding: detailState.value.isPublicTender,
|
||||||
isYearBudget: detailState.value.isIncludedInCurrentYearBudget ? 1 : 0,
|
isYearBudget: detailState.value.isIncludedInCurrentYearBudget,
|
||||||
isShare: detailState.value.isShared ? "1" : "0",
|
isShare: detailState.value.isShared,
|
||||||
contractNature: detailState.value.isForeignRelatedSubject ? "1" : "0",
|
contractNature: detailState.value.isForeignRelatedSubject,
|
||||||
isSgat: detailState.value.isInvolveHongKongMacaoTaiwan ? "1" : "0",
|
isSgat: detailState.value.isInvolveHongKongMacaoTaiwan,
|
||||||
biddingNo: detailState.value.isPublicTender
|
biddingNo: detailState.value.isPublicTender
|
||||||
? detailState.value.biddingNo || ""
|
? detailState.value.biddingNo || ""
|
||||||
: "",
|
: "",
|
||||||
|
|||||||
@@ -455,12 +455,12 @@ function createContractFormData() {
|
|||||||
isSingleAgreement: "0",
|
isSingleAgreement: "0",
|
||||||
|
|
||||||
// 合同属性
|
// 合同属性
|
||||||
isInvolveHongKongMacaoTaiwan: false, // 是否涉及港澳台
|
isInvolveHongKongMacaoTaiwan: "0", // 是否涉及港澳台
|
||||||
isPublicTender: false, // 是否公开招标
|
isPublicTender: "0", // 是否公开招标
|
||||||
isForeignRelatedSubject: false, // 签约主体是否涉外
|
isForeignRelatedSubject: "0", // 签约主体是否涉外
|
||||||
isIncludedInCurrentYearBudget: false, // 是否列入当年预算
|
isIncludedInCurrentYearBudget: "0", // 是否列入当年预算
|
||||||
isShared: false, // 是否共享
|
isShared: "0", // 是否共享
|
||||||
isMajorContract: false, // 是否重大合同
|
isMajorContract: "0", // 是否重大合同
|
||||||
|
|
||||||
// 额外金额
|
// 额外金额
|
||||||
extraAmounts: {
|
extraAmounts: {
|
||||||
|
|||||||
@@ -323,6 +323,7 @@ import {
|
|||||||
getLaunchDetail,
|
getLaunchDetail,
|
||||||
getLawApproveCallbackSample,
|
getLawApproveCallbackSample,
|
||||||
mockApproveLaunch,
|
mockApproveLaunch,
|
||||||
|
uploadWatermarkFile,
|
||||||
mockRejectLaunch,
|
mockRejectLaunch,
|
||||||
finishLaunchSeal,
|
finishLaunchSeal,
|
||||||
queryApproveViewUrl,
|
queryApproveViewUrl,
|
||||||
@@ -1039,12 +1040,16 @@ function handleUploadSigned(row) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function handleOnlineSign(row) {
|
function handleOnlineSign(row) {
|
||||||
getLaunchDetail(row.id).then((res) => {
|
getLaunchDetail(row.id).then(async (res) => {
|
||||||
if (!isSuccessResponse(res) || !getDataResult(res)) {
|
if (!isSuccessResponse(res) || !getDataResult(res)) {
|
||||||
message.error(getResponseMessage(res, "获取合同详情失败"));
|
message.error(getResponseMessage(res, "获取合同详情失败"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const detail = getDataResult(res);
|
const detail = getDataResult(res);
|
||||||
|
if (!detail.contractTextFilePath) {
|
||||||
|
await handleWatermarkUpload(row);
|
||||||
|
return;
|
||||||
|
}
|
||||||
mixedSignModalRef.value?.showModal({
|
mixedSignModalRef.value?.showModal({
|
||||||
...detail,
|
...detail,
|
||||||
contractId: detail.sealContractId,
|
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() {
|
function handleSignBusinessUpdated() {
|
||||||
getList();
|
getList();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user